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是基于PHPweb监控管理系统,所以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工具,该软件的安装非常简单,使用configuremake,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

    DocumentRoot /var/www/html/cacti

    ServerName cati.chosen.com

修改PHP配置文件的时区设置,默认date.timezone为注释行,需要手动开启并设置时区,否则进行cacti初始化时会提示 It is not safe to rely on the systens 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管理界面,配置与管理监控服务器。访问后如图所示

cati监控应用_第1张图片 

cati监控应用_第2张图片 

cati监控应用_第3张图片 

Cacti所需要的组件信息如果某些组件未找到,就会以红色显示,修改完之后为

cati监控应用_第4张图片 

下一步之后提示输入账户名和密码,cacti初始账户名与密码都为admin,输入正确后,系统会提示要求强制修改密码

cati监控应用_第5张图片 

cati监控应用_第6张图片 

登录cacti管理界面后,如果需要监控其他主机,还需要完成一些简单的设置,首先要在管理界面中通过devices菜单将被监控主机添加进来。其次,要为新添加的主机创建监控图形,通过new grahps菜单创建监控图形时可以根据情况有选择地监控对象主机。最后,要创建一棵便于查看图形的图形树。

cati监控应用_第7张图片 

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为收集数据信息的脚本