Cacti监控系统

简介

当公司服务器越来越多,规模越来越大的时候,运维人员了解每台服务器运行状态的工作压力也会越来越大,如果人为的逐个查看每台服务器运行状态肯定是

不可行的,此时我们需要一款可以自动收集服务器数据并将所有的数据进行汇总查看的工具软件,最好还可以将收集到的数据绘制成曲线图。而Cacti就是基于

RRDTool的前端主机性能监控系统,Cacti前端采用PHP代码驱动,通过SNMP获得被监控主机的数据信息,使用RRDTool存储数据,并根据这些数据绘制成

图形报表。利用Cacti我们不必关心RRDTool底层操作就可以通过web页面直接查看被监控主机的性能图表。Cacti内置的用户管理工具可以创建多个用户并赋予

不同的操作权限,每个用户可以独立管理与维护自己的监控设备。下面是Cacti的监控原理图,管理员通过浏览器访问Cacti,通过Cacti管理界面设置定义图表、

模板、账户以及被监控节点信息(被监控节点可以是路由、交换、服务器、应用程序),所有的Cacti管理数据被存储在MySQL数据库中,RRDTool使用SNMP

收集被监控节点的数据,这些数据被存储在rrd数据库文件中,最终根据数据生成图表显示在Cacti管理界面中。

下面是一个监控案例示意图,整体拓扑结构采用一台Cacti监控主机动态监控两台web服务器。案例环境中,管理员从office-pc这台计算机上通过浏览器访问

Cacti服务器提供的web页面,在Cacti提供的web管理界面中查看web1以及web2服务器性能图表。

Cacti监控应用案例

1、被监控端配置

Cacti监控其他主机通过简单网络管理协议(SNMP)收集被监控端的数据信息的,因此,被监控端web1与web2服务器都需要安装net-snmp以及依赖包lm_sensors

并设置SNMP配置文件。lm_sensors软件可以帮助我们监控硬件信息,具体步骤如下

安装SNMP主程序及相关的依赖包,被监控主机仅需要修改SNMP主配置文件即可(根据模板文件,下图对需要修改的地方用黑体字表示)

yum -y install net-snmp lm_sensors

vim /etc/snmp/snmpd.conf

SNMP配置文件主要包括四部分内容需要修改。第一步,映射通信名称到安全用户名称;第二步,将用户加入到组中;第三步,为组创建systemvies视图;第四步,创建all视图并赋予组只读访问权限。

主配置文件设置完成后重启服务,即可通过客户端访问该服务器获得系统信息,SNMP使用的端口号为UDP161端口以及TCP199端口,我们需要在防火墙规则中开放这些端口数据。

iptables -I INPUT -p udp --dport 161 -j ACCEPT

iptables -I INPUT -p tcp --dport 199 -j ACCEPT

service iptables save

service snmpd start

chkconfig snmpd on

web1与web2被监控主机均启动snmpd服务后,可以在Cacti主机上执行snmpwalk命令验证snmpd服务是否运行正常,如果出现下面的提示,则说明一切正常

2、安装Cacti服务

Cacti是基于PHP的web监控管理系统,所以Cacti监控主机需要部署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 -zxvf rrdtool-1.4.7.tar.gz -C /usr/src/

cd /usr/src/rrdtool-1.4.7/

./configure --prefix=/usr/local/

make && make install

设置Apache虚拟主机:

因为是基于web的监控平台,而本书web服务器采用的是Apache HTTP Server,因此需要修改Apache主配置文件httpd.conf,通过DirectoryIndex index.php index.html指令设置默认首页为index.php,

去除Include conf/extra/httpd-vhosts.conf指令前的#。Include指令将读取httpd-vhosts.conf文件的内容作为主配置文件的一部分,并在httpd-vhosts.conf文件中加入用来实现监控的虚拟主机。

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

修改PHP配置文件的时区设置,默认date.timezone为注释行,需要手动开启并设置时区,否则进行Cacti初始化时会提示It is not safe to rely on the system's timezone settings。

编译PHP配置文件/usr/local/php5/lib/php.ini,修改其中的时区参数date.timezone = "Asia/Shanghai"。

部署Cacti监控系统,创建web页面根路径monitor目录,解压Cacti包并移动至web根路径下,因为Apache默认以daemon用户及组身份运行,所以需要使用chown命令修改目录权限以便Apache读取相关页面

wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz

tar -zxvf cacti-0.8.8a.tar.gz -C /usr/src/

mv /usr/src/cacti-0.8.8a/ /usr/local/apache2/htdocs/cacti

chown -r daemon.daemon /usr/local/apache2/htdocs/cacti

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

service iptables save

