通过部署Cacti能够对公司的交换机、路由器及服务器进行监控。从而实时了解决各类设备的运行状态,如内存当前使用率,磁盘使用情况,网卡流量等,更重要的是可以监控公司核心交换机各接口流量,从而当大的网络环境出现问题时,如:有人大流量发包,有人发送ARP,有人下载大文件,导致整个网络非常卡时,都可以通过Cacti查看各个接口带宽的使用情况,判断问题所在。

一.cacti运行原理图

 

clip_image002[4]

 

二.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 //设置目录权限避免因权限问题而导致目录无法读取

 

IEhttp://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”按钮,进入添加新设备的页面:

clip_image002[6]

clip_image004

clip_image006

clip_image008

完成后,创建Graph Tress

点击左侧”Graph Tress”—再点击右上角”add”

clip_image010

clip_image012

完成后,再次点击”Devices”——然后选择”H3C S5600-26C’ ——将其添加到”switch” ——GO

如下图

clip_image014

clip_image016

clip_image018

clip_image020

clip_image022

……

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”按钮,进入添加新设备的页面:

clip_image024

接在后面的步骤同上

以下为己添加好的LINUX监控图

clip_image026

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 如图

clip_image028

监控端CACTI配置:

在Cacti控制台中,点击左侧栏“Management”下的“Devices”,然后单击上方的“Add”按钮,进入添加新设备的页面:

clip_image030

接在后面的步骤同上

下图为Cacti所形成监控图表:

clip_image032

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 -&gt; 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相关插件的案例中写入博客.