cacti监控服务的搭建!
1:安装mysql(需要安装cmake)
安装好mysql以后创建一个cacti库! 然后授权一个mysql帐号能够对cacti库有完全控制的权限!
grant all privileges on cacti.* to cacti@localhost identified by 'password' ; #新建数据库用户cacti并授予cacti数据库权限flush privileges; #刷新权限表
2:安装php (需要安装的很多..)
安装php和php-fpm 以后启动php-fpm 如果9000端口起来了说明php-fpm启动成功!
3:安装nginx(需要安装pcre zlib openssl)
配置nginx的配置文件,确保能够解析php页面!
root/web/rootlocation ~ \.php$ {# root /web/root/cacti;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #这个地方需要修改include fastcgi_params;}
#$document_root 指的就是网站根目录/web/root
4:安装cacti (需要先安装 yum -y install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel rrdtool )
a:把下载好的cacti-0.8.8a.tar.gz解压,并把解压好的目录拷贝到nginx配置好的网站根目录!
b:导入cacti的数据库
mysql -u cacti -p cacti
#/web/root/ 是我的网站根目录
#/web/root/cacti 是我拷贝的cacti-0.8.8a.tar.gz解压后的目录
c:修改cacti的配置文件
[root@cacti src]# vim /web/root/cacti/include/config.php<?php /* make sure these values refect your actual database/host/user/password */$database_type = "mysql";#数据库类型$database_default = "cacti2";#数据库名称$database_hostname = "localhost";$database_username = "cacti2";#数据库用户名$database_password = "admini";#数据库密码$database_port = "3306";$database_ssl = false;?>
d:访问http://ip地址/cacti 进行安装!
如果出现cacti的安装界面就直接下一步,第三部的时候需要确定一些文件的路径必须要填写正确不然以后会有问题!
如果没能显示界面检查nginx的配置文件!
成功安装以后就可以创建一些对本机的监控了! 也可以去网上找一些监控nginx mysql apache 等服务的模版. 根据需要cacti也可以添加各种插件.
搭建cacti服务的时候需要注意一下地方!!
A:注意php 、cacti、mysql 三者之间的版本问题!!!
如果安装以后提示cacti里面的各种php的函数已弃用,那就说明cacti和php之间版本差别太大了 !
cacti Version 0.8.8a 搭配 PHP 5.4.12 不会报函数已经弃用的警告!
如在导入cacti.sql的时候报错提示不支持TYPE = MYISAM , 需要将cacti.sql 里面的TYPE = MYISAM 都换成ENGINE=MyISAM 这样就可以正常的导入了。
*提示php默认的mysql.sock文件的路径要和mysql服务器指定的mysql.sock文件的路径相同!!
B: snmpd服务的配置文件的修改!
[root@cacti ~]# sed -e '/^$/d' -e /^#/d /etc/snmp/snmpd.confcom2sec notConfigUser 127.0.0.1 public #ip为cacti监控服务的ip地址.group notConfigGroup v1 notConfigUser #不需要修改group notConfigGroup v2c notConfigUser#不需要修改view systemview included .1.3.6.1.2.1.1#不需要修改view systemview included .1.3.6.1.2.1.25.1.1#不需要修改access notConfigGroup "" any noauth exact all none none #systemview 改成allview all included .1 80 #这行吧注释去掉syslocation Unknown (edit /etc/snmp/snmpd.conf)#不需要修改syscontact Root (configure /etc/snmp/snmp.local.conf)#不需要修改dontLogTCPWrappersConnects yes#不需要修改
------------------------------------------------------------------snmpd 的配置文件snmpd.conf详解
com2sec mynetwork 192.168.0.254 public Agroup MyROGroup v2c mynetwork Baccess MyROGroup "" any noauth prefix all none none Cview all included .1 80 D
这里只需要在snmpd.conf里面配置4句话就可以了,应该从下面往上面看D,查看的snmp信息,MIB节点信息C,定义允许访问的组MyROGroup,B,将MyROGroup映射一个组为mynetworkA,将mynetwork允许192.168.0.254访问,密码为public连接起来就一句话,最后表达一个意思,允许192.168.0.254获取snmp信息,密码为public,其他机器是不能允许访问的
C:搭建好cacti以后添加监控没有图片!
一:查用户对rra目录要有755的权限! 目录的拥有者和所属的主最好都是当前用户!
如果添加监控以后能够正常显示图(有无数据无所谓) 说明rra目录下面的rrd文件已经创建,没有权限问题!
二:检查snmpd服务的配置文件. 一般就这两个地方有问题!
D: cacti有图无数据!!
1:要知道cacti添加完图以后会每5分钟取一次数据,所以不要着急cacti出现数据需要时间!
2:通过下面这些命令可以帮助你排错!
a: rrdtool fetch ****.rrd AVERAGE#这个命令可以查看对应图的rrd文件有没有收集到数据!
1197990600: nan nan # 这是没有数据!1197990900: nan nan1197991200: nan nan1197991500: nan nan
b:snmpwalk -v 2c -c public IP地址 if#IP地址是被监控服务器的地址.
[root@cacti ~]# snmpwalk -v 2c -c public 192.168.1.224 ifIF-MIB::ifIndex.1 = INTEGER: 1IF-MIB::ifIndex.2 = INTEGER: 2IF-MIB::ifDescr.1 = STRING: loIF-MIB::ifDescr.2 = STRING: eth0
................................
c:snmpwalk -v 2c IP地址 -c public OID#IP是被监控服务器的地址.OID是
[root@cacti ~]# snmpwalk -v 2c 192.168.1.224 -c public .1.3.6.1.4.1.2021.10.1.3UCD-SNMP-MIB::laLoad.1 = STRING: 0.00UCD-SNMP-MIB::laLoad.2 = STRING: 0.00UCD-SNMP-MIB::laLoad.3 = STRING: 0.00
3:检查php、cacti 两者的时区是不是一样!
mysql时区的修改 (我mysql是北京时区,php和cacti是上海时区能正常运行)
mysql> SHOW VARIABLES LIKE '%time_zone%';+------------------+--------+| Variable_name | Value |+------------------+--------+| system_time_zone | CST || time_zone | +08:00 |+------------------+--------+2 rows in set (0.00 sec)
cacti时区的修改
在/web/root/cacti/include/global.php 里面加上默认时区参数!
date_default_timezone_set('Asia/shanghai');
php 时区的修改
在/usr/local/php/etc/php.ini 配置文件开启默认时区参数
date.timezone = Asia/Shanghai
4:检查crontab 任务管理器里的任务是否写错.
*/5 * * * * /usr/local/php/bin/php /web/root/cacti/poller.php > /dev/null &2>1 #每五分钟取一次数据!
出现问题的原因有很多,要学会查看日志, 根据报的错误信息来查找解决方法.