20130805 安装cactiphp
1、先记录下安装cacti,全rpm安装,简单html
一、vim /etc/sysconfig/selinux mysql
SELINUX=disabled linux
二、中止防火墙web
service iptables stopsql
三、安装依赖包shell
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数据库
四、建cacti数据库并赋予用户权限vim
mysqladmin -uroot create cacti缓存
mysql -uroot -p -e "GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser'"
五、安装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
六、进配置文件,进行修改
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 把前面的#去掉
七、插件安装
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/
八、设置一下服务的重启与开机启动:
service httpd restart
service snmpd restart
service crond restart
service mysqld restart
chkconfig httpd on
chkconfig snmpd on
chkconfig mysqld on
chkconfig crond on
九、设置向导
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服务器测试一下
出现过的问题
一、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分钟,运行正常
二、安装完成后,不出图,必须点击进去,
解决:进入 Cacti --> System Utilities --> Technical Support 就能看到是哪一个部件出了问题致使没法出图,通过查看是Rrdtool版本输入错误致使,
三、生成图片错误,两种或多种数据放在一张图上时,
ERROR: the RRD does not contain an RRA matching the chosen CF
解决:进入cacti--->Graph Management --->选中有问题的Graph-->查看其debug模式报错,将item1的CFType由原先的Last修改成Average,
四、图片上方标注中文显示乱码,
解决:
首先,须要一个中文字体,下载simsun.ttc、simsun.ttf,将它们放进 /usr/share/fonts目录
并刷新字体缓存: fc-cache -f -v
五、在用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
六、登录显示全是代码,多是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服务读取