构建cacti监测系统


 Cacti是一款使用PHP语言开打的性能与流量监测工具,监测的对象可以是linuxwindows服务器,也可以是路由器,交换机等网络设备,主要基于SNMP(简单网络管理协议)搜集CPU占用,内存占用,运行进程数,磁盘空间,网卡流量等各种数据。

 Cacti本身只是一个Web界面的管理软件,通过调用Net-SNMP工具来采集监测数据,并结合RRDtool(轮询数据库工具)记录数据并绘制图片。

注意:Cacti监测系统的搭建需要LAMP环境的支持,因此在搭建Cacti环境之前需要先将LAMP环境搭建好,还有本文的系统使用rhel6.0的系统,参考时注意自己系统的版本。

服务器端配置(主控端-Cacti)

1、构建支持CactiLAMP平台

在此使用系统光盘中的rpm格式的包,并使用yum进行安装,相关软件包如下。

[root@localhost /]#yum -y install httpd

[root@localhost /]#yum -y install mysql mysql-server mysql-connector*

[root@localhost /]#yum -y install php php-mysql php-pdo perl-DBD*  unixODBC-*

上述分别是安装http mysqlphp,也就是LAMP平台。

2、安装net-snmp-utils软件包

 Cacti平台通过SNMP协议采集监测数据,因此需要用到snmpgetsnmpwalkSNMP数据采集工具,如下:使用yum一并安装。

[root@localhost /]#yum -y install net-snmp* lm_sensors

3、安装RRDtool软件包

[root@localhost /]#tar zxf rrdtool-1.4.5.tar.bz

[root@localhost /]#cd rrdtool-1.4.5

[root@localhost rrdtool-1.4.5]#./configure --prefix=/usr/local

[root@localhost rrdtool-1.4.5]#make && make install

4、部署Cacti源码包

将下载好的Cacti源码包释放至Web服务器的网页目录。

[root@localhost /]#tar zxf cacti-0.8.7g.tar.bz

[root@localhost /]#mv cacti-0.8.7g/ /var/www/html/cacti

5、添加一个程序用户,用来读取检测的数据。

[root@localhost /]#useradd runct

[root@localhost /]#cd /var/www/html/cacti

[root@localhost cacti]#chown -R root:root ./

[root@localhost cacti]#chown -R runct:runct rra/ log/

6、建立数据库,并导入表。

先创建用于Cacti检测平台的数据库,并授权一个数据库用户,然后使用cacti源码目录下的cacti.sql脚本,导入预设的各种数据表。如下图所示:

需要先启动mysqld服务,然后登陆mysq进行创建数据库操作。

[root@localhost cacti]#mysql -u root -p

Mysql>create database cactidb default character set utf8;

Mysql>grant all on cactidb.* to cactiuser@'localhost'  identified by '123.qwe';

Mysql>exit

[root@localhost cacti]#mysql -u cactiuser -p cactidb <  cacti.sql

7、调整Cacti配置文件

 Cacti的配置文件位于源码目录中的include/文件下,名为config.php。要是Cacti系统能够正确访问并使用数据库,必须修改config.php文件,确保数据库连接参数真确无误。修改如下:

[root@localhost cacti]#vim  /var/www/html/cacti/include/config.php

$database_type = "mysql";

$database_default = "cactidb";

$database_hostname = "lcoalhost";

$database_username = "cactiuser";

$database_password = "123.qwe";

$database_port = "3306";

$database_ssl = false;

$url_path = "/";

除此之外,为了在检测图像中正确显示中文,需要使用Cacti系统识别本机的中文语言环境。需要修改“/lib/functions.php”文件。修改如下:

[root@localhost /]#vim /var/www/html/cacti/lib/functions.php

<?php

Setlocale(LC_CTYPE,"zh_CN.UTF-8");

......//省略部分内容

8、修改httpd服务的主配置文件,设置好网站根目录,自动索引页,默认字符集等相关参数,然后启动http服务。修改如下:

[root@localhost /]#vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html/cacti"

<Directory "/var/www/html/cacti">

   Options Indexes  FollowSymLinks

   AllowOverride None

   Order allow,deny

   Allow from all

</Directory>

Directory Index index.php index.html

AddDefaultCharset UTF-8

[root@localhost /]#service httpd start

9、初始化安装Cacti系统

在浏览器中访问Cacti服务器的Web服务,根据提示进行cacti初始化的安装操作。如下图所示:在浏览器中输入“http://cacti服务器的地址”根据提示选择“next”进行下一步安装,Cacti初始化安装时会检测安装环境,安装完成后,会出现Cacti登陆界面,默认用户名,密码都是“admin”,初次登陆会提示更改密码。


客户端配置(被控端-SNMPD)

无论是交换机,路由器,还是Linux系统或windows系统,只要正确支持SNMP协议,并允许Cacti服务器采集数据,就能够进行集中检测了。作者在此分别使用Linux系统和Windows系统来演示客户端的配置操作。

1Linux客户端

linux客户端,需要安装net-snmplm_sensors等软件包,并修改snmpd.conf配置文件,启动snmpd服务即可。snmpd.conf配置文件修改如下:

