CentOS Linux 监控安装之Cacti

 

1Cacti监控介绍

Cacti是一套基于PHPMySQLSNMPRRDTool开发的网络流量监测图形分析工具。

 

Cacti是用php语言实现的一个软件,它的主要功能是用SNMP服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用RRDTool生成图表呈现给用户。因此,SNMPRRDToolCacti的关键。SNMPSnmp关系着数据的收集,RRDTool关系着数据存储和图表的生成。

 

SNMP(简单网络管理协议)用于收集设备内部发生的数据,如负载、磁盘状态、带宽之类。像Cacti这样的网络监控工具用这些数据来生成图标以达到监控的目的。

在一个典型的CactiSNMP部署中,会有一台或多台启用了SNMP的设备,以及一台独立的用来从那些设备收集SNMP回馈的监控服务器,所以,需要监控的设备必须启用SNMP

 

MySQL配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机IPSNMP团体名、端口号、模板信息等变量。

SNMP抓到数据不是存储在MySQL中,而是存在RRDTool生成的RRD文件中(在cacti根目录的rra文件夹下)。RRDTool对数据的更新和存储就是对RRD文件的处理,RRD文件是大小固定的档案文件(RoundRobin Archive),它能够存储的数据笔数在创建时就已经定义。

 

2、部署Cacti监控服务

安装前的准备工作:

1)、添加防火墙规则

vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp--dport 80 -j ACCEPT
#-A INPUT -m state --state NEW -m tcp -p tcp--dport 3306 -j ACCEPT  #数据库同一机器不需要
-A INPUT -m state --state NEW -m udp -p udp--dport 161 -j ACCEPT

 

保存退出,最后重启防火墙使配置生效

/etc/init.d/iptables restart


 

2)、关闭SELinux

vim /etc/selinux/config

#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加


保存退出,重启系统永久生效,零时关闭SELinux执行如下命令:

setenforce 0


 

3)、监控环境说明:

类型                   操作系统                 IP地址
监控服务端             CentOS6.7 x86_64         192.168.17.10
监控客户端             CentOS6.7 x86_64         192.168.17.20
监控客户端              Windows7                192.168.17.1

 

局域网内有两台主机,一台Linux、一台Windows,现在需要配置一台Cacti监控服务器对这两台主机进行监控。

 

以下是在监控的服务器(192.168.17.10)上操作的。

1)、因为使用yum安装,需要用到epel的扩展源

yum install -y epel-release

 

2)、安装LAMP环境,使用yum安装(根据实际的环境部署,建议使用源码安装)

y

um install -y  httpd php php-mysql mysql mysql-servermysql-devel php-gd  libjpeg libjpeg-devellibpng libpng-devel

 

3)、安装cactinet-snmprrdtool

yum install -y cacti  net-snmp net-snmp-utils  rrdtool

 

4)、分别启动mysqlapachesnmp服务

/etc/init.d/mysqld start
/etc/init.d/httpd  start
/etc/init.d/snmpd start

 

5)、修改Apache的配置文件http.conf/etc/httpd/conf/httpd.conf)和cacti.conf/etc/httpd/conf.d/cacti.conf

vim /etc/httpd/conf/httpd.conf

把
“# ServerName www.example.com:80” 

去掉# 号去掉,改为
“ServerNamewww.example.com:80”

 

vim /etc/httpd/conf.d/cacti.conf 

把
"Deny from all" 
改为
"Allow from all"
# 重启httpd服务
/etc/init.d/httpd  restart

 

6)、创建cacti数据库和cacti用户

mysql -uroot  -e "create database cacti"     #创建数据库
mysql -uroot -e "grant all on cacti.*to 'cacti'@'127.0.0.1' identified by 'cacti';"  #创建cacti用户
mysql -uroot cacti < /usr/share/doc/cacti-0.8.8b/cacti.sql  #导入cacti的数据库模版文件


 

7)、修改用于连接数据库的cacti配置文件

vim/usr/share/cacti/include/config.php  更改如下:

$database_type = "mysql";                    #数据库类型
$database_default = "cacti";               #默认数据库
$database_hostname = "127.0.0.1";          #数据库地址
$database_username = "cacti";           #数据库用户名
$database_password = "cacti";          #数据库密码
$database_port = "3306";             #数据库端口号
$database_ssl = false;

 

8、通过web浏览访问cacti并且安装

