通过部署Cacti能够对公司的交换机、路由器及服务器进行监控。从而实时了解决各类设备的运行状态,如内存当前使用率,磁盘使用情况,网卡流量等,更重要的是可以监控公司核心交换机各接口流量,从而当大的网络环境出现问题时,如:有人大流量发包,有人发送ARP,有人下载大文件,导致整个网络非常卡时,都可以通过Cacti查看各个接口带宽的使用情况,判断问题所在。
二.Cacti监测对象
(一) 能够监控服务器的CPU负载、内存使用率、磁盘空间及使用率、进程数、连接数。
(二) 能够监控Web(可用性、网站速率对比)、Mail、FTP、数据库、中间件。
(三) 能够监控路由器、交换机及服务器的接口流量(进与出的带宽)、转发速率、丢包率。
(四) 能够监控网络设备性能、配置文件(对比与备份)、路由数。
(五) 能够监控安全设备性能、连接数、攻击数。
(六) 能够监控设备运行状态:风扇、电源、温度。
(七) 它可以提供邮件和手机短信报警功能,我们可以在cacti中对每个监控项定义阀值,当Cacti监控到超过阀值时,会产生相
应报警日志发送到你指定的邮箱和手机上。
三.Cacti安装环境配置过程
内部使用无需复杂的环境.rpm方式安装lamp环镜即可
操作系统平台
(一) 操作系统:Redhat Linux AS 5.1 (kernel version:2.6.18.el5)
(二) 安装方式:完全安装方式
rpm –ivh httpd-devel.i*
rpm –ivh php-devel.i*
rpm –ivh mysql-devel.i*
rpm –ivh mysql-server
rpm –ivh php-mysql
(三) 检测"Apache/PHP/MySQL/net-snmp"是否己安装
[root@localhost~]#rpm -qa | grep http
[root@localhost~]#rpm -qa | grep php
[root@localhost~]#rpm -qa | grep mysql
四.编辑相关工具主配置文件
(一) vi /etc/httpd/conf/httpd.conf
#
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf
(二) vi /etc/httpd/conf.d/php.conf
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
LoadModule php5_module modules/libphp5.so
#
# Cause the PHP interpreter to handle files with a .php extension.
(三) vi /etc/snmp/snmpd.conf
com2secnotConfigUser 127.0.0.1 public
access notConfigGroup "" any noauth exact all none none //将SystemViem 修改为all或read,提供访问权限
view all included .1 80 //去掉此行前面的#号
:wq
# service snmpd restart
五.RRDTool安装
[root@localhost~]#ls
cacti-0.8.7g.tar.gz rrdtool-1.4.5.tar.gz
[root@localhost~]#tar xzvf rrdtool-1.4.5.tar.gz //解压rrdtool
[root@localhost~]#cd rrdtool-1.4.5 //进入到解压出来的目录
[root@localhost rrdtool-1.4.5]#./configure //检查编译工具、模块、第三方支持..
[root@localhost rrdtool-1.4.5]#make && make install //编译和安装
[root@localhost rrdtool-1.4.5]#cd /opt //默认安装到/opt目录下
[root@localhost opt]#ls
rrdtool-1.4.5
[root@localhost opt]#cd rrdtool-1.4.5
[root@localhost rrdtool-1.4.5]#ls
bin include lib share
启动mysqld和httpd服务
[root@localhost~]#service mysqld start
[root@localhost~]#service httpd start
配置默认启动服务
[root@localhost~]#chkconfig mysqld on
[root@localhost~]#chkconfig httpd on
测试PHP
在/var/www/html目录下创建文件info.php
<?php
/**
*simple test for php5
*/
phpinfo();
?>
# chmod 777 – Rf /var/www/html //设置目录权限避免因权限问题而导致目录无法读取
IE:http://172.16.1.254/info.php //php环境测试页
六.cacti安装
3.1 获取并解压Cacti文件
(一) 从以下网址获得Cacti的最新版本
http://www.cacti.net/download_cacti.php
(二) 解压文件
[root@localhost~]#tar xzvf cacti-0.8.7g.tar.gz
(三) 将cacti目录移动到Apache根目录下
[root@localhost~]#mv cacti-0.8.7g /var/www/html/cacti
创建Cacti数据库并建立访问账号
[root@localhost~]#mysql
mysql>create database cacti;
mysql>grant all on cacti.* to cactiuser@localhost identified by ‘cactipw’;
mysql>flush privileges;
mysql>quit;
导入Cacti数据库
[root@localhost~]#cd /var/www/html/cacti
[root@localhost cacti]#ls
cacti.sql
[root@localhost cacti]#mysql cacti<cacti.sql
修改Cacti连接mysql连接参数
[root@localhost cacti]#vi include/config.php
$database_type="mysql";
$database_default="cacti";
$database_hostname="localhost";
$database_username="cactiuser";
$database_password="cactipw";
$database_port="3306";
:wq
[root@localhost cacti]#vim include/global.php
$database_type="mysql";
$database_default="cacti";
$database_hostname="localhost";
$database_username="cactiuser";
$database_password="cactipw";
$database_port="3306";
:wq
修改文件目录属性
[root@localhost cacti]#ll
1000 users
[root@localhost cacti]#chown –R root.root *
[root@localhost cacti]#ll
root root
创建一个调度任务
[root@localhost cacti]#crontab –e
*/5 * * * * php /var/www/html/cacti/poller.php >/dev/null 2>&1
:wq
[root@localhost cacti]#crontab –l
*/5 * * * * php /var/www/html/cacti/poller.php >/dev/null 2>&1
手动执行一遍 //以后每5分钟执行一次数据采集
七.cacti初始化
http://172.16.1.254/cacti
第一次访问cacti,它会有一个初始化的过程,操作步骤如下:
1、点击"Next"
2、选择"New Install">> Next
3、看到红色部分表示路径不正常,一般只需要修改rrdtool文件路径,此案例rrdtool文件路径如下
"/opt/rrdtool-1.4.5/bin/rrdtool"
然后点击Finish
4、此时会出现登录界面,默认登录用户名和密码都为admin
user name:admin
password:admin
输入后,点击login
5、登录进去后,cacti还要求我们重新设置新密码
按提示输入二次新密码即可
添加被监控的设备
添加路由器和交换机
被监控设备上的配置
思科设备:
Router(config)#snmp-server community kedacom ro
注: kedacom为团体名,意思为只接受团体名为kedacom的cacti监控
HUAWEI或H3C:
[H3C]snmp-agent community read kedacom
[H3C]snmp-agent sys-info version v2c
监控端CACTI配置:
在Cacti控制台中,点击左侧栏“Management”下的“Devices”,然后单击上方的“Add”按钮,进入添加新设备的页面:
完成后,创建Graph Tress
点击左侧”Graph Tress”—再点击右上角”add”完成后,再次点击”Devices”——然后选择”H3C S5600-26C’ ——将其添加到”switch” ——GO……
5.2 添加LINUX服务器
被监控设备上的配置(linux主机)
vi /etc/snmp/snmpd.conf
com2secnotConfigUser 172.16.0.139 kedacom //172.16.0.139为Cacti监测服务器的IP地址kedacom为团体名
access notConfigGroup "" any noauth exact all none none //将SystemViem 修改为all或read,提供访问权限
view all included .1 80 //去掉此行前面的#号
:wq
# service snmpd restart
监控端CACTI配置:
在Cacti控制台中,点击左侧栏“Management”下的“Devices”,然后单击上方的“Add”按钮,进入添加新设备的页面:
接在后面的步骤同上
以下为己添加好的LINUX监控图
5.3 添加windows设备
被监控设备上的配置(windows XP或server 2003)
1. 给 Windows 安装 SNMP 协议支持
控制面板– > 添加或删除程序– > 添加 / 删除 Windows 组件– > 双击“管理和监视工具”– > 勾上“简单网络管理协议 (SNMP)”
注:安装的过程中需要I386文件夹,请事先准备。
2. 修改 SNMP 的安全设置
打开 Services 窗口并找到 SNMP 服务,打开右键菜单,选择属性。在打开的窗口中找到“安全”选项页。在选项页中有两部分设置,上半部分是指 SNMP 服务接受哪种 Community 指示字,缺省情况下 Windows 2003 不对任何指示字反馈,我一般都添加设置为。
团体名称:kedacom 权限:只读
下半部分添加可信任的主机名、IP 或是 IPX 名称。这里就也是添加 cacti 服务器的 IP 172.16.0.139 如图
监控端CACTI配置:
在Cacti控制台中,点击左侧栏“Management”下的“Devices”,然后单击上方的“Add”按钮,进入添加新设备的页面:
接在后面的步骤同上
下图为Cacti所形成监控图表:
6 Cacti常见问题解决方法
6.1 Cacti监控H3C注意的问题
(一) 一般说来,Cacti图片的描述都是 |host_description| - Traffic - |query_ifName| 这个形式,对于华为的设备,query_ifName 类似于GigabitEthernet4/3/2形式,应为长度不够,可能导致后面的模块号,端口号无法显示。 GigabitEthernet4/3/2显示成GigabitEthernet。
解决方法:
Console -> Settings -> Visual ->Maximum Field Length: 默认 15,修改成80就OK了。
(二) 对于Traffic 大于800Mbits/s的无法显示问题。
解决方法:
在创建graph前修改 Data Templates -> Interface Traffic ->
1: traffic_in -> Maximum Value Use Per-Data Source Value 默认是100000000 后面再添 几个0就OK了.
2: traffic_out 也要修改,最好在使用new graph创建新的graph之前修改后,否则之后修改会有一定的麻烦,甚至无法正常工作。
6.2 Cacti监控Windows系统的主机出现无法获取CPU和内存信息解决方法
(一) windows主机
1、安装snmp服务
控制面板 -> 添加删除程序 -> 添加/删除windows组件 -> 管理和监视工具 -> 简单网络管理协议(SNMP)
2、配置snmp服务
管理工具 -> 服务 -> SNMP Service -> 安全 -> 接受团体名称 添加public,这个是用来登录的密码,自定义的 -> 接受来自这些主机的SNMP数据包 填上你的cacti服务器IP
3、安装第三方软件snmp informant
http://www.wtcs.org/informant/download.htm,目前是STD 1.6。安装很简单,注意一定在配置完snmp以后装,不然会提示你没有配置snmp。
(二) cacti服务器
1、测试监控机的snmp连接
# snmpwalk -v2c -c public 192.168.0.1 system
SNMPv2-MIB::sysDescr.0 = STRING: Hardware: x86 Family 6 Model 15 Stepping 7 AT/AT COMPATIBLE – Software: Windows Version 5.2 (Build 3790 Multiprocessor Free)
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.2
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (7862939) 21:50:29.39
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: CHINESE-FD21F3C
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 76
显示这个说明连接正常,如果不能正常连接,检查监控机snmp服务器是否正常还有防火墙有没有开放snmp的端口 udp 161
2、cacti模板文件 Windows XP/Win2000/Win2003/Vista/Win2008 Templates
下载地址http://download.csdn.net/source/2220747
解压后10个文件
cacti_data_query_w32_-_cpu_statistics.xml
cacti_data_query_w32_-_network_statistics.xml
cacti_data_query_w32_-_disk_statistics.xml
cacti_data_query_w32_-_object_statistics.xml
cacti_data_query_w32_-_memory_statistics.xml
以上文件在cactit管理界面,Import Templates导入。
snmp_informant_disk.xml
snmp_informant_objects.xml
snmp_informant_memory.xml
snmp_informant_cpu.xml
snmp_informant_network.xml
以上文件copy到服务器cacti安装目录的(/var/www/html/resource/snmp_queries
剩下的事情就是添加device还有graph,简单就不说啦。
7 总结
Cacti 带来的强大功能以及方便还远不止这些.Cacti上多达20多钟插件的使用,报警的实现等等,我将会在后续后续weathermap syslog monitor相关插件的案例中写入博客.