一、工作原理
Cacti本身只是一个web界面的管理套件,通过调用Net-SNMP工具来采集检测数据,客户端必须支持SNMP协议。并结合RRDtool(Round Robin Database tool,轮询数据库工具)记录数据并绘制图片,最终,以Web页面的形式展示给管理员用户。
Cacti可以从逻辑上分为三个部分,第一部分:被检测的对象,也就是客户端。第二部分:检测平台,也就是服务器端。第三部分:管理平台。Cacti采用了两种结构实现功能,一种是C/S结构,主要是实现服务器到客户端监控;另外一种就是B/S,主要完成对Cacti平台的管理。
二、案例
环境拓扑:
1.服务器配置(主控端--Cacti)
Cacti服务器端需要基于LAMP平台,这里事先已经搭建好了LAMP。
1)安装net-snmp-utils软件包及相关依赖包
2)安装rrdtool软件包
通过YUM确认并安装相关的软件包
安装rrdtool源码包
3)部署Cacti,设置数据库连接
(1)部署Cacti源码包
释放到web服务器的网页目录
添加一个用来读写监测数据的用户账号,并调整目录属主,以便正常读取及写入数据。
(2)建立数据库、表结构
创建用于Cacti监测平台的数据库,并授权一个数据库用户(如cacti)。
注意:创建Cacti库时将默认的字符集编码指定为utf8,便于支持中文。
使用Cacti源码目录下的cacti.sql脚本,导入预设的各种数据表。
注意:导入预设库时,最好以之前授权的数据库用户cacti执行。
(3)调整Cacti配置文件
Cacti的配置文件位于源码目录中的include/文件夹下,名称为config.php。要使Cacti系统能够正确访问并使用数据库,必须修改config.php文件,确保数据库连接参数正确无误。
4)Cacti的初始化安装
(1)调整httpd配置
设置网站根目录
设置目录访问权限
第一默认首页为index.php
默认字符集为UTF-8
重启httpd服务
(2)初始化Cacti系统
在浏览器输入服务器的IP地址,初次访问会自动跳转到Cacti安装指南界面。
点击登录后,会让重新修改密码。
到此为止服务器配置完成了,下面开始配置一台linux客户端(mysql),然后使用cacti监控客户端。
到此为止服务器配置完成了,下面开始配置一台linux客户端(mysql主192.168.1.2),然后使用cacti监控客户端。
2.客户端配置(被控段--snmpd)
无论是交换机、路由器,还是Linux或Windows服务器,只要正确支持SNMP协议,并允许使用Cacti服务器采集数据,就能进行集中检测。
下面仅介绍在linux服务器中启用SNMP支持并设置共同体名的简单方法。
ps:共同体名,值的是一种验证机制,所有的client都必须使用同一个共同体名,就像我们之前学习的hsrp的组一样,只有组号相同才能是一个组的,这里也是如此,只有共同体名相同的时候,Cacti才能通过这个共同体名对client进行监控。
安装需要的软件
41行,192.168.0.10对应Cacti服务器的地址(默认为default),表示允许其查询本机数据,public 表示SNMP共同体名称,用来识别及验证。
62行,all表示开放所有的SNMP查询权限(默认是SystemView)。
85行,去掉开头的注释符号,以便支持各种查询访问。
启动snmpd服务
snmpd服务默认在UDP协议的161端口响应SNMP查询,所以添加防火墙例外。
2.使用Cacti的Web控制台
1)添加被控端
(1)添加被控端或主机
(2)设置检测的项目
在本页面的下方,可以看到默认的检测项目。
添加完确认无误后,点击”save”按钮。
2)生成检测图像
(1)创建图像
这里截取了一部分条目,确认无误后点击右下方的”Create”按钮,在出现的页面中再次点击”Create”按钮就完成了图像的创建。
(2)添加图像至监测树
被控端的各种检测图像在Cacti系统中以树形结构进行展示,因此对于新创建的图像对象,因将其添加到”Graph Trees”中。
“树项目”作为监测树的分支,包括三种不同类型:Host(主机)、Graph(图像)、Header(标头)。
最常用的是Host,它是以整个被控主机或设备作为树节点,自动包括所有监测图像,适合同时监测一个服务器的多个项目。
3)定期采集监测数据
Cacti系统通过poller.php页面来采集监测数据,需要使用PHP程序解释执行。
结合计划任务定期采集
4)查看监测结果
这里之前总是有图而无数据,执行以下命令,修改了文件权限,从而解决了问题。
5)安装percona-mysql-monitor插件
Cacti工具默认的模版只能监控机器的CPU、内存和磁盘等信息,如果要监控MySQL,下载监控MySQL的模板并安装。
(1)解压缩软件到目标位置
将下载的模版源码文件解压
将监控MySQL的脚本复制到/var/www/html/cacti/scripts/目录下
一定要更换权限,否则web页面中不会出现监控的图像。
修改mysql的用户名和密码,以及cache_dir。(默认保存在/tmp目录下)
注意:上面mysql_user mysql_pass 对应的是cacti能够访问所有被监控mysql的共同的用户和密码,并且该用户是在被监控mysql服务器上是授权用户。
新建目录
(2)在客户机的mysql数据库中授权用户
配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有”process”权限。如果要监控InnoDB状态,还必须有”SUPER”权限。
(3)为设备添加项目
在Cacti管理界面中进行添加,点击Consose——Import Templates——选择文件,将模版的压缩目录解压到一个文件夹内,选择解压后的cacti\templat目录下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml,最后单击import导入。
选择完成后,点击右下角的”import”按钮导入。
(4)为主机添加监测项目
点击右下角”save”保存
(4)创建图像
现在已经可以看到监控MySQL的图像了