一、工作原理

服务器监控Cacti_第1张图片

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

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

 

二、案例

 

环境拓扑:

服务器监控Cacti_第2张图片


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

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

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

wKioL1imoBmwRTvIAAACkYYOmD4018.png

wKiom1imoBqhnZQOAAACKgeLon8086.png

wKioL1imoBrhFuWrAAACDMyMsNU355.png


2)安装rrdtool软件包

wKioL1imoBrzT2BIAAAHRAUoCxQ275.png

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


wKiom1imoBvQ86PDAAAI7YeZeks708.png

安装rrdtool源码包

 

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

1)部署Cacti源码包

wKioL1imoBuAto5dAAAHNrskJfk490.png

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


wKiom1imoBuygd0iAAAEBDvLW7c660.png

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

 

2)建立数据库、表结构

wKiom1imoBzB46AGAAAC5siMyYc662.png

wKioL1imoBzTBt-2AAAJWb1N7oM041.png

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

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


wKioL1imoByydjTmAAADcOxgGOM738.png

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

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

 

3)调整Cacti配置文件

wKioL1imoPvwEEg0AAAEunP8h_Y550.png

服务器监控Cacti_第3张图片

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


4)Cacti的初始化安装

1)调整httpd配置

wKioL1imoPziA8TKAAACp_bHQBU985.png

wKiom1imoPzQaEXHAAACKhEPT3U299.png

设置网站根目录


wKioL1imoPzDlZ3BAAACLt11N-M270.png

wKiom1imoP3RjVirAAABW0Z3PMc708.png

wKioL1imoP3S6KrdAAABYBGtmTw708.png

wKiom1imoP3wm6ytAAAB91BH630016.png

wKioL1imoP3h8alQAAABOZDluKs539.png

设置目录访问权限


wKioL1imoP6BxqcAAAAELn_Xh1k443.png

第一默认首页为index.php


wKiom1imoVriPYaVAAABn0hzz8s196.png

默认字符集为UTF-8


wKiom1imoVrw6Mk7AAAGn5Nv_wE455.png

重启httpd服务


(2)初始化Cacti系统

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

服务器监控Cacti_第4张图片


服务器监控Cacti_第5张图片


服务器监控Cacti_第6张图片


服务器监控Cacti_第7张图片

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

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

 

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

 

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

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

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

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

wKiom1imoVyQucfJAAACm7Fi428536.png

安装需要的软件


wKiom1imoV3ifIZGAAACMxx5SWk083.png

wKioL1imoV3iOlGtAAACXOW5ucw989.png

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

 

wKiom1imod7g379QAAAChz_LQBc048.png

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


wKioL1imod7gSfnZAAABnIYtTTo398.png

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


wKiom1imod-BOZwfAAADPTktDXU886.png

启动snmpd服务


wKioL1imod-iFSeBAAAGsRW0FOo162.png

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

 

2.使用CactiWeb控制台

1)添加被控端

1)添加被控端或主机

服务器监控Cacti_第8张图片


服务器监控Cacti_第9张图片


服务器监控Cacti_第10张图片


2)设置检测的项目

服务器监控Cacti_第11张图片

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

服务器监控Cacti_第12张图片

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


2)生成检测图像

1)创建图像

服务器监控Cacti_第13张图片

服务器监控Cacti_第14张图片

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

 

(2)添加图像至监测树

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

服务器监控Cacti_第15张图片


服务器监控Cacti_第16张图片


服务器监控Cacti_第17张图片


服务器监控Cacti_第18张图片

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

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

服务器监控Cacti_第19张图片


3)定期采集监测数据

wKioL1imot6jRdrhAAADhwrxmsE121.png

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


wKioL1imot-x9cYfAAAB8mr0b0s244.png

wKiom1imouDz8r0FAAADsDmPtbA700.png

结合计划任务定期采集


4)查看监测结果

服务器监控Cacti_第20张图片

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

wKioL1imo66BeRUhAAACw3ZzVgg227.png


5)安装percona-mysql-monitor插件

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

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

wKiom1imo66DaqlWAAAEJgxeOqE314.png

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


wKioL1imo66gHooNAAAEGDHu1bM173.png

wKiom1imo6-Qs3MqAAAD6CvBqnQ095.png

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


wKiom1impIPC5QF3AAACGUvnqqg408.png

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


wKioL1impM7S06YgAAAC5z151ac424.png

wKiom1impOWy2ZdoAAADjrpsYRE636.png

wKiom1impPrQtOV2AAACj3AWiCw634.png

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

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


wKiom1impVmAQMxqAAAB2OHiLWQ367.png

新建目录


wKioL1impVmQxm_qAAACP8N3Z2c721.png

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

wKioL1imo6_jlWaUAAAF0IWXhd8597.png

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

 

wKiom1imo6_TVrApAAADGFVX2Ro589.png


3)为设备添加项目

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

服务器监控Cacti_第21张图片

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


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

服务器监控Cacti_第22张图片

点击右下角save保存

 

(4)创建图像

服务器监控Cacti_第23张图片

服务器监控Cacti_第24张图片


服务器监控Cacti_第25张图片

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