[root@localhost \]#vim /etc/snmp/snmpd.conf

......//省略部分内容

41com2sec  notConfiguser 192.168.1.1 Public

62  access notConfigGroup  "" any noauth exact all none none

85  view all included .1

2windows客户端

        windows客户端需要安装SNMP服务

安装完成以后,通过“服务器管理器”修改“SNMP Service”服务的属性,指定授权地址(cacti服务器的地址),共同体名等(Public)

使用Cacti检测客户端主机

1、添加被监控端主机

单击导航栏中“Management”下的“Devices”链接,可以管理被控制端设备或主机。通过右上角的“Add”链接,可以打开添加新设备的页面。

创建新的被监控设备以后,将自动连接目标执行SNMP查询,若查询成功则可以继续后面的检测项目设置,否则应检测被控端的SNMP设置,网络连接,防火墙限制,共同体名等相关因素以排除故障。成功连接被控端后会看到“Save Sucessful”的提示信息,页面下方可看到默认检测项目,管理员可根据需要检测的项目进行勾选。

2、生成检测图像

单击导航栏中“Create”下的“New Graphs”链接,进入图像创建页面,选择指定被监控主机或设备,并选择其中最需要的图像条目。

单击导航栏中“Management”下的“Graph Trees”链接,在单击“Default Tree”,可以对默认的图像检测树进行管理。我们可以单击右边的“Add”链接,将刚才创建的图像添加至检测树汇总。

3、定期采集检测数据

 Cacti系统通过“poller.php”页面来采集检测数据,需要使用php程序解释执行。为了获得持续稳定的数据,应结合计划任务定期进行采集。

[root@localhost /]#su - runct   //切换为数据采集账户

[runct@localhost /]#php /var/www/html/cacti/poller.php   //手动执行数据采集

[runct@localhost /]#crontab -e   //设置计划任务

*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php  &> /dev/null

[runct@localhost /]#exit

[root@localhost /]#service crond start

[root@localhost /]#chkconfig crond on

4、查看检测结果

单击Cacti管理控制台左上方的“graphs”标签,然后展开左侧栏的“Default Tree”树,选择被监控主机后即可看到个项检测图像。

添加MonitorThold插件

        Cacti检测系统支持插件扩展,允许自定义图像模板和数据查询,从而能够灵活满足更加多样化的检测需求。下面通过安装及使用MonitorThold插件,介绍扩展Cacti检测系统功能的基本方法。

1、安装MonitorThold插件

将下载好的插件包解压到/var/www/html/cacti/plugins目录下即可。

[root@localhost /]#tar zxf monitor-0.8.2.tar.gz -C  /var/www/html/cacti/plugins

[root@localhost /]#tar zxf thold-0.4.3.tar.gz -C  /var/www/html/cacti/plugins

2、调整cacti配置以识别插件

cacti系统的web控制台中,单击导航栏中的“Utilites”下的“User Management”链接,修改admin用户的属性,选中“Plugin Management”项,单击“Save”保存即可。

刷新cacti控制台页面,左侧导航栏中“configuration”下将多出一个“Plugin Management”链接。单击此链接进入插件管理页面,通过“Actions”列的按钮可依次加载MonitorSettingsThold插件,并启用Thold插件。


使用状态监视插件――Monitor

单击导航栏中“configuration”下的“setings”链接,切换至“Misc”页面并选中“Show lcon Legend”以显示图例,将视图“View”设为“Tiles”。

若不希望某个设备被Monitor插件检测,则可以修改被监控主机属性,取消选中的“Monitor Host”即可。


使用阈值告警插件――Thold

1、设置接收告警邮件的邮箱地址

单击导航栏中的“ConfigUration”下的“Settings”链接,切换至“Thresholds”页面,选中“Dead Host Notifications”以便宕机或恢复时发送通知,同时应在“Dead hosts Notifications Email”外指定告警邮箱地址。

2、设置SMTP发信、DNS服务器等参数。

单击导航栏中的“ConfigUration”下的“Settings”链接,切换至“Mail/DNS”页面,将“Mail Services”设为“SMTP”,并填写实际可用的发信地址,SMTP服务器,SMTP认证用户和密码,以及DNS服务器地址等信息。

3、设置需要报警的检测项目

单击导航栏中“Templates”下的“Threshold Templates”连接,切换至预警模板设置页面,单击“Add”可以添加预警项,数据模板应与被控设备使用的模板想匹配。

在设置各种检测模板时,告警阈值的默认计量单位如下:CPU使用率为百分比(不含%),网卡流量为Byte/S,硬盘空间为KB,内存占用为KB

4、为被控主机启用阈值告警

单击导航栏中“Create”下的“New Graphs”连接,选择指定的被控主机,然后单击右上方的“Auto-create thresholds”连接,将会自动创建可用的阈值告警项目。

5、查看,管理阈值警告。

单击导航栏中“Management”下的“Thresholds”连接,可以对以启用的阈值告警项进行管理(查看,添加,删除等);或者通过cacti管理页面上方的“Thold”选项卡,可以查看阈值告警情况,达到告警条件的检测项将以红色显示。



你可能感兴趣的:(cacti,linux监控,流量监控系统)