/usr/local/apache2/bin/apachectl restart

创建初始化数据库,这里确保MySQL服务器程序是开启的,通过Cacti软件包内提供的数据库备份文件,在本机生成名为cacti的数据库,创建cacti账户,并赋予其访问cacti数据库的所有权限,密码为cacti

/usr/local/mysql/bin/mysqladmin -u root -p create cacti

cd /usr/loacl/apache2/htdocs/cacti

/usr/local/mysql/bin/mysql -u root -p cacti < cacti.sql

/usr/local/mysql/bin/mysql -uroot -p

mysql>grant all on cacti.* to cacti@localhost identified by 'cacti';

mysql>flush privileges;

mysql>exit

设置Cacti配置文件,根据上一步数据库初始化操作所创建的数据库信息,修改Cacti配置文件中数据库参数,需要修改的内容如下

/usr/local/apache2/htdocs/cacti/include/config.php

3、Cacti生成图表信息

当被监控主机与监控主机都部署完成后,管理员就可以在任意一台office-pc主机上通过浏览器访问Cacti管理页面,配置与管理监控服务器。第一次登陆Cacti监控页面时会提示进行基本的初始化操作:

提示安装Cacti前请仔细阅读相关文档,单击"Next"按钮继续

提示数据库信息并根据实际情况选择是全新安装还是升级

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

提示输入用户名和密码,Cacti初始账户和密码都是admin

输入正确后,系统会提示要求强制修改密码

进入Cacti管理界面

登录Cacti管理界面后,如果需要监控其他主机,还需要完成一些简单的设置。首先,需要在管理界面中通过Devices菜单将被监控主机添加进来;其次,要为新添加的主机创建监图形,

通过New Graphs菜单创建监控图形时可以根据情况有选择的监控对象主机;最后,要创建一颗便于查看图形的图形树,在一颗树下可以加入多个监控对象。

如上,进入Devices菜单后单击"Add"按钮添加被监控的主机,此时系统会要求填写相关的表单信息,项目描述见下表,填写完所需项目表单后单击右下角的"Create"按钮,即可创建新的监控主机,同时在下方会

出现图形模板以及数据查询模板,管理员可以根据实际需要继续添加需要监控的参数对象,确定后单击"Save"按钮保存所有的设置

项目名称              描述

Description             设备描述信息,描述被监控主机信息

Hostname              设备名称,可以输入IP地址或主机名(需要DNS解析)

Host Template           定义图形及数据查询模板

Number of Collexction Threads   用于搜集数据信息的线程数量,默认即可

Disable Host            停用该主机,仅在不需要监控该主机时选择

Downed Device Detection     宕机检测方式,设置默认值SNMP Uptime即可

Ping Timeout Value        测试ping的超时时间,单位为ms,默认为400ms

Ping Retry Count         ping重试次数,默认即可

SNMP Version           SNMP版本,使用默认的version 1

SNMP Community        输入被监控端定义的通信名

SNMP Port             SNMP端口号,默认为161

SNMP Timeout          SNMP超时时间,单位ms

Associated Graph Templates   添加图形监控模板,默认监控CPU、内存、负载

Associated Data Queries     添加数据查询项目

通过以上操作后,设备主机以及需要监控的性能指标已经创建完成。下面需要通过New Graphs菜单创建图形。进入新建图形界面后在Host列表中选择上一步添加的监控主机,

并在需要监控的性能模板后点选对钩,设置完成后选择"Create"按钮为被监控设备添加图形。

Cacti监控系统最终通过树状列表来查看被监控主机的性能图表,我们可以创建多棵图形树,在每棵图形树下可以插入多个设备主机的图形信息。Cacti初始状态有一个名为

Default的图形树,我们可以创建一棵新的图形树,将需要的图形添加进来。通过单击Graph Trees菜单打开图形树的设置界面,单击"Add"按钮可以添加新的图形树,提示输入Name

后单击"Create"按钮。进入图形树,单击"Add"按钮添加上一步操作中创建的图形。

Cacti监控服务器需要根据以上设置连接所有被监控的主机,通过SNMP收集数据信息并最终生成图形窗口,在Cacti软件包中已经自带了一个用于收集数据的PHP脚本,默认

Cacti系统需要每5分钟收集一个数据,管理员可以通过计划任务实现每五分钟执行该脚本,也可以手动执行该脚本立即同步数据

crontab -e

*/5 * * * * /usr/local/php5/bin/php /usr/local/apache2/htdocs/cacti/poller.php

Cacti除了基本的性能监控功能外,通过安装插件可以提供更多其他有用的特性。

 

posted @ 2017-06-02 19:07  王学勤  阅读(371)  评论(0)    收藏  举报