Linux下cacti的安装应用
这几天因为有监控远程服务器的需求,在本地配置了一下cacti。整个过程说起来蛮简单的,但是还是走了一些弯路,在这里记录下,防止忘记了。网络环境如下:监控机与被监控机系统均是centos 6.5,监控机在局域网内,是我的PC,被监控机固定IP,是位于远方的服务器。监控机通过snmp协议获取被监控机的数据后,在本地生成图像,显示在浏览器页面上。
1、被监控机的配置
配置相应的snmp服务,首先是安装软件:yum install net-snmp*,然后打开配置文件/etc/snmp/snmpd.conf
(1)将community改为public
找到代码#sec.name source community
com2sec notConfigUser default public
(2)将可读的权限设置为all,即将第二行的exact修改为all
#group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact none none
(3)找到代码,将前面的"#"去掉 #view all included. 1 80
重启snmp服务service snmpd start
在防火墙中打开UDP161端口,在/etc/sysconfig/iptables中加入
-A INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT
重启iptables即可,service iptables restart。
2、监控机配置
在监控机上配置,需要安装下列软件:rrdtool,apache,mysql,cron,gcc,使用yum命令进行安装
yum -y install mysql-server php php-cli php-mysql net-snmp-utils rrdtool php-snmp gcc mysql-devel net-snmp-devel automake libtool dos2unix
gcc和带devel的安装包是用来安装spine的。
将httpd,mysqld,crond设置为开机自启动
chkconfig httpd on
chkconfig mysqld on
chkconfig crond on
启动httpd,mysqld,crond服务
/etc/ini.d/httpd start
/etc/init.d/mysqld start
/etc/init.d/crond start
接下来下载cacti;
cd /var/www/html wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz tar -zxvf cacti-0.8.8b.tar.gz |
加入新用户;
设定crond任务,让其5分钟抓一次图。刚开始照着教程配置的时候不太明白为什么要设置为5分钟,后来自己手动抓了下图,发现如果两次抓图时间隔得太近,是无法抓取到数据的。
adduser cacti |
接下来是将cacti的数据文件导入数据库。
/usr/bin/mysql_secure_installation |
然后修改cacti页面登陆信息/var/www/html/cacti/include/config.php
下面就是在浏览器中输入你的主机地址登陆cacti了进入http:/localhost/cacti,一路确认,初始登陆账号密码是admin/admin
$database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password ="123456"; $database_port = "3306"; $database_ssl = false; |
3、排错方法
(1)检查rra/目录下是否有数据
(2)snmpwalk -v 2c -c public ServerIP if
来监控测试对象是否开启了snmp服务
(3)snmpwalk -v 2c 2c ServerIP -c public .1.3.6.1.4.1.2021.10.1.3
查看被监控端是否有CPU负载的数据返回
(4)php /var/www/html/cacti/poller.php
测试php是否能够采集到数据
上面的方法是在网上看到的,真的很管用~~