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安装。

关闭iptablesselinux,如果有需要,后面再开启。

#/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

Cacti0.8.8a安装与优化_第1张图片

#/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

Cacti0.8.8a安装与优化_第2张图片

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没警告了,这下应该正常了。等几钟应该会出图

最后得到的结果如下所示。

Cacti0.8.8a安装与优化_第3张图片

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,因为编译的mysqlsock文件在tmp下,因此做一个软件链接

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

3,初始化时,点击finished后又弹回初始化界面,则检查数据库配置文件是否有read-only=1,有则删除,并重启Mysql

4cacti图片显示的字体是方框,则需要安装字体,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,并保存。

Cacti0.8.8a安装与优化_第4张图片

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-->将插件安装与启用,如下图表示已经正确启用。

Cacti0.8.8a安装与优化_第5张图片

六、设置邮件报警通知

Console---->setting------>mail/DNS中填写好

Cacti0.8.8a安装与优化_第6张图片

如果点了send a test Email出现下图的错误

Cacti0.8.8a安装与优化_第7张图片

解决办法

# cat /var/log/httpd/error.log中提示没权限

sendmail: fatal: chdir /var/spool/postfix: Permission denied

#setenforce 0再测试就ok

Cacti0.8.8a安装与优化_第8张图片

如果成功后,登录邮箱会收到一封邮件。

七、设置主机宕机通知:

Console---->setting------>thresholds

下图表示,当有服务器宕机时,用[email protected][email protected]发送通知。

[email protected]表示全局的邮箱设置,与后面创建新的设备时,选择新的邮箱地址有关系。

Cacti0.8.8a安装与优化_第9张图片

八、设置插件moniter显示模式:

Cacti0.8.8a安装与优化_第10张图片

moniter


九、监控linux主机

#yum -y install net-snmp

#vim /etc/snmp/snmpd.conf修改下面三处

Cacti0.8.8a安装与优化_第11张图片

Cacti0.8.8a安装与优化_第12张图片

编辑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监控界面。

Cacti0.8.8a安装与优化_第13张图片

add后,如下图

添加snmp - get mounted partions时为后面监控报警可以使用。 ucd/net - Get Monitored Partitions 可以删除,因为snmp - get mounted partions 也会获取磁盘的使用。

这里完了之后,需要点下面的Create后,如下图所示

选择哪些资源画成图形,再选择下面的Create


可以自己选择图形的颜色,这里选择默认的。

Cacti0.8.8a安装与优化_第14张图片

下图表示创建成功

Cacti0.8.8a安装与优化_第15张图片

Cacti0.8.8a安装与优化_第16张图片


完成后点Create,在device中可以看到刚添加的设备。过几分钟状态应该会变成up


如果创建时无法创建网卡图片或其他图片时:点击verbose query,排查错误

下面就是debug信息

Cacti0.8.8a安装与优化_第17张图片

如果网卡图像无法创建,编辑 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

Cacti0.8.8a安装与优化_第18张图片

Cacti0.8.8a安装与优化_第19张图片

安装完后,需要重启,window系统基本都是这样。重启后,在管理-----》配置---》服务中找到snmp service点属性,做下面修改。

Cacti0.8.8a安装与优化_第20张图片

到些,window主机设置完毕。

十三、在cacti添加window,监控主机与网卡流量也与上面一样。只是选择模板的时候需要注意。

Cacti0.8.8a安装与优化_第21张图片

将两台被监控的主机添加到默认树中显示,这样话,在查看图片时,可以查看到更详细的信息。

Cacti0.8.8a安装与优化_第22张图片

Tree item type中选择roothost选择对应的主机

Cacti0.8.8a安装与优化_第23张图片

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,创建发送给管理员的列表

Cacti0.8.8a安装与优化_第24张图片

Cacti0.8.8a安装与优化_第25张图片

2,创建报警模板

Console -----> threshold templates

Cacti0.8.8a安装与优化_第26张图片

Cacti0.8.8a安装与优化_第27张图片

Cacti0.8.8a安装与优化_第28张图片

Cacti0.8.8a安装与优化_第29张图片

Cacti0.8.8a安装与优化_第30张图片

点保存后,已经创建完了。

3,批量设置磁盘报警

Cacti0.8.8a安装与优化_第31张图片

Cacti0.8.8a安装与优化_第32张图片

4,也可以在graphs对每台服务器设置

Cacti0.8.8a安装与优化_第33张图片

Cacti0.8.8a安装与优化_第34张图片

创建完在thresholds中可以查到


十五,监控ubantu

root@summba-dev3:~# apt-get install snmp snmpd

root@summba-dev3:~# vim /etc/default/snmpd

Cacti0.8.8a安装与优化_第35张图片

root@summba-dev3:~# vim /etc/snmp/snmpd.conf

root@summba-dev3:~# service snmpd restart