20130805 安装cacti
一、先记录下安装cacti,全rpm安装,简单
1、vim /etc/sysconfig/selinux
SELINUX=disabled
2、停止防火墙
service iptables stop
3、安装依赖包
yum install httpd php php-mysql php-snmp php-gd mysql mysql-server mysql-devel net-snmp net-snmp-utils net-snmp-devel rrdtool pango rsyslog-mysql gcc make wget -y
4、建cacti数据库并赋予用户权限
mysqladmin -uroot create cacti
mysql -uroot -p -e "GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser'"
5、安装cacti软件包
wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz
tar zxf cacti-0.8.8a.tar.gz -C /var/www/html/
mv /var/www/html/cacti-0.8.8a /var/www/html/cacti
mysql -ucacti -pcactiuser cacti < /var/www/html/cacti/cacti.sql
6、进配置文件,进行修改
a、
vi /var/www/html/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;
b、给需相应的文件读写权限
chmod 777 /var/www/html/cacti/rra/ /var/www/html/cacti/log/
c、设置定时任务
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php
d、为了SNMP服务使用不受影响,需要使用 vi /etc/snmp/snmpd.conf 进SNMP配置文件进行修改相关信息:
com2sec notConfigUser 127.0.0.1 cacti9
access notConfigGroup "" any noauth exact all none none
view all included .1 80 把前面的#去掉
7、插件安装
Spine 可以提高采集数据的效率,适合监控服务器数量比较多的Cacti,而cmd.php适合小型、测试、学习所用。
tar zxvf cacti-spine-0.8.8a.tar.gz
cd cacti-spine-0.8.8a
./configure && make && make install
提示:error: Cannot find MySQL headers. Use --with-mysql= to specify non-default path.
缺少mysql-devel包,yum install mysql-devel -y
拷贝并修改spine.conf文件中连接数据库用户信息
cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
其他插件
tar zxf settings-v0.71-1.tgz -C /var/www/html/cacti/plugins
tar zxf thold-v0.4.9-3.tgz -C /var/www/html/cacti/plugins
tar zxf realtime-v0.5-2.tgz -C /var/www/html/cacti/plugins
tar zxf plugin-monitor-v1.3-1.tgz -C /var/www/html/cacti/plugins
注意:安装即使插件后,查看实时图像时,--------需要在cacti目录下创建cache目录,并赋予777权限,在控制台setting--》Misc--》设置缓存目录
mkdir /var/www/html/cacti/cache
chmod 777 /var/www/html/cacti/cache/
8、设置一下服务的重启与开机启动:
service httpd restart
service snmpd restart
service crond restart
service mysqld restart
chkconfig httpd on
chkconfig snmpd on
chkconfig mysqld on
chkconfig crond on
9、设置向导
http://IP:81/cacti/
a、修改密码:
b、安装并激活插件console>Plugin Management
c、修改以spine方式运行
console>settings>Poller 修改Poller Type 为spine
console>seting>Paths 修改Spine Poller File Path 路径 /usr/local/spine/bin/spine
d、设置缓存 console>seting>Misc 设置Cache Directory /var/www/html/cacti/cache 为刚才创建的缓存目录
客户端安装
yum install net-snmp net-snmp-utils net-snmp-perl -y
vi /etc/snmp/snmpd.conf
更改 com2sec notConfigUser default public
改为 com2sec notConfigUser 监控端IP public(自定义)
更改access notConfigGroup "" any noauth exact systemview none none
改为access notConfigGroup "" any noauth exact all none none
将 #view all included .1 80 前面的 # 注释去掉
service snmpd restart
正常情况下cacti服务端就会出图,
cacti服务器测试一下
出现过的问题
1、POLLER: Poller[0] WARNING: Cron is out of sync with the Poller Interval! The Poller Interval is '300' seconds, with a maximum of a '300' second Cron, but 480 seconds have passed since the last poll!
*/5 * * * * /usr/bin/php /usr/local/cacti/poller.php > /dev/null 2>&1
改成每1分钟一次,改完后重启crond服务,结果问题得以解决,在正常之后又改回5分钟,运行正常
2、安装完成后,不出图,必须点击进去,
解决:进入 Cacti --> System Utilities --> Technical Support 就能看到是哪个部件出了问题导致无法出图,经过查看是Rrdtool版本输入错误导致,
3、生成图片错误,两种或多种数据放在一张图上时,
ERROR: the RRD does not contain an RRA matching the chosen CF
解决:进入cacti--->Graph Management --->选中有问题的Graph-->查看其debug模式报错,将item1的CFType由原先的Last修改为Average,
4、图片上方标注中文显示乱码,
解决:
首先,需要一个中文字体,下载simsun.ttc、simsun.ttf,将它们放进 /usr/share/fonts目录
并刷新字体缓存: fc-cache -f -v
5、在用PHP5.3以上的PHP版本时,只要是涉及时间的会报一个
PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /var/www/html/cacti/lib/functions.php on line 486
以下是三种方法(任选一种都行):我一般用第三种
a、在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s');
b、在页头使用 ini_set('date.timezone','Asia/Shanghai');
c、修改php.ini。打开php5.ini查找date.timezone 去掉前面的分号修改成为:date.timezone =PRC
6、登陆显示全是代码,可能是php未开启短标签
在php.ini中开启短标签
short_open_tag = On
转载 =================================cacti的排错经验=========================
cacti出不了数据,一般从以下几个方面入手解决问题
1。确认你的cacti主机上能否得到目标机器上的snmp数据
cacti得到目标机器上的统计数据分为两种方法,一种是远程通过snmp协议获取、一种是本地机器通过shell脚本获取。
2。确认你的crontab计划任务有在正常运作
cacti是通过crontab的定时作业每隔一段时间获取数据的,如果定时作业没有运作,肯定也是读取不到数据的
3。确认你的crontab定时作业所执行的作业能获取信息
cacti获取信息用的是poller.php定时运作,然后根据你设置的是用php脚本来执行snmp获取还是cactid来获取,所以,你必须确认你的php能支持php的snmp扩展、或者确认你有正确设置cactid。推荐使用cactid,效率比通过php高10~20倍。
4。确认你的rrdtool的版本
rrdtool1.0.x版本和1.2.x版本有着比较大的差别,在cacti里面要正确设置你的rrdtool的版本。比较容易出现的错误就是你的rrdtool是1.2.x版本,而cacti默认的rrdtool版本为1.0.x版本,如果是这样的话,你的数据收集是正常的,不过由于rrdtool的版本变化导致的命令处理格式的一点差别,cacti的缩微图会画不出来的,而具体的图片时可以画出来,这个,大家要留神一下。
5。当然了,要保证cacti收集的数据能被储藏在你的机器上,要保证收集的数据能被httpd服务读取