Cacti0.8.8a安装与优化
系统:centos 6.3 x86_64
一,先将时间修改好
vim /etc/sysconfig/clock 重启生效
Asia/Chongqing
# cp /usr/share/zoneinfo/Asia/Chongqing /etc/localtime 马上生效
# date 如果跟当前系统时间还是不一致。则需手动调整
Thu Dec 13 12:49:54 CST 2012
#date 1213124912 [MMDDhhmm[YY]
# hwclock -w 将系统时间写入硬件时间
# hwclock --show 查看硬件时间
二,安装LAMP环境,当然,如果你有兴趣可以采用编译,我线上Mysql是编译的,其余是yum安装的。在这次实验采用yum安装。
关闭iptables与selinux,如果有需要,后面再开启。
#/etc/init.d/iptables stop
#Setenforce 0
#yum -y install httpd http-devel httpd-manual mysql mysql-devel mysql-server php php-devel php-mysql php-common php-pdo php-gd lm_sensors net-snmp php-snmp net-snmp-utils
# chkconfig mysqld on
# chkconfig httpd on
# chkconfig snmpd on
# service mysqld start
# service httpd start
# service snmpd start
在浏览器中输入http://192.168.1.17,查看测试页有没有出现。
1)、修改snmp
#vim /etc/snmp/snmd.conf
#/etc/init.d/snmpd restart
验证snmp配置是否正确,
# snmpwalk -v 2c -c public 127.0.0.1 if 表示正确
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifDescr.1 = STRING: lo
如果提示Timeout: No Response from 127.0.0.1则配置不对。
2)、创建数据库存储cacti的数据。
# mysqladmin -u root password 'bingo'
# mysql -u root -p
:输入密码
mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on cacti.* to cactiuser@localhost identified by 'cactiuser';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> \q
Tip:创建 cacti数据库与cactiuser,可以省略在cacti配置文件中修改。当然也可以创建别的名字,只是在cacti的配置文件需要多做两步。
三、安装cacti
1、安装rrdtool需要的软件包
# yum -y install cairo-devel libxml2-devel pango pango-devel
2、安装rrdtool
1 # tar xf rrdtool-1.4.7.tar.gz
2 # cd rrdtool-1.4.7
3 # ./configure --prefix=/usr/local/rrdtool && make && make install
4 提示错误:
#Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 1.
解决:安装yum -y install perl-CPAN 即可
5 #make clean
6 #./configure --prefix=/usr/local/rrdtool && make &&make install
3、安装cacti-0.8.8a
7 # tar xf cacti-0.8.8a.tar.gz -C /var/www/html/
8 # cd /var/www/html/
9 # mv cacti-0.8.8a cacti
10 # chown -R apache:apache /var/www/html/cacti/
11 Tip:当我们打开浏览后,是apache用户来访问cacti,如果是编译的http,则不是apache用户,在http.conf有定义
12 #useradd cactiuser
13 #chown -R cactiuser:cactiuser cacti/{rra,log}
4、导入数据库
14 # mysql -ucactiuser -p cacti < cacti/cacti.sql
15 Enter password:
5、修改配置文件,如下:
16 # vim cacti/include/global.php
vim include/config.php修改下面的数据库连接信息,基于不用修改。
17 $database_type = "mysql";
18 $database_default = "cacti";
19 $database_hostname = "localhost";
20 $database_username = "cactiuser";
21 $database_password = "cactiuser";
22 $database_port = "3306";
23 $database_ssl = false;
6、添加计划任务
#echo "*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null" >/var/spool/cron/cactiuser
#/etc/init.d/crond restart
Tip:以cactiuser的身份定时执行这个脚本。
10、浏览器输入http://192.168.1.17/cacti/install初始化cacti,
11、将/usr/local/bin/rrdtool修改成正确的路径/usr/local/rrdtool/bin/rrdtool,点完成输入用户和密码都 是admin,输入之后会要求强制修改密码。
12、打开http://192.168.1.17/cacti 打开Console-->setting-->Genernal--->修改下面两项
RRDTool Utility Version选择RRDTOOL 1.4.x,SNMP Version选择version 2
13、手动执行一次php /var/www/html/cacti/poller.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 'America/New_York' for 'EST/-5.0/no DST' instead in /var/www/html/cacti/lib/functions.php on line 486
14、#vim /etc/php.ini 启用下面并修改。
date.timezone = Asia/Chongqing
15、/etc/init.d/httpd restart,再执行行php /var/www/html/cacti/poller.php没警告了,这下应该正常了。等几钟应该会出图
最后得到的结果如下所示。
Tip:1,初始化出现这种FATAL: Cannot connect to MySQL server on ‘localhost’. Please make sure you have specified a valid MySQL database name in ‘include/config.php’,则用cactiuser连接数据库,是否有权限完全控制cacti库。
2,如果不是cactiuser导致的,但是mysql是编译的,由于/var/www/html/cacti/poller.php使用的/var/lib/mysql/mysql.sock,因为编译的mysql的sock文件在tmp下,因此做一个软件链接
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
3,初始化时,点击finished后又弹回初始化界面,则检查数据库配置文件是否有read-only=1,有则删除,并重启Mysql
4,cacti图片显示的字体是方框,则需要安装字体,yum -y install dejavu-*,安装完后,刷新cacti界面就行。
5,在Console--->Devices中显示localhost的状态为unknow,在rrd目录中没有生成文件,查看rra,log目录的权限是否正确,并手动执行php /var/www/html/cacti/poller.php。注意调整时间,系统有两个时间,一个硬件时间和系统时间。在虚拟机中往往要注意。
四,安装spine
#tar xf cacti-spine-0.8.8a.tar.gz
# cd cacti-spine-0.8.8a
#./configure --prefix=/usr/local/cacti-spine
configure: error: Cannot find SNMP headers. Use --with-snmp= to specify non-default path.
#yum -y net-snmp-devel
#./configure --prefix=/usr/local/cacti-spine
#Make && make install
#cd /usr/local/cacti-spine/etc/
#cp spine.conf.dist spine.conf
#vim spine.conf
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass cactiuser
DB_Port 3306
DB_PreG 0
#/usr/local/cacti-spine/bin/spine --conf=/usr/local/cacti-spine/etc/spine.conf 测试spine安装是否正确,输出下面信息表示安装成功
SPINE: Using spine config file [/usr/local/cacti-spine/etc/spine.conf]
SPINE: Version 0.8.8a starting
SPINE: Time: 0.1251 s, Threads: 5, Hosts: 2
打开catcti网页。
Console——》setting——》poller 将cmd.php修改成spine,并保存。
Console——》settings--->paths,添加spine命令的路径并保存。
五,安装setting,thold,monitor
在安装thold插件,必须先安装settings插件,后安装thold插件。因为settings插件提供email的相关设置,thold插件的报警功能是根据settings里的设置来决定发送邮件的。
# tar xf settings-v0.71-1.tgz -C /var/www/html/cacti/plugins
# tar xf thold-v0.4.9-3.tgz -C /var/www/html/cacti/plugins
#tar xf monitor-v1.3-1.tgz -C /var/www/html/cacti/plugins
# vim /var/www/html/cacti/include/config.php
//$url_path = "/cacti/"; 在这一行下面添加一行
$plugins[] = 'settings';
$plugins[] = 'thold';
$plugins[] = 'monitor';
保存后,打开cacti网页,启用插件console-->plugin management-->将插件安装与启用,如下图表示已经正确启用。
六、设置邮件报警通知
在Console---->setting------>mail/DNS中填写好
如果点了send a test Email出现下图的错误
解决办法
# cat /var/log/httpd/error.log中提示没权限
sendmail: fatal: chdir /var/spool/postfix: Permission denied
#setenforce 0再测试就ok了
如果成功后,登录邮箱会收到一封邮件。
七、设置主机宕机通知:
在Console---->setting------>thresholds
下图表示,当有服务器宕机时,用304749970fly@163.com向304749970@qq.com发送通知。
304749970@qq.com表示全局的邮箱设置,与后面创建新的设备时,选择新的邮箱地址有关系。
八、设置插件moniter显示模式:
点moniter
九、监控linux主机
#yum -y install net-snmp
#vim /etc/snmp/snmpd.conf修改下面三处
编辑iptable
#vim /etc/sysconfig/iptables开放161端口
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m multiport --destination-port 22,80 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m multiport --destination-port 161 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
-A INPUT -p udp -m state --state NEW -m multiport --destination-port 161 -j ACCEPT
#/etc/init.d/iptables restart
至此被监控端设置完成
十、在监控端添加被监控机,打开cacti监控界面。
点add后,如下图
添加snmp - get mounted partions时为后面监控报警可以使用。 ucd/net - Get Monitored Partitions 可以删除,因为snmp - get mounted partions 也会获取磁盘的使用。
这里完了之后,需要点下面的Create后,如下图所示
选择哪些资源画成图形,再选择下面的Create。
可以自己选择图形的颜色,这里选择默认的。
下图表示创建成功
完成后点Create,在device中可以看到刚添加的设备。过几分钟状态应该会变成up。
如果创建时无法创建网卡图片或其他图片时:点击verbose query,排查错误
下面就是debug信息
如果网卡图像无法创建,编辑 vim /etc/snmp/snmpd.conf
view systemview included .1.3.6.1.2.1.1 将这行修改
view systemview included .1.3.6.1.2.1 改成这样
重启snmpd,再重新编辑主机,创建图像。
被监控机监控磁盘容量要在snmpd.conf中添加磁盘分区格式如下
disk /
disk /home
disk /boot
disk /data
或者执行此命令
mount |egrep '^/' |awk '{print "disk " $3}' >> /etc/snmp/snmpd.conf && service snmpd restart
十二,监控window2008主机与网卡流量
安装snmp,在2008后,snmp被做成一个功能的形式,而不是组件。按下面步骤安装snmp
安装完后,需要重启,window系统基本都是这样。重启后,在管理-----》配置---》服务中找到snmp service点属性,做下面修改。
到些,window主机设置完毕。
十三、在cacti添加window,监控主机与网卡流量也与上面一样。只是选择模板的时候需要注意。
将两台被监控的主机添加到默认树中显示,这样话,在查看图片时,可以查看到更详细的信息。
Tree item type中选择root,host选择对应的主机
Cacti不出图总结:
system utilities –>Rebuild poller cache
2.系统时间不准确,重新设置时间
3.图像没有生成,运行#/usr/bin/php /srv/www/htdocs/cacti/poller.php –force
4.权限问题,修改权限#chmod 777 -R /srv/www/htdocs/cacti/rra
5.数据库表有损坏,修复#mysqlcheck -ao cacti –auto-repair -uroot -p
6.重启snmpd服务#service snmpd restart
十四、监控磁盘使用并报警
1,创建发送给管理员的列表
2,创建报警模板
Console -----> threshold templates
点保存后,已经创建完了。
3,批量设置磁盘报警
4,也可以在graphs对每台服务器设置
创建完在thresholds中可以查到
十五,监控ubantu
root@summba-dev3:~# apt-get install snmp snmpd
root@summba-dev3:~# vim /etc/default/snmpd
root@summba-dev3:~# vim /etc/snmp/snmpd.conf
root@summba-dev3:~# service snmpd restart