OS : CentOS 6.4 x64 Minimal
0.
selinux disable
vi /etc/selinux/config
SELINUX=disabled
service iptables stop
1. APM 및 라이브러리 설치
yum -y install gcc
yum -y install mysql mysql-server
yum -y install httpd
yum -y install php php-mysql php-snmp php-gd php-devel
yum -y install gd gd-devel libart_lgpl libart_lgpl-devel zlib zlib-devel patch
yum -y install libxml2 libxml2-devel libpng libpng-devel freetype freetype-devel
yum -y install perl-devel
yum -y install net-snmp-*
yum -y install pango-devel
yum -y install rdate wget vim
2. 서버 내 시간 동기화
rdate -s time.bora.net
cron에 등록하여 반복 진행
crontab -e
49 * * * * rdate -s time.bora.net > /dev/null
3.SNMP 설정 및 기타 필수데몬 설정
내용 삭제하고
cat /dev/null > /etc/snmp/snmpd.conf
# vi /etc/snmp/snmpd.conf
쓰시던 Comm. 값 넣어서 수정해주시고 재시작
SNMP 는 현재 보안레벨에 따라서 v1, v2c, v3가 있음
v1, v2c기준으로
ex)
com2sec public default public
group public v1 public
group public v2c public
view public included .1 80
access public "" any noauth exact public none none
/etc/rc.d/init.d/snmpd restart
/etc/rc.d/init.d/mysqld start
/etc/rc.d/init.d/httpd start
chkconfig mysqld on
chkconfig httpd on
chkconfig snmpd on
4. RRDTool 설치
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz
tar zxvf rrdtool-1.4.7.tar.gz
cd rrdtool-1.4.7
./configure --prefix=/usr/local/rrdtool
make
make install
5. apache 설정
Apache에서 php를 연동하기 위해 php.conf 와 httpd.conf 를 열어서 아래처럼 수정
vi /etc/httpd/conf.d/php.conf
AddHandler php5-script .php .htm .html
AddType text/html .php
AddType application/x-httpd-php-source .phps .php .htm .html
vi /etc/httpd/conf/httpd.conf
Options Indexes FollowSymLinks -> Options -Indexes
AllowOverride None ->AllowOverride All
DirectoryIndex index.html index.html.var -> DirectoryIndex index.html index.htm index.php
AddType application/x-httpd-php .htm .html .php .ph .php3 .php4 .phtml .inc
AddType application/x-httpd-php-source .phps
기존의 주석을 풀고 추가
AddHandler cgi-script .cgi
변경
DocumentRoot "/var/www/html" -> "/var/www/html/cacti"
6. Cacti를 설치
wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz
tar zxvf cacti-0.8.8a.tar.gz
mv cacti-0.8.8a cacti
cp -Rf cacti /var/www/html/
7. MySQL을 설정
가. Cacti 설정
mysql -u root -p mysql
create database cacti;
grant all on cacti.* to cactiuser@localhost identified by 'cactiuser';
flush privileges;
quit;
기본 스키마를 밀어넣구.(cacti.sql 기본)
cd /var/www/html/cacti/
mysql -u root -p cacti < cacti.sql
--------------------------------------------
정상적으로 들어갔는지 확인
mysql -u root -p cacti
mysql> show databes;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'databes' at line 1
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cacti |
나. Cacti PA(Plugin Architecture) 설치
(Cacti 0.8.8부터는 PA가 내장됨..현 버전은 구지 설치 진행 필요없음.
필요한 Plugin만 설치하면 됨)
wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
tar xvfz cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch/
cp -rf * /var/www/html/cacti/
cd /var/www/html/cacti/
patch -p1 -N --dry-run < cacti-plugin-0.8.7g-PA-v2.8.diff
patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
mysql -u root -p cacti -f -A < pa.sql
8. 권한 등 설정
로그와 데이터가 저장되는 디렉토리에 권한을 줍니다.
# chmod 777 log rra
이제 웹브라우저에서 각 도메인이나 IP를 쳐보자.
아래와같이 알람이 뜨는데 경로를 바꿔준다
/usr/local/bin/rrdtool -> /usr/local/rrdtool/bin/rrdtool
admin / admin 기본 패스워드.
보안상 추후 변경 필요
9. cacti GUI 설정
Configuration -> Settings 선택 후 General과 Path를 확인.
10. cacti 에 있는 poller.php 를 실행시켜서 그래프를 생성
crontab -e
*/1 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
## 참고로 0.8.8 부터는 기존의 interval을 5분에서 1분으로 수정할 수 있다!!!!
11. 그래프의 텍스트가 깨질때 필독
CentOS minimal 로 설치시 기본 폰트가 설치가 안된다.
맘에 드는 글자 폰트를
/usr/share/fonts 로 복사해두고
fc-cache 를 실행하면 정상화 된다.
12. Cacti 기본 수정
Local Linux Template엔 Traffic이 기본 들어가 있지 않으니,
SNMP - Interface Statistics
추가
사용하지 않는 Templates 는 과감히 제거
13. 트래픽 설정시 주의!! (선택사항)
디폴트로 설정하면 100M이상이 그려지지 않는다.
꼭 64bit로 설정해야함.
짜잘한 꼼수 부리긔 @.@
14. backup 설정
(1) 백업할 폴더, 스크립트 생성
mkdir /var/www/html/cacti/backup
touch /var/www/html/cacti/backup/backup.sh
-각 폴더가 틀릴 수 있으니, 폴더에 맞춰서--------------------------------
#/bin/bash
cd /var/www/html/cacti/backup
# Remove old backups
find /var/www/html/cacti/backup/* -mtime +3 -exec rm -fr {} \; > /dev/null 2>&1
# Remove old RRAs (usually means the datasource is deleted)
find /var/www/html/cacti/rra/* -mtime +3 -exec rm -fr {} \; > /dev/null 2>&1
# Create the filename for the backup
eval `date "+day=%d; month=%m; year=%Y"`
INSTFIL="cacti-backup-$year-$month-$day.tar.gz"
# Dump the MySQL Database
mysqldump -uroot --opt cacti> /var/www/html/cacti/cacti-backup.sql
# Gzip the whole folder
tar -Pcpzf /var/www/html/cacti/backup/$INSTFIL /var/www/html/cacti/*
# Remove the SQL Dump
rm -f /var/www/html/cacti/cacti-backup.sql
-------------------------------------------------------------------
(2)crontab -e 설정
0 0 * * * /var/www/backup.sh
* cacti 세부 설정은 추후 포스팅 예정
* 튜닝 관련 참고사이트
http://sclabs.blogspot.kr/2011/03/cacti.html