一、工作原理

服务器监控Cacti

Cacti本身只是一个web界面的管理套件,通过调用Net-SNMP工具来采集检测数据,客户端必须支持SNMP协议。并结合RRDtoolRound Robin Database tool,轮询数据库工具)记录数据并绘制图片,最终,以Web页面的形式展示给管理员用户。

Cacti可以从逻辑上分为三个部分,第一部分:被检测的对象,也就是客户端。第二部分:检测平台,也就是服务器端。第三部分:管理平台。Cacti采用了两种结构实现功能,一种是C/S结构,主要是实现服务器到客户端监控;另外一种就是B/S,主要完成对Cacti平台的管理。

 

二、案例

 

环境拓扑:

服务器监控Cacti


1.服务器配置(主控端--Cacti

Cacti服务器端需要基于LAMP平台,这里事先已经搭建好了LAMP

1)安装net-snmp-utils软件包及相关依赖包

服务器监控Cacti

服务器监控Cacti

服务器监控Cacti


2)安装rrdtool软件包

服务器监控Cacti

通过YUM确认并安装相关的软件包


服务器监控Cacti

安装rrdtool源码包

 

3)部署Cacti,设置数据库连接

1)部署Cacti源码包

服务器监控Cacti

释放到web服务器的网页目录


服务器监控Cacti

添加一个用来读写监测数据的用户账号,并调整目录属主,以便正常读取及写入数据。

 

2)建立数据库、表结构

服务器监控Cacti

服务器监控Cacti

创建用于Cacti监测平台的数据库,并授权一个数据库用户(如cacti)。

注意:创建Cacti库时将默认的字符集编码指定为utf8,便于支持中文。


服务器监控Cacti

使用Cacti源码目录下的cacti.sql脚本,导入预设的各种数据表。

注意:导入预设库时,最好以之前授权的数据库用户cacti执行。

 

3)调整Cacti配置文件

服务器监控Cacti

服务器监控Cacti

Cacti的配置文件位于源码目录中的include/文件夹下,名称为config.php。要使Cacti系统能够正确访问并使用数据库,必须修改config.php文件,确保数据库连接参数正确无误。


4)Cacti的初始化安装

1)调整httpd配置

服务器监控Cacti

服务器监控Cacti

设置网站根目录


服务器监控Cacti

服务器监控Cacti

服务器监控Cacti

服务器监控Cacti

服务器监控Cacti

设置目录访问权限


服务器监控Cacti

第一默认首页为index.php


服务器监控Cacti

默认字符集为UTF-8


服务器监控Cacti

重启httpd服务


(2)初始化Cacti系统

在浏览器输入服务器的IP地址,初次访问会自动跳转到Cacti安装指南界面。

服务器监控Cacti


服务器监控Cacti


服务器监控Cacti


服务器监控Cacti

点击登录后,会让重新修改密码。

到此为止服务器配置完成了,下面开始配置一台linux客户端(mysql),然后使用cacti监控客户端。

 

到此为止服务器配置完成了,下面开始配置一台linux客户端(mysql192.168.1.2),然后使用cacti监控客户端。

 

2.客户端配置(被控段--snmpd

无论是交换机、路由器,还是LinuxWindows服务器,只要正确支持SNMP协议,并允许使用Cacti服务器采集数据,就能进行集中检测。

下面仅介绍在linux服务器中启用SNMP支持并设置共同体名的简单方法。

ps:共同体名,值的是一种验证机制,所有的client都必须使用同一个共同体名,就像我们之前学习的hsrp的组一样,只有组号相同才能是一个组的,这里也是如此,只有共同体名相同的时候,Cacti才能通过这个共同体名对client进行监控。

服务器监控Cacti

安装需要的软件


服务器监控Cacti

服务器监控Cacti

41行,192.168.0.10对应Cacti服务器的地址(默认为default),表示允许其查询本机数据,public 表示SNMP共同体名称,用来识别及验证。

 

服务器监控Cacti

62行,all表示开放所有的SNMP查询权限(默认是SystemView)。


服务器监控Cacti

85行,去掉开头的注释符号,以便支持各种查询访问。


服务器监控Cacti

启动snmpd服务


服务器监控Cacti

snmpd服务默认在UDP协议的161端口响应SNMP查询,所以添加防火墙例外。

 

2.使用CactiWeb控制台

1)添加被控端

1)添加被控端或主机

服务器监控Cacti


服务器监控Cacti


服务器监控Cacti


2)设置检测的项目

服务器监控Cacti

在本页面的下方,可以看到默认的检测项目。

服务器监控Cacti

添加完确认无误后,点击save按钮。


2)生成检测图像

1)创建图像

服务器监控Cacti

服务器监控Cacti

这里截取了一部分条目,确认无误后点击右下方的Create按钮,在出现的页面中再次点击Create按钮就完成了图像的创建。

 

(2)添加图像至监测树

被控端的各种检测图像在Cacti系统中以树形结构进行展示,因此对于新创建的图像对象,因将其添加到Graph Trees中。

服务器监控Cacti


服务器监控Cacti


服务器监控Cacti


服务器监控Cacti

“树项目”作为监测树的分支,包括三种不同类型:Host(主机)、Graph(图像)、Header(标头)。

最常用的是Host,它是以整个被控主机或设备作为树节点,自动包括所有监测图像,适合同时监测一个服务器的多个项目。

服务器监控Cacti


3)定期采集监测数据

服务器监控Cacti

Cacti系统通过poller.php页面来采集监测数据,需要使用PHP程序解释执行。


服务器监控Cacti

服务器监控Cacti

结合计划任务定期采集


4)查看监测结果

服务器监控Cacti

这里之前总是有图而无数据,执行以下命令,修改了文件权限,从而解决了问题。

服务器监控Cacti


5)安装percona-mysql-monitor插件

Cacti工具默认的模版只能监控机器的CPU、内存和磁盘等信息,如果要监控MySQL,下载监控MySQL的模板并安装。

1)解压缩软件到目标位置

服务器监控Cacti

将下载的模版源码文件解压


服务器监控Cacti

服务器监控Cacti

将监控MySQL的脚本复制到/var/www/html/cacti/scripts/目录下


服务器监控Cacti

一定要更换权限,否则web页面中不会出现监控的图像。


服务器监控Cacti

服务器监控Cacti

服务器监控Cacti

修改mysql的用户名和密码,以及cache_dir。(默认保存在/tmp目录下)

注意:上面mysql_user  mysql_pass 对应的是cacti能够访问所有被监控mysql的共同的用户和密码,并且该用户是在被监控mysql服务器上是授权用户。


服务器监控Cacti

新建目录


服务器监控Cacti

2)在客户机的mysql数据库中授权用户

服务器监控Cacti

配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有”process”权限。如果要监控InnoDB状态,还必须有”SUPER”权限。

 

服务器监控Cacti


3)为设备添加项目

Cacti管理界面中进行添加,点击Consose——Import Templates——选择文件,将模版的压缩目录解压到一个文件夹内,选择解压后的cacti\templat目录下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml,最后单击import导入。

服务器监控Cacti

选择完成后,点击右下角的import按钮导入。


(4)为主机添加监测项目

服务器监控Cacti

点击右下角save保存

 

(4)创建图像

服务器监控Cacti

服务器监控Cacti


服务器监控Cacti

现在已经可以看到监控MySQL的图像了