Cacti监控系统的试验环境比较简单一台监控主机,一台被监控主机。
Cacti监控其他主机是通过简单的网络管理协议(snmp)收集被监控端的数据信息的,因为被监控端主机都需要安装net-snmp以及依赖包lm_sensors,并设置snmp配置文件。lm_sensors软件可以帮助我们监控硬件信息,安装snmp主程序及相关的依赖软件包,被监控主机仅需要修改snmp主配置文件即可
被监控端配置
yum -y install net-snmp lm_sensors
[root@localhost ~]# vim /etc/snmp/snmpd.conf
#com2sec notConfigUser default public
com2sec notConfigUser default rose001
# Second, map the security name into a group name:
# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
# Third, create a view for us to let the group have rights to:
# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
#access notConfigGroup "" any noauth exact systemview none none
access notConfigGroup "" any noauth exact all none none
view all included .1
(红色部分为修改配置文件部分)
Snmp配置文件主要包括4部分内容需要修改。第一步,映射通信名称到安全用户名称;第二步,将用户加入到组中;第三步,为组创建systemvies视图;第四步,创建all视图并赋予组只读访问权限。主配置文件设置完成后重启服务,即可通过客户端访问该服务器获得系统信息,snmp使用的端口号为udp161端口以及tcp199端口,我们需要在防火墙规则中开放这些端口数据。
[root@localhost ~]# service snmpd start
[root@localhost ~]# chkconfig snmpd on
安装cati服务
Cacti是基于PHP的web监控管理系统,所以cacti监控主机需要部署lamp环境(lamp环境的搭建参考此前的lamp环境搭建的博客),此外还需要使用snmp简单网络管理协议从被监控主机提取数据,然后使用RRDTool工具保存数据并最终生成图表信息。
yum -y install net-snmp net-snmp-devel net-snmp-utils net snmp-libs lm_sensors php-xml zlib libpng freetype cairo-devel pango-devel gd
因为cacti的优势在于其丰富的图表效果,为了将数据绘制成相应的更加直观的图表格式输出,就需要安装RRDTool工具,该软件的安装非常简单,使用configure,make,make install默认安装即可。
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz
tar -xf rrdtool-1.4.7.tar.gz -C /usr/local/
cd /usr/local/rrdtool-1.4.7/
yum -y install gcc
yum -y install libxml2*
yum -y install perl-ExtUtils-MakeMaker.x86_64
./configure --prefix=/usr/local/rrdtool
Make && make install
设置apache虚拟主机
因为是基于web的监控平台,需要修改apache主配置文件httpd.conf,通过DirectoryIndex index.html index.htm index.php指令设置默认首页为index.php,并开启虚拟主机配置文件
vim /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
DocumentRoot /var/www/html/cacti
ServerName cati.chosen.com
</VirtualHost>
修改PHP配置文件的时区设置,默认date.timezone为注释行,需要手动开启并设置时区,否则进行cacti初始化时会提示 It is not safe to rely on the systen’s timezone settings
我将时区定义为:date.timezone ="Asia/Shanghai"部署cacti监控系统,创建web页面跟路径目录,解压cacti包并移动至web跟路径下,因为apache默认以apache用户及组身份启动,所以需要使用chown命令修改目录权限以便apache读取相关页面。
wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz
tar -xf cacti-0.8.8a.tar.gz
mv cacti-0.8.8a /var/www/html/cacti
chown -R apache:apache /var/www/html/cacti
Service httpd restart
创建初始化数据库,这里要确保mysql服务器程序是开启的,通过cacti软件包内提供的数据库备份文件,在本机生成名为cacti的数据库,创建cactiuser账户,并赋予其访问cacti数据库的所有权限,该账号的密码为rose0011.
Mysqladmin -uroot -p create cacti
Cd /var/www/html/cacti
Mysql -uroot -p cacti < cacti.sql
Msyql -uroot -p
mysql> GRANT ALL PRIVILEGES ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'rose0011';
mysql> flush privileges;
mysql> show grants for cactiuser@'localhost';
+------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'cactiuser'@'localhost' IDENTIFIED BY PASSWORD '*668D84A088D81FC9E2FE95B7C112DDA6190478C3' |
| GRANT ALL PRIVILEGES ON `cacti`.* TO 'cactiuser'@'localhost'
+------------------------------------------------------------------------------------------------------------------+
设置cacti配置文件,根据上一步数据库初始化操作所创建的数据库信息,修改cacti配置文件中的数据库参数资料,修改内容如下:
Vim /var/www/html/cacti/include/config.php
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "rose0011";
$database_port = "3306";
$database_ssl = false;
启动snmp:service snmpd start
Cacti生成图表信息
当被监控主机与监控主机都部署完成后,管理员就可以在任意一台网络中的主机中通过浏览器访问cacti管理界面,配置与管理监控服务器。访问后如图所示
Cacti所需要的组件信息如果某些组件未找到,就会以红色显示,修改完之后为
下一步之后提示输入账户名和密码,cacti初始账户名与密码都为admin,输入正确后,系统会提示要求强制修改密码
登录cacti管理界面后,如果需要监控其他主机,还需要完成一些简单的设置,首先要在管理界面中通过devices菜单将被监控主机添加进来。其次,要为新添加的主机创建监控图形,通过new grahps菜单创建监控图形时可以根据情况有选择地监控对象主机。最后,要创建一棵便于查看图形的图形树。
a,添加服务器
Console -> Create New Graphs 右上方有一个 create new host
或者直接输入url,如下
http://192.168.1.2/graphs_new.php
b,为新增服务器,创建图表
Console -> Devices -> (Edit) 右上方有一个 Create Graphs for this Host
或者直接输入url,如下
http://192.168.1.132/graphs_new.php?host_id=2
c,将新增加的服务器,添加到graph tree
Console -> Graph Trees -> (Edit) -> Graph Tree Items
这样的话,我们就可以在graph中看到我添加的服务器了
crontab -e
*/5 * * * * /usr/local/php/bin/php /var/www/html/cacti/poller.php 每5分钟收集一次数据
Poller.php为收集数据信息的脚本