Cacti 0.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
http://blog.运维网.com/attachment/201306/155754796.jpg
#/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 cacti user @localhost identified by 'cact iuser ';
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 -u cactiuser -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 ,
http://blog.运维网.com/attachment/201306/155821471.jpg
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 没警告了,这下应该正常了。等几钟应该会出图
最后得到的结果如下所示。
http://blog.运维网.com/attachment/201306/155845995.jpg
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,并保存。
http://blog.运维网.com/attachment/201306/155907852.jpg
Console——》settings--->paths,添加spine命令的路径并保存。
http://blog.运维网.com/attachment/201306/155924780.jpg
五,安装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--> 将插件安装与启用,如下图表示已经正确启用。
http://blog.运维网.com/attachment/201306/160033598.jpg
六、设置邮件报警通知
在Console---->setting------>mail/DNS 中填写好
http://blog.运维网.com/attachment/201306/160058323.jpg
如果点了 send a test Email出现下图的错误
http://blog.运维网.com/attachment/201306/160117185.jpg
解决办法
# cat /var/log/httpd/error.log中提示没权限
sendmail: fatal: chdir /var/spool/postfix: Permission denied
#setenforce 0再测试就 ok 了
http://blog.运维网.com/attachment/201306/160137683.jpg
如果成功后,登录邮箱会收到一封邮件。
七、设置主机宕机通知:
在Console---->setting------>thresholds
下图表示,当有服务器宕机时,用304749970fly@163.com 向304749970@qq.com 发送通知。
304749970@qq.com表示全局的邮箱设置,与后面创建新的设备时,选择新的邮箱地址有关系。
http://blog.运维网.com/attachment/201306/160430861.jpg
八、 设置插件moniter 显示模式:
http://blog.运维网.com/attachment/201306/160500801.png
点 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 监控界面。
http://blog.运维网.com/attachment/201306/161201136.png
点add 后,如下图
添加snmp - get mounted partions 时为后面监控报警可以使用。 ucd/net - Get Monitored Partitions 可以删除,因为snmp - get mounted partions 也会获取磁盘的使用。
这里完了之后,需要点下面的 Create后,如下图所示
http://blog.运维网.com/attachment/201306/161446233.jpg
选择哪些资源画成图形,再选择下面的Create 。
可以自己选择图形的颜色,这里选择默认的。
http://blog.运维网.com/attachment/201306/161509467.jpg
下图表示创建成功
完成后点Create ,在 device 中可以看到刚添加的设备。过几分钟状态应该会变成 up 。
如果创建时无法创建网卡图片或其他图片时:点击verbose query ,排查错误
http://blog.运维网.com/attachment/201306/162935621.png
下面就是 debug信息
http://blog.运维网.com/attachment/201306/162951239.png
如果网卡图像无法创建,编辑 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 点属性,做下面修改。
http://blog.运维网.com/attachment/201306/163252669.png
到些,window 主机设置完毕。
十三、在cacti 添加 window ,监控主机与网卡流量也与上面一样。只是选择模板的时候需要注意。
http://blog.运维网.com/attachment/201306/163329457.png
将两台被监控的主机添加到默认树中显示,这样话,在查看图片时,可以查看到更详细的信息。
Tree item type中选择 root , host 选择对应的主机
http://blog.运维网.com/attachment/201306/163421842.png
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
http://blog.运维网.com/attachment/201306/163917710.jpg
点保存后,已经创建完了。
3,批量设置磁盘报警
http://blog.运维网.com/attachment/201306/164238110.jpg
http://blog.运维网.com/attachment/201306/164315147.jpg
4,也可以在 graphs 对每台服务器设置
http://blog.运维网.com/attachment/201306/164001493.jpg
创建完在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
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com