- LNMP 환경 준비 먼저 웹 서버, 데이터베이스, PHP 환경을 구성합니다.
- 공식 사이트를 통한 자동 설치: https://lnmp.org/install.html
- 또는 수동 설치: yum 패키지 매니저를 사용하거나 직접 소스 설치 가능 (구글 검색 참고)
- 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
- 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
- PHP 시간대 설정
vim /usr/local/php/etc/php.ini
다음 내용 추가 또는 수정:
date.timezone = Asia/Shanghai
safe_mode = Off
- 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
- 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
- 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;
- 데이터 스키마 초기화
mysql -u cactiuser -p cacti
SOURCE /home/wwwroot/default/cacti/cacti.sql;
FLUSH PRIVILEGES;
EXIT;
- 시간대 정보 반영
cd /usr/local/mysql/bin/
./mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql
- 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;
- 사용자 및 디렉터리 권한 설정
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/
- 정기 작업 등록 (크론)
crontab -e
내용 추가:
*/5 * * * * cactiuser php /home/wwwroot/default/cacti/poller.php > /dev/null 2>&1
- 서비스 재시작
systemctl restart crond && systemctl restart snmpd
- Spine 성능 개선 모듈 설치
Cacti 기본
cmd.php는 느린 데이터 수집 방식.spine은 C 언어로 작성된 고속 수집 엔진으로 대체 가능:
yum install -y spine
설정 후 config.php에서 poller_type을 spine으로 변경.
- 웹 인터페이스 접근 브라우저에서 서버의 IP 주소로 접속:
http://<서버_IP>/cacti
설치 가이드에 따라 진행하면 완료됩니다.