作为一名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库,如下安装:
[[email protected] ~]# yum -y install cairo-devellibxml2-devel pango pango-devel [[email protected] ~]# yum -y install gcc [[email protected] ~]# ls cacti-0.8.8a.tar.gz rrdtool-1.4.5.tar.gz [[email protected] ~]# tar -zxfrrdtool-1.4.5.tar.gz [[email protected] ~]# cd rrdtool-1.4.5 [[email protected] rrdtool-1.4.5]# ./configure--prefix=/usr/local/rrdtool && make && make install [[email protected] ~]# ln -s/usr/local/rrdtool/bin/* /usr/local/bin/ [[email protected] ~]#
如果make报perl错误,请执行yum install perl-devel
3、 安装SNMP服务
[[email protected] ~]# yum -y install net-snmpnet-snmp-utils [[email protected] ~]# /etc/init.d/snmpd restart 停止 snmpd: [失败] 正在启动 snmpd: [确定] [[email protected] ~]# chkconfig snmpd on [[email protected] ~]#
4、 安装cacti主程序
[[email protected] ~]# ls cacti-0.8.8a.tar.gz rrdtool-1.4.5 rrdtool-1.4.5.tar.gz [[email protected] ~]# tar zxf cacti-0.8.8a.tar.gz [[email protected] ~]# ls cacti-0.8.8a cacti-0.8.8a.tar.gz rrdtool-1.4.5 rrdtool-1.4.5.tar.gz [[email protected] ~]# mv cacti-0.8.8a/var/www/html/cacti [[email protected] ~]# ls /var/www/html/ cacti [[email protected] ~]#
5、 创建cacti数据库
mysql> create database cacti; Query OK, 1 row affected (0.01 sec) mysql> grant all on cacti.* [email protected]‘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数据库
[[email protected] html]# mysql -ucacti -phi cacti< /var/www/html/cacti/cacti.sql [[email protected] html]#
配置完mysql后,我们需要设置cacti 中的rra、log 目录的权限,这里设置为777
[[email protected] ~]# cd /var/www/html/cacti/ [[email protected] cacti]# chmod -R 777 rra log [[email protected] cacti]# ll -d rra log drwxrwxrwx. 2 1000 users 4096 4月 4 2012 log drwxrwxrwx. 2 1000 users 4096 4月 4 2012 rra [[email protected] cacti]#
6、修改cacti全局配置文件
[[email protected] ~]# vim/var/www/html/cacti/include/config.php
7、更改时区
[[email protected] ~]# vim /etc/php.ini
重启httpd服务
[[email protected] ~]# /etc/init.d/httpd restart 停止 httpd: [确定] 正在启动 httpd: [确定] [[email protected] ~]#
8、添加Rrdtool抓图任务计划
[[email protected] ~]# yum -y install crontabs [[email protected] ~]# service crond restart 正在启动crond: [确定] [[email protected] ~]# chkconfig crond on [[email protected] ~]# echo "*/5 * * * */usr/bin/php /var/www/html/cacti/poller.php >>/tmp/cacti_rrdtool.log2>&1" >>/var/spool/cron/root [[email protected] ~]# crontab -l */5 * * * * /usr/bin/php/var/www/html/cacti/poller.php >>/tmp/cacti_rrdtool.log 2>&1 [[email protected] ~]#
9、Cacti安装完毕,测试访问
输入http://192.168.1.3/cacti 点Next
新安装
确保是OK状态,然后Finish(如路径不一样需要在这里更改)
初始账号密码 admin admin Login
第一次登录需要修改密码然后save
点graphs,无图
手动执行或者等待下一次周期计划执行,只有执行过后才会出图。只有过一段时间后才会有数据(如果不出图,检查snmp服务是否启动、检查rra和log是否有可写权限,)
[[email protected] ~]# php/var/www/html/cacti/poller.php
如果依旧不出图 需要更改SNMPVersion Vsrsion 2 (会在后续章节说明)