Cacti는 RRDtool을 기반으로 한 네트워크 모니터링 및 성능 그래프 도구로, 네트워크 장비와 서버의 상태 및 트래픽을 시각화하는 데 유용합니다. 여기서는 Ubuntu 20.04 기준으로 Cacti 설치 및 설정 방법을 자세히 설명하겠습니다.
1. 사전 준비 사항
Cacti 설치에는 웹 서버(Apache), PHP, 데이터베이스(MySQL 또는 MariaDB), 그리고 SNMP와 RRDtool이 필요합니다. 필요한 패키지를 먼저 설치합니다.
2. Apache, PHP, MariaDB 설치
Apache 및 PHP 설치
<bash>
sudo apt update
sudo apt install -y apache2 php php-mysql php-snmp php-xml php-gd php-ldap php-mbstring php-json php-intl libapache2-mod-php
MariaDB 설치
Cacti는 MariaDB 또는 MySQL을 데이터베이스로 사용하므로, MariaDB를 설치하고 설정을 진행합니다.
<bash>
sudo apt install -y mariadb-server
sudo mysql_secure_installation
데이터베이스 보안을 강화하는 설정을 진행합니다.
3. Cacti 데이터베이스 설정
데이터베이스 생성 및 사용자 생성
MariaDB에 접속하여 Cacti용 데이터베이스와 사용자 계정을 만듭니다.
<bash>
sudo mysql -u root -p
로그인 후 다음 명령어를 입력하여 Cacti 데이터베이스와 사용자를 생성하고, 권한을 부여합니다.
<sql>
CREATE DATABASE cacti;
GRANT ALL ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;
참고:
'password'
부분을 원하는 비밀번호로 변경하세요.
4. Cacti 및 RRDtool 설치
Cacti 설치 파일과 RRDtool을 포함한 관련 패키지를 설치합니다.
<bash>
sudo apt install -y snmp php-snmp rrdtool cacti cacti-spine
5. Cacti 초기 설정
Cacti 설치 시 자동으로 초기 설정 마법사가 실행됩니다. 마법사에 따라 설치를 진행합니다.
- 웹 서버 선택: Apache2 선택 후 엔터.
- 데이터베이스 설정: “Yes”를 선택하여 cactiuser 계정을 Cacti에 연결.
6. MariaDB 설정 변경
Cacti가 대용량 데이터를 효율적으로 처리하도록 MariaDB 설정을 조정합니다.
<bash>
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
파일에 다음 설정을 추가합니다.
<conf>
[mysqld]
max_heap_table_size=128M
tmp_table_size=128M
join_buffer_size=128M
innodb_file_per_table=1
innodb_buffer_pool_size=512M
innodb_doublewrite=ON
innodb_flush_log_at_trx_commit=2
innodb_large_prefix=1
이후 MariaDB를 재시작합니다.
<bash>
sudo systemctl restart mariadb
7. Apache 설정
Cacti는 기본적으로 Apache를 통해 접근합니다. Apache 설정 파일에서 Cacti 디렉토리에 대한 접근 권한을 수정하여 웹 브라우저로 접근할 수 있도록 합니다.
<bash>
sudo nano /etc/apache2/sites-available/cacti.conf
Require local
줄을 찾아 아래와 같이 수정하여 모든 IP에서 접근할 수 있도록 합니다.
<conf>
Require all granted
이후 Apache를 다시 시작합니다.
<bash>
sudo systemctl restart apache2
8. Cacti 웹 설치 마법사 실행
브라우저에서 Cacti 설치 마법사에 접근합니다. http://YOUR_SERVER_IP/cacti
로 접속하여 설치 마법사를 완료합니다.
- 로그인: 기본 계정은
admin
이며, 초기 비밀번호도admin
입니다. 처음 로그인 시 비밀번호 변경이 요청됩니다. - 설치 마법사 진행: 안내에 따라 Cacti 설치 마법사를 완료합니다.
9. Cacti Spine 설정
Cacti Spine은 Cacti의 고성능 데이터 수집 백엔드로, 대규모 환경에서 성능을 높여줍니다. Spine 설정을 위해 Cacti 설정 파일을 수정합니다.
<bash>
sudo nano /usr/share/cacti/site/include/config.php
파일 내에서 다음 항목을 확인합니다.
<php>
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "password"; // Cacti 데이터베이스 비밀번호
설정을 마친 후 Spine을 재시작합니다.
<bash>
sudo systemctl restart cacti
10. SNMP 설정
네트워크 장비와 서버의 상태를 모니터링하려면 SNMP(Simple Network Management Protocol) 설정이 필요합니다. 서버에 SNMP 서비스를 설정합니다.
<bash>
sudo apt install snmp snmpd
sudo nano /etc/snmp/snmpd.conf
파일에서 기본 설정을 아래와 같이 변경하여 로컬 및 네트워크에서 SNMP 요청을 받을 수 있도록 설정합니다.
<conf>
agentAddress udp:161,udp6:[::1]:161
rocommunity public default
이후 SNMP 서비스를 재시작합니다.
<bash>
sudo systemctl restart snmpd
11. Cacti에서 장비 추가 및 모니터링 설정
Cacti 웹 인터페이스에서 모니터링할 장비를 추가하고 그래프 설정을 진행합니다.
- 장비 추가:
Devices > Add
로 이동하여 모니터링할 장비를 추가합니다. - SNMP 설정: SNMP 버전을 선택하고, Community String을
public
으로 설정합니다. - 그래프 추가: 장비를 추가한 후
Create Graphs for this Host
옵션을 사용하여 모니터링할 지표(예: CPU, 메모리, 네트워크 대역폭)를 그래프로 생성합니다.
12. Cacti 대시보드 및 그래프 확인
장비 추가와 그래프 설정을 완료하면 Cacti 대시보드에서 실시간 모니터링 데이터를 확인할 수 있습니다.
- 그래프 보기:
Graphs
메뉴에서 생성된 그래프를 통해 네트워크 및 서버 상태를 시각적으로 확인합니다. - 장비 상태 모니터링: SNMP를 통해 수집된 데이터로 장비의 트래픽, 메모리, CPU 사용률 등을 추적할 수 있습니다.
맺음말
Cacti는 RRDtool 기반의 오픈소스 네트워크 모니터링 도구로, 네트워크 장비와 서버의 상태를 시각화하고 추적하는 데 최적화되어 있습니다. 이 가이드에 따라 Cacti를 설치하고 설정하면, 네트워크 및 서버의 트래픽 상태를 손쉽게 확인할 수 있는 모니터링 환경을 구축할 수 있습니다.