CentOS 7에서 Cacti 모니터링 시스템 설치 및 설정

  1. LNMP 환경 준비 먼저 웹 서버, 데이터베이스, PHP 환경을 구성합니다.
  • 공식 사이트를 통한 자동 설치: https://lnmp.org/install.html
  • 또는 수동 설치: yum 패키지 매니저를 사용하거나 직접 소스 설치 가능 (구글 검색 참고)
  1. SNMP 및 그래프 도구 설치
yum install -y net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-perl
yum install -y rrdtool rrdtool-devel rrdtool-php rrdtool-perl perl-devel perl-CPAN perl-YAML
  1. SNMP 서비스 설정 설정 파일 편집:
vim /etc/snmp/snmpd.conf

다음 항목 수정:

  • com2sec notConfigUser default public → 기본 주소를 실제 서버 IP로 변경하고, public은 안전을 위해 변경
  • access notConfigGroup "" any noauth exact all none none → 권한 범위를 전체로 확장
  • view all included .1 80 → 주석 제거하여 전체 OID에 접근 허용

서비스 재시작:

systemctl restart snmpd.service && systemctl enable snmpd.service
  1. PHP 시간대 설정
vim /usr/local/php/etc/php.ini

다음 내용 추가 또는 수정:

date.timezone = Asia/Shanghai
safe_mode = Off
  1. MySQL 최적화 설정
vim /etc/my.cnf

파일 끝부분에 다음 설정 추가:

[server]
character_set_server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_heap_table_size = 256M
max_allowed_packet = 16777216
tmp_table_size = 64M
join_buffer_size = 64M
innodb_file_per_table = ON
innodb_buffer_pool_size = 1024M
innodb_doublewrite = OFF
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16

기존 [mysqld] 섹션의 max_allowed_packet = 1M 주석 처리.

재시작:

/etc/init.d/mysql restart
  1. Cacti 다운로드 및 설치 경로 배치
wget https://www.cacti.net/downloads/cacti-1.1.38.tar.gz
tar zxvf cacti-1.1.38.tar.gz
cp -R cacti-1.1.38 /home/wwwroot/default/cacti
  1. Cacti 데이터베이스 생성
mysql -u root -p

MySQL 콘솔에서 실행:

CREATE DATABASE cacti;
GRANT ALL ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'cactiuser';
GRANT SELECT ON mysql.time_zone_name TO 'cactiuser'@'localhost' IDENTIFIED BY 'cactiuser';
FLUSH PRIVILEGES;
EXIT;
  1. 데이터 스키마 초기화
mysql -u cactiuser -p cacti
SOURCE /home/wwwroot/default/cacti/cacti.sql;
FLUSH PRIVILEGES;
EXIT;
  1. 시간대 정보 반영
cd /usr/local/mysql/bin/
./mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql
  1. Cacti 설정 파일 수정
vim /home/wwwroot/default/cacti/include/config.php

다음 변수 수정:

$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'cactiuser';
$database_port = '3306';
$database_ssl = false;
  1. 사용자 및 디렉터리 권한 설정
useradd -r -M cacti
chown -R cacti /home/wwwroot/default/cacti/{rra,log}/
chown -R www:www /home/wwwroot/default/cacti/{resource,cache,scripts}
chmod -R 777 /home/wwwroot/default/cacti/
  1. 정기 작업 등록 (크론)
crontab -e

내용 추가:

*/5 * * * * cactiuser php /home/wwwroot/default/cacti/poller.php > /dev/null 2>&1
  1. 서비스 재시작
systemctl restart crond && systemctl restart snmpd
  1. Spine 성능 개선 모듈 설치 Cacti 기본 cmd.php는 느린 데이터 수집 방식. spine은 C 언어로 작성된 고속 수집 엔진으로 대체 가능:
yum install -y spine

설정 후 config.php에서 poller_typespine으로 변경.

  1. 웹 인터페이스 접근 브라우저에서 서버의 IP 주소로 접속:
http://<서버_IP>/cacti

설치 가이드에 따라 진행하면 완료됩니다.

태그: cacti CentOS7 snmp rrdtool MySQL

6월 1일 01:51에 게시됨