CentOS Linux 监控安装之Cacti
1、Cacti监控介绍
Cacti是一套基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具。
Cacti是用php语言实现的一个软件,它的主要功能是用SNMP服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用RRDTool生成图表呈现给用户。因此,SNMP和RRDTool是Cacti的关键。SNMPSnmp关系着数据的收集,RRDTool关系着数据存储和图表的生成。
SNMP(简单网络管理协议)用于收集设备内部发生的数据,如负载、磁盘状态、带宽之类。像Cacti这样的网络监控工具用这些数据来生成图标以达到监控的目的。
在一个典型的Cacti和SNMP部署中,会有一台或多台启用了SNMP的设备,以及一台独立的用来从那些设备收集SNMP回馈的监控服务器,所以,需要监控的设备必须启用SNMP。
MySQL配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机IP、SNMP团体名、端口号、模板信息等变量。
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
:wq #保存退出
/etc/init.d/iptables restart #最后重启防火墙使配置生效
2)、关闭SELinux
vim /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
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安装(根据实际的环境部署,建议使用源码安装)
yum install -y httpd php php-mysql mysql mysql-servermysql-devel php-gd libjpeg libjpeg-devellibpng libpng-devel
3)、安装cacti、net-snmprrdtool
yum install -y cacti net-snmp net-snmp-utils rrdtool
4)、分别启动mysql、apache、snmp服务
/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"
/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_sensors(Linux硬件监控软件)
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 [email protected]
同时在配置文件内按以下修改,若不修改则会造成在添加网卡检测时会无法找到网卡选项;
view systemview included .1.3.6.1.2.1.1
修改为:
view systemview included .1.3.6.1.2.1
:wq #保存退出
/etc/init.d/snmpd start #启动snmp服务
2)、配置windows 客户端
这里是windows 7,可能和2003系统有一点不一样,但是基本的思路是一样的。
(1)、开始à控制面板à卸载程序à打开或关闭Windows功能
找到【简单网络管理协议(SNMP)】在前面勾选,然后按【确定】即可。
(2)、开始-运行,输入【services.msc】确定,打开服务管理
找到【SNMP Service】,双击打开,会弹出对话框;
在【安全】“接受的社区名称”点击“添加”à“社区名称”填写”public”
在【安全】“接受来自下列主机的SNMP数据包的”点击“添加”à“192.168.17.10”
最后点击【确定】
然后在左上角点击“重启动”此服务。
至此,被监控的Windows主机设置完成
4、设置Cacti监控服务器对Windows和Linux主机进行监控
1)、添加对Linux主机的监控
登录cacti管理后台,点击【console】――【Device】,在右上角点击【Add】
Description 写本机ip或你自定义一个名字(webserver)
Hostname 写本机ip(192.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 写本机ip(192.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下面已经增加了我们刚刚添加的主机,图形一开始不会那么快出来,要等一小会才可以。
至此,完成了监控主机的设置。