作为一名Linux SA,日常最重要的就是保证网站正常稳定的运行,我们需要实时监控网站、服务器的运行状态,这时需要借助开源软件(cacti、nagios、zabbix等)监控来实现。
Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。
Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下,一般以rra为后缀名称)。简单原理图如下:
环境:CentOS 6.5_86_X64 已yum安装lamp平台,且整合正常,hostname为lamp
IP地址为192.168.1.3 防护墙和Selinux关闭
1、 cacti服务器的安装
官网下载cacti相关软件,一共需要两个软件,下载地址分别如下:
http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz
http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz
2、安装rrdtool采集工具
安装rrdtool之前需要安装相应的lib库,如下安装:
1
2
3
4
5
6
7
8
9
|
[root@lamp ~]
# yum -y install cairo-devellibxml2-devel pango pango-devel
[root@lamp ~]
# yum -y install gcc
[root@lamp ~]
# ls
cacti-0.8.8a.
tar
.gz rrdtool-1.4.5.
tar
.gz
[root@lamp ~]
# tar -zxfrrdtool-1.4.5.tar.gz
[root@lamp ~]
# cd rrdtool-1.4.5
[root@lamp rrdtool-1.4.5]
# ./configure--prefix=/usr/local/rrdtool && make && make install
[root@lamp ~]
# ln -s/usr/local/rrdtool/bin/* /usr/local/bin/
[root@lamp ~]
#
|
如果make报perl错误,请执行yum install perl-devel
3、 安装SNMP服务
1
2
3
4
5
6
|
[root@lamp ~]
# yum -y install net-snmpnet-snmp-utils
[root@lamp ~]
# /etc/init.d/snmpd restart
停止 snmpd: [失败]
正在启动 snmpd: [确定]
[root@lamp ~]
# chkconfig snmpd on
[root@lamp ~]
#
|
4、 安装cacti主程序
1
2
3
4
5
6
7
8
9
|
[root@lamp ~]
# ls
cacti-0.8.8a.
tar
.gz rrdtool-1.4.5 rrdtool-1.4.5.
tar
.gz
[root@lamp ~]
# tar zxf cacti-0.8.8a.tar.gz
[root@lamp ~]
# ls
cacti-0.8.8a cacti-0.8.8a.
tar
.gz rrdtool-1.4.5 rrdtool-1.4.5.
tar
.gz
[root@lamp ~]
# mv cacti-0.8.8a/var/www/html/cacti
[root@lamp ~]
# ls /var/www/html/
cacti
[root@lamp ~]
#
|
5、 创建cacti数据库
1
2
3
4
5
6
7
|
mysql>
create
database
cacti;
Query OK, 1 row affected (0.01 sec)
mysql>
grant
all
on
cacti.* tocacti@
'localhost'
identified
by
'hi'
;
Query OK, 0
rows
affected (0.00 sec)
mysql> flush
privileges
;
Query OK, 0
rows
affected (0.00 sec)
mysql>
|
mysql配置完毕后,把cacti数据导入cacti数据库
1
2
|
[root@lamp html]
# mysql -ucacti -phi cacti< /var/www/html/cacti/cacti.sql
[root@lamp html]
#
|
配置完mysql后,我们需要设置cacti 中的rra、log 目录的权限,这里设置为777
1
2
3
4
5
6
|
[root@lamp ~]
# cd /var/www/html/cacti/
[root@lamp cacti]
# chmod -R 777 rra log
[root@lamp cacti]
# ll -d rra log
drwxrwxrwx. 2 1000
users
4096 4月 4 2012 log
drwxrwxrwx. 2 1000
users
4096 4月 4 2012 rra
[root@lamp cacti]
#
|
6、修改cacti全局配置文件
1
|
[root@lamp ~]
# vim/var/www/html/cacti/include/config.php
|
7、更改时区
1
|
[root@lamp ~]
# vim /etc/php.ini
|
重启httpd服务
1
2
3
4
|
[root@lamp ~]
# /etc/init.d/httpd restart
停止 httpd: [确定]
正在启动 httpd: [确定]
[root@lamp ~]
#
|
8、添加Rrdtool抓图任务计划
1
2
3
4
5
6
7
8
|
[root@lamp ~]
# yum -y install crontabs
[root@lamp ~]
# service crond restart
正在启动crond: [确定]
[root@lamp ~]
# chkconfig crond on
[root@lamp ~]
# echo "*/5 * * * */usr/bin/php /var/www/html/cacti/poller.php >>/tmp/cacti_rrdtool.log2>&1" >>/var/spool/cron/root
[root@lamp ~]
# crontab -l
*
/5
* * * *
/usr/bin/php/var/www/html/cacti/poller
.php >>
/tmp/cacti_rrdtool
.log 2>&1
[root@lamp ~]
#
|
9、Cacti安装完毕,测试访问
输入http://192.168.1.3/cacti 点Next
新安装
确保是OK状态,然后Finish(如路径不一样需要在这里更改)
初始账号密码 admin admin Login
第一次登录需要修改密码然后save
点graphs,无图
手动执行或者等待下一次周期计划执行,只有执行过后才会出图。只有过一段时间后才会有数据(如果不出图,检查snmp服务是否启动、检查rra和log是否有可写权限,)
[root@lamp ~]# php/var/www/html/cacti/poller.php
如果依旧不出图 需要更改SNMPVersion Vsrsion 2 (会在后续章节说明)
本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1635794,如需转载请自行联系原作者