http://ip/cacti           #ip是指安装cacti服务器的ip,这里是192.168.17.10

点两下“next”和一次”Finish“即可
输入admin   admin 登录,重新设置新的密码


 

9)、执行poller.php程序,生成图形,并将其加入任务计划

/usr/bin/php /usr/share/cacti/poller.php        #执行程序生成图形

crontab -e #增加
*/5 * * * * /usr/bin/php /usr/share/cacti/poller.php &> /dev/null

 

至此,Cacti监控服务器已经安装完成了。

 

3、配置被监控的主机(监控客户端)

1)配置Linux客户端

Linux客户端上需要安装net-snmp等相关的软件包,同时需要开启防火墙UDP161端口。

1)、开启防火墙UDP 161端口

vim  /etc/sysconfig/iptables #编辑防火墙配置

-A INPUT -m state --state NEW -m udp -p udp--dport 161 -j ACCEPT
#重启防火墙使配置生效

/etc/init.d/iptables restart


 

2)、安装net-snmp lm_sensorsLinux硬件监控软件)

yum install -y net-snmp lm_sensors

 

3)、配置snmpd.conf/etc/snmp/snmpd.conf)并启动snmp服务

修改 syslocation 以及syscontact, 其中
syslocation 可以写本机ip,
syscontact  写管理员邮箱

 如下:

syslocation 192.168.17.20
syscontact Root balich@foxmail.com

 

同时在配置文件内按以下修改,若不修改则会造成在添加网卡检测时会无法找到网卡选项;

view   systemview    included   .1.3.6.1.2.1.1
修改为:
view   systemview    included   .1.3.6.1.2.1

 

保存退出启动snmp服务

/etc/init.d/snmpd start

      

 

2)、配置windows 客户端

这里是windows 7,可能和2003系统有一点不一样,但是基本的思路是一样的。

1)、开始à控制面板à卸载程序à打开或关闭Windows功能

找到【简单网络管理协议(SNMP)】在前面勾选,然后按【确定】即可。

 

2)、开始-运行,输入【services.msc确定,打开服务管理

找到【SNMP Service】,双击打开,会弹出对话框;

在【安全】“接受的社区名称”点击“添加”à社区名称填写”public”

在【安全】“接受来自下列主机的SNMP数据包的”点击“添加”à“192.168.17.10” 

最后点击【确定】

然后在左上角点击“重启动”此服务。

至此,被监控的Windows主机设置完成

 

 

4、设置Cacti监控服务器对WindowsLinux主机进行监控

 

1)、添加对Linux主机的监控

 

登录cacti管理后台,点击【console】——【Device】,在右上角点击【Add

Description 写本机ip或你自定义一个名字(webserver

Hostname 写本机ip192.168.17.20

Host Template  ucd/net  SNMP Host

SNMP Version  Version 2

点右下角的Create

点右上角的”Create Graphs for this Host”

Graph Types:  选择SNMP - InterfaceStatistics

在下面框中选择要监控的网卡,比如我选择eth0, 在最右侧小方块里打对勾,然后点右下角的Create

 

点左侧的Graph Trees

选中”Default Tree

点右上角的Add

Tree Item Type 选择 “Host”

Host 选择我们刚刚增加的那个机器ip

点右下角的create

 

点左上角的Graphs

在左侧可以看到

Defaut Tree下面已经增加了我们刚刚添加的主机,图形一开始不会那么快出来,要等一小会才可以。

 

2)、添加对Windows主机的监控

 

cacti管理后台,点击【console】——【Device】,在右上角点击【Add

Description 写本机ip或你自定义一个名字(Windows 7

Hostname 写本机ip192.168.17.1

Host Template  Windows 2000/XP Host

SNMP Version  Version 2

点右下角的Create

点右上角的”Create Graphs for this Host”

Graph Types:  选择SNMP - InterfaceStatistics

在下面框中选择要监控的网卡、磁盘,在对应的地方勾选,然后点右下角的Create

 

点左侧的Graph Trees

选中”Default Tree

点右上角的Add

Tree Item Type 选择 “Host”

Host 选择我们刚刚增加的那个机器ip

点右下角的create

 

点左上角的Graphs

在左侧可以看到

Defaut Tree下面已经增加了我们刚刚添加的主机,图形一开始不会那么快出来,要等一小会才可以。

 

 

至此,完成了监控主机的设置。