CentOS6 支持Cacti0.8.7g及以下版本。
CenOS7支持Cacti0.8.8及以上版本。请按照版本安装不然出错的概率将大大提高。
目录
Cacti简介
本章结构
常见平台
常见的服务器监控软件
cacti,流量与性能监测为主----http://www.cacti.net/
nagios,服务与性能监测为主---http://www.nagios.org/
其他相关工具
RRDtool,轮询数据工具
SNMP原理
类别 | 标号 | 所包含的信息 |
system | (1) | 主机或路由器的操作系统 |
interfaces | (2) | 各种网络接口及它们的测定通信量 |
address transiation | (3) | 地址转换(例如ARP映射) |
ip | (4) | internet软件(IP分组统计) |
icmp | (5) | ICMP软件(已收到ICMP消息的统计) |
tcp | (6) | TCP软件(算法、参数和统计) |
udp | (7) | UDP软件(UDP通信量统计) |
egp | (8) | EGP软件(外部网关协议通信量统计) |
cacti的工作结构
C/S模式,采集监控数据
B/S模式,管理监测平台
环境部署
环境:主机A和主机B的操作系统为CentOS6.6 x86_64,最小化安装,均关闭SELINUX和防火墙,主机A作为监控端,主机B作为被进口欧冠端,IP地址分别为192.168.131.138和192。168.131.139。
配置Cacti
部署cacti运行环境
# yum -y install httpd mysql mysql-server mysql-devel php php-mysql
# yum -y install zlib freetype libjpeg fontconfig libxml2 gd php-gd
# yum -y install rrdtool
# yum -y install net-snmp net-snmp-utils
# service httpd start
# chkconfig httpd on
# service mysqld start
# chkconfig mysqld on
# service snmpd start
# chkconfig snmpd on
安装cacti
#wget https://cacti.net/downloads/cacti-0.8.7g.tar.gz
# tar xf cacti-0.8.7g.tar.gz -C /var/www/html/
# cd /var/www/html/
# mv cacti-0.8.7g/ cacti
# vim cacti/include/config.php
# mysql
mysql> create database cacti; //创建数据库cacti
mysql> grant all on cacti.* to 'cactiuser'@'localhost' identified by '123456'; //授权用户cactiuser@localhost对数据库cacti的所有权限及密码
mysql> flush privileges; //刷新缓存,刷新权限。
mysql>use cacti; //变更数据库
mysql>source /var/www/html/cacti/cacti.sql; //导入cacti数据库文件
mysql> exit
*【重要提示】如果用yum安装mysql可能会更新到mariadb 5.5以上版本,导入cacti.sql会报错误。
请使用
# cd /var/www/html/cacti/
# mysql -u cactiuser -p cacti < cacti.sql
Enter password:
/
/
输入密码
来导入表。
如果导入时出现
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 9的错误,原因:cacti.sql文件是在MySQL5.0或5.1编写的。如果在5.5和5.6上面导入会报错。 解决方法:1、用vim打开cacti.sql;
2、用命令 :%s/TYPE=MyISAM/ENGINE=MyISAM/g
批量查找替换,将数据库文件内的所有TYPE=MyISAM修改为ENGINE=MyISAM,保存退出;
3、重新导入cacti.sql即可。
# chown -R root:root /var/www/html/cacti/
# useradd cacti
# chown -R cacti:cacti /var/www/html/cacti/log/
# chown -R cacti:cacti /var/www/html/cacti/rra/
# mysql cacti
在浏览器输入http://192.168.131.138/cacti/install/,进入cacti安装向导
配置被监控端
# yum install –y net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-perl
# vim /etc/snmp/snmpd.conf
com2sec notConfigUser 192.168.131.138 public123
access notConfigGroup "" any noauth exact all none none
view all included .1 80
# service snmpd start
配置服务器端
# vim /etc/snmp/snmpd.conf
# service snmpd restart
配置监控
在cacti web界面
点击"Devices"à"add"
添加图像树
监控端操作
# /usr/bin/php /var/www/html/cacti/poller.php #开始同步数据
# crontab –e
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php
设置crond任务,使其每隔5分钟执行一次
# chkconfig crond on
图像显示出来了
安装Spine(轮循方式比cmd.php更快)
cd /usr/src/
wget https://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz
tar zxf cacti-spine-0.8.7g.tar.gz
cd cacti-spine-0.8.7g
./configure
make
make install
修改配置文件
cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
vi /etc/spine.conf
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass cactiuser ###修改密码
DB_Port 3306
DB_PreG 0
测试是否正常
/usr/local/spine/bin/spine
SPINE: Using spine config file [../etc/spine.conf]
SPINE: Version 0.8.8a starting
SPINE: Time: 3.8489 s, Threads: 4, Hosts: 21
更改页面轮询方式为spine
console>>settings>>poller>>poller type更换为spine然后保存。
在cacti里设置spine路径
Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path
/usr/local/spine/bin/spine
出错 :
全部完成后发现没有图形了,也没有数据,查看cacti的日志如下:
2017-02-16 14:33:01 - POLLER: Poller[1] ERROR: The path: /usr/local/spine/bin/spine is invalid. Can not continue
2017-02-16 14:34:01 - POLLER: Poller[1] ERROR: The path: /usr/local/spine/bin/spine is invalid. Can not continue
分析:
1.检查路径是否写错
2.spine 是否有可执行权限
3.在系统里单独运行下 spine 看是否有问题(一切正常,如下)
[root@bogon cacti]# /usr/local/spine/bin/spine
SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 1.0.1 starting
SPINE: Time: 0.3066 s, Threads: 4, Devices: 5
4.最终原因:
cacti是使用 poller.php 调用 spine的,这里问题是poller.php 无法调用spine(无法访问spine所在的目录)
将spine程序复制到 poller.php文件的同目录
cp spine /var/www/html/cacti/spine再将Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path
改为/var/www/html/cacti/spine 即可
注意其配置文件也要移动 cp /usr/local/spine/etc/spine.conf /etc/ (否则报下面错误)
继续出错:
没有任何图像产生,查看cacti日志
POLLER: Poller[1] Maximum runtime of 58 seconds exceeded. Exiting.刚开始分析是监控机器太多,线程无法在一分钟内扫描所有机器,在Poller设置里增加线程数
问题依旧……仔细查看Settings -> Paths -> Alternate Poller Path 里的设置选项,上面我们将spine这个程序
cp spine /var/www/html/cacti/spine 放到/var里执行,所以程序找不到它的配置文件了!!!
解决:cp /usr/local/spine/etc/spine.conf /etc/查看日志,正常工作
2017-02-16 14:55:03 - SYSTEM STATS: Time:1.5972 Method:spine Processes:2 Threads:4 Hosts:6 HostsPerProcess:3 DataSources:10 RRDsProcessed:7
插件配置
cacti不仅把所统计的流量以图像显示出来,而且还能通过插件使得cacti的功能得到进一步的提升。Cacti插件是对cacti的扩展,要使用cacti插件必须先扩展cacti架构,来支持插件。为了让cacti能够使用插件,必须先给cacti安装一个补丁->Plugin Architecture。由于对应不同的cacti的版本,都会有相应的PA。所以在安装PA的时候,一定要选择正确的版本。在cactiusers.org你会找到不同的插件和PA。
PA 与cacti版本的关系:PA 1.0 = cacti 0.8.6i
PA 1.1 = cacti 0.8.6i et 0.8.6j
PA 2.0 = cacti 0.8.7b
PA 2.2 = cacti 0.8.7c
PA 2.4 = cacti 0.8.7d
PA 2.5 = cacti 0.8.7ePA 2.8 =cacti 0.8.7g
cacti-plugin
用于扩展cacti架构,从而支持cacti插件
下载地址:http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
settings
用于邮件报警
下载地址:http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz
用图形方式显示设备状态
下载地址:http://docs.cacti.net/_media/plugin:monitor-v1.2-1.tgz
用于设备异常预警,阈值报警
下载地址:http://docs.cacti.net/_media/plugin:thold-v0.5.0.tgz
可以把网络拓扑显示出来
下载地址:http://www.network-weathermap.com/files/php-weathermap-0.96a.zip
cacti-plugin安装
备份cacti的web目录和数据库,以便在安装过程中出现错误后能及时恢复。
mkdir /root/cactibak
cd /var/www/html/
tar -zcf /root/cactibak/cacti-bak.tar.gz cacti
mysql -ucactiadm -pfuzj123 -B cacti_db > /root/cactibak/cacti-bak.sql
ls /root/cactibak
安装cacti-plugin
cd /usr/src
wget http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
tar zxf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch/
cp cacti-plugin-0.8.7g-PA-v2.8.diff /var/www/html/cacti/
cp pa.sql /var/www/html/cacti/
cd /var/www/html/cacti/
patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
mysql -ucactiuser -pcactiuser cacti < pa.sql //-u 用户名 -p密码 数据库
#编辑global.php
vim include/global.php
修改下面内容:
$database_type = "mysql";
$database_default = "cacti_db";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
修改完之后,下面打开浏览器对Cacti进行配置
注意:如果无法打开浏览器多是因为URL 不正确照成的。如果你访问cacti 的URL 为
http://ip/,那么在config.php(vim /var/www/html/cacti/include/config.php) 文件中则为$url_path ="/"; ;如果访问cacti 的URL 为http://192.16.254.248/cacti,则$url_path = "/cacti/";
打开"Console→ User Management→admin"然后在"Realm Permissions"选项卡中勾选"Plugin Management",然后点击Save 进行保存。打开浏览器,http://localhost 对 cacti 进行配置
这个时候我们就可以在Console→Configuration 选项卡下多了一个Plugin Management
选项卡,到此cacti 架构扩展完成
settings安装和使用
cd /usr/src/
wget http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz
mv plugin\:settings-v0.71-1.tgz settings-v0.71-1.tar
tar xf settings-v0.71-1.tar
cp -fr settings /var/www/html/cacti/plugins/
点击Console---> Plugin Management,我们看到多了一个settings 插件,然后点击蓝色箭头启
用即可,下图为启用后settings 插件,启用后箭头为红色
打开Console------Settings------Mail/DNS
按照上图进行配置,然后点击保存,最后点击右上角 send a Test Email.查看测试是否成功。看到success之后表示成功。
附:中文版配置页面的。用于配置参考
monitor安装和使用
cd /usr/src/
wget http://docs.cacti.net/_media/plugin:monitor-v1.2-1.tgz
mv plugin\:monitor-v1.2-1.tgz monitor-v1.2-1.tar
tar xf monitor-v1.2-1.tar
cp -fr monitor /var/www/html/cacti/plugins/
打开“Console -> Plugin Management”点击蓝色箭头启用即可,下图为已经启用的Monitor
插件
然后回到控制台,发现多了一个“Monitor”选项卡
打开“Console -> Settings”,发现多了一个“Misc”选项卡
thold的安装和使用
cd /usr/src/
wget http://docs.cacti.net/_media/plugin:thold-v0.5.0.tgz
mv plugin\:thold-v0.5.0.tgz thold-v0.5.0.tar
tar xf thold-v0.5.0.tar
cp -fr thold /var/www/html/cacti/plugins/
thold 插件不需要在cacti 配置文件config.php 中添加,我们之间来到浏览器设置就可以
打开“Console ->Plugin Management”点击蓝色箭头启用即可,下图为已经启用的thold
回到控制台,我们会发现多了一个“thold”选项
打开“Console -> Settings”,发现多了一个“Alerting/Thold”选项卡
打开“Console ------Settings------Alerting/Thold”
设置报警的收件邮箱和发件邮箱(需要和之前在settings中设置的一样)
附:中文界面图,供参考
weathermap的安装和使用
cd /usr/src/
wget http://www.network-weathermap.com/files/php-weathermap-0.96a.zip
unzip php-weathermap-0.96a.zip
cp -fr weathermap /var/www/html/cacti/plugins/
chmod -R 777 /var/www/html/cacti/plugins/weathermap
打开“Console -> Plugin Management”启用weathermap
点击“Console -> User Management ->admin”勾选下面选项