一、安装LAMP架构
本篇主要介绍cacti如何监控windows主机,cacti的搭建过程也很简单,同样,监控linux主机也不难。这里主要记录部署监控windows过程中遇到的两个问题
1、LAMP
#yum install -y httpd php mysql-server
2、插件
#yum install -y mysql-server php-mysql net-snmp* zlib libpng freetype libjpeg gd libxml2
3、安装rrdtool
#yum -y install rrdtool
4、安装cacti
# tar xf cacti-0.8.8b.tar.gz -C /var/www/html/
5、数据库授权
mysql>grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti'; mysql>flush privileges; mysql> create database cacti;
6、导入数据库(先建库,再导库)
mysql> create database cacti; mysql cacti < /var/www/html/cacti/cacti.sql
折腾了半天,就是因为没有导入数据库
如果不导入数据库,会报错:
PHP Fatal error: Allowed memory size of 548405248 bytes exhausted (tried to allocate 523800 bytes) in /var/www/html/cacti/lib/adodb/adodb.inc.php on line 833
7、修改配置文件
# vim /var/www/html/cacti/include/config.php $database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cacti"; $database_password = "cacti"; $database_port = "3306";
8、访问cacti
http://192.168.1.150/cacti/
默认用户名及密码是admin:admin
9、署好cacti后,可以使用snmpwalk获取到数据,但cacti web页面是有图无数据
因为 httpd,php,rrdtool 都是yum安装的,mysql 是编译安装的,所以怀疑是yum的东西连接数据库的问题,结果证明不是
原因:获取到的数据没有顺利装载到数据库里,查看一下是不是数据库的问题,例如权限、数据表结构~~
查看日志:tail /var/www/html/cacti/log/cacti.log 没有信息 清空日志:>/var/www/html/cacti/log/cacti.log
/var/www/html/cacti/rra 有数据,说明rrdtool是没有问题的
执行 /usr/bin/php /var/www/html/cacti/poller.php 报了一个关于 Asia/Chongqing 的错
#vim /etc/php.ini
date.timezone = Asia/Chongqing
定时任务,每5分钟去探测一下:
*/5 * * * * /usr/bin/php /var/www/cacti/poller.php >/dev/null &2>1
(2)是无图无数据
如果是无图无数据,那就打开 Date Source 和 Graph Management 的 Debug 模式查原因,可以直接在命令行下运行 Data Source 中的命令来达到出图的目的
10、查看日志
一定要用tail,别用 cat 和 vim ,都读到内存中,小心把服务器搞崩了
二、监控windows主机
防火墙开户UDP 161(SNMP)端口
windows主机需要安装snmp服务和SNMP Informant服务
如果依照下面的步骤配置完后,还是不行,那就检查你服务器安装了什么安全软件,比如安全狗之类的,我就是被这家伙折磨了一天!
1、cacti客户端配置:
为window系统配置snmp服务及安装snmp informant
(1)在win2008服务器上添加功能snmp服务,不是snmp服务器
(2)运行 --> services.msc --> SNMP Service
在弹出的窗口中选择”安全”选项卡,并设置社区为:public
按需要可设置接受来自任何主机的SNMP数据包或只指定个别机子.
然后确定并重启SNMP Service.
(3)解压并安装informant-std-16.zip
下载链接:http://www.wtcs.org/informant/download.htm,目前是STD 1.6
(4)在cacti服务器上测试snmp的连通性
[root@cacti ~]# snmpwalk -v 2c -c public 192.168.1.107 system SNMPv2-MIB::sysDescr.0 = STRING: Hardware: Intel64 Family 6 Model 60 Stepping 3 AT/AT COMPATIBLE - Software: Windows Version 6.1 (Build 7601 Multiprocessor Free) SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.2 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (484620) 1:20:46.20 SNMPv2-MIB::sysContact.0 = STRING: SNMPv2-MIB::sysName.0 = STRING: DY-WORK-Server SNMPv2-MIB::sysLocation.0 = STRING: SNMPv2-MIB::sysServices.0 = INTEGER: 76
2、cacti服务端配置:
(1)下载模板
Cacti_SNMP_Informant_Standard_Metrics_v13.zip
(该cacti监控模板支持WinXP/Vista/Win7/Win2000/2003/2008/2012 x32/x64)
下载地址: http://forums.cacti.net/download/file.php?id=26562
(2)解压并导入模板
把template文件夹中的6个模板文件,通过cacit操作界面导入,
然后把文件夹resource\snmp_queries中的xml文件,放到cacti服务器中的相应目录,我的服务器为/var/www/html/cacti/resource/snmp_queries
3、创建监控主机及监控资源图
故障:安装、创建完成后,cacti不出图
解决:首先确认/var/www/html/cacti/rrd目录是否可写,照上文设置用户权限;
http://blog.sina.com.cn/s/blog_61c07ac50101cfja.html
三、cacti监控linux主机
1、在被监控的linux主机上安装net-snmp
[root@localhost ~]# yum install net-snmp [root@localhost ~]# rpm -ql net-snmp [root@localhost ~]# vim /etc/snmp/snmpd.conf #更改以下部分 (1)#将下边这行中的default com2secnotConfigUser default public #改为192.168.200.105(cacti)服务器的地址) com2secnotConfigUser 192.168.200.105 public (2)#将下边这行中的systemview access notConfigGroup "" any noauth exact systemview none none #改为all access notConfigGroup "" any noauth exact all none none (3)#将下边这行的注释“#”号去掉 #view all included .1 80 (4)重启snmp服务 [root@localhost ~]# service snmpd restart (5)设为开机启动 [root@localhost ~]# chkconfig snmpd on (6)查看端口 [root@localhost ~]# service snmpd restart (7)查看服务 [root@localhost ~]# ss -antulp | grep snmp tcp 0 128 127.0.0.1:199 *:* users:(("snmpd",23555,8))
2、在cacti服务器上使用snmpwalk测试
[root@cacti ~]# snmpwalk -v 2c -c public 192.168.200.111 system SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2401) 0:00:24.01 SNMPv2-MIB::sysContact.0 = STRING: Root(configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (2) 0:00:00.02 SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1 SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB