防伪码:即使没有辉煌的未来、如果能有无悔的往昔。
第九章 CentOS上配置Cacti监控MySQL
前言:在企业网络运维过程中,管理员必须随时关注服务器和网络的运行状况、以便及时发现问题,尽可能减少故障的发生。当网络中的设备、服务器等数量较多时,为了更加方便、快捷的获得各种监控信息,通常会借助于一些集中检测软件。本章将以著名的Cacti套件为例,介绍服务器集中监控体系的构建和使用。
一、Cacti官方简介:
1、Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的Snmp流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
2、Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
3、Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
4、snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
5、工作原理,如下图所示:
二、服务器配置(主控端-Cacti)
1、安装Net-SNMP、RRDtool等支持软件
1)构建数据库及web平台(不再详细编译安装,直接yum安装并配置LAMP平台)
配置防火墙策略并修改mysql密码:
2)测试LAMP平台
编写一个php测试页,Vim /var/www/html/test.php,内容如下:
在浏览器上访问,如果出现下面的页面,说明配置成功。
3) 安装net-snmp-utils软件包
Cacti平台通过snmp协议采集检测数据,这些工具程序由net-snmp-utils软件包提供,所需安装的软件及依赖包如下所示:
1) 安装rrdtool软件包(Rrdtool软件包主要用于数据记录和图表绘制。)
首先安装依赖包:
安装rddtool源码包:
2、部署cacti,设置数据库连接
1)部署cacti源码包(将下载的cacti源码包释放到web服务器的网页目录)
添加一个用来读写检测数据的用户账户,并调整目录的属主,以便正常读取及写入数据。
2) 建立数据库,表结构(创建用于cacti监测平台的数据库,并授权一个数据库用户cacti,然后使用cacti源码目录下的cacti.sql脚本,导入预设的各种数据表)
验证数据库是否导入:
3) 调整cacti配置文件
3、 cacti的安装
1) 调整httpd配置(设置好网站根目录、自动索引页、默认字符集等相关参数,然后重载httpd服务)
行号,注释截图如下:
1) 初始化cacti系统
在浏览器中输入192.168.1.1,根据提示进行安装
到此为止服务器配置完成了,下面开始配置一台linux客户端(mysql192.168.1.2),然后使用cacti监控客户端。
三、 配置客户端(被控端snmpd)
实现思路如下:
A、无论是路由器、交换机、还是linux或windows服务器,只要正确支持SNMP协议,并允许Client服务器采集数据,就能够对其进行监测。
B、下面仅介绍在linux服务器中启用SNMP支持并设置共同体名的简单方法。
C、ps:共同体名,值的是一种验证机制,所有的client都必须使用同一个共同体名,就像我们之前学习的hsrp的组一样,只有组号相同才能是一个组的,这里也是如此,只有共同体名相同的时候,Cacti才能通过这个共同体名对client进行监控。
D、需要安装net-snmp、lm_sensors软件包,然后通过修改其配置文件/etc/snmp/snmpd.conf,并启动snmpd服务,并建立规则,默认监听UDP的161号端口。
修改第41行:192.168.1.1指的是Cacti的服务器IP(默认是default),表示允许其查询本机数据,
public指的就是共同体名,用来识别及验证
修改第62行 : all表示开放所有的SNMP查询权限(默认是 SystemView)
修改第85行: 去掉注释之后,以便支持各种查询。
开启服务,配置防火墙策略
四、 使用cacti的web控制台
实现步骤:
A、登录Web控制台
B、添加被控设备/主机,设置监控项目
C、生成监测图像
D、定期采集监测数据
E、查看监测结果
1、 登录web控制台
在浏览器中输入192.168.1.1
2、添加被控设备/主机,设置监控项目
1)单击导航栏中的“management(管理)”下的“devices(设备)”,可以管理被控设备或主机。点击devices---Add
修改五个地方,如下图
然后单击右下角的“create”创建,将自动连接目标执行snmp查询
2) 设置要监测的项目
成功连接被控端后会看到save successful提示,如下图:
添加项的时候选择页面右侧的add,完成之后点击右下方的save按钮保存
3、 生成检测图像
1) 创建图像
单击导航栏中create下的new graphs(图表),选择被控端,选中最需要的图像条目,最后单击下方的create按钮完成创建。
2) 添加图像至监测树
单击导航栏中的management下的graph trees,在单击default tree就可以对默认的图像监测树进行管理。
单击右侧的add,可以向监测树种添加“树项目”,完成之后点击create,并点击save保存。
4、 定期采集监测数据
Cacti系统通过poller.php页面采集监测数据,可以结合计划任务定期采集(默认的刷新间隔是5分钟)
/usr/bin/php /var/www/html/cacti/poller.php
注意:
1、如果有时候采集不到数据,可以刷新缓存,并添加参数--force强制采集
2、执行完成之后,会出现很多的提示信息,一般情况下是指时区不正确,
由于是php报错,因此我们修改php的主配文件(946行)来解决。建议将时区改为Asia/Chongqing。
5、 查看监测结果
单击cacti管理控制台左上方的graphs标签,然后展开左侧的default tree树,选择被控主机后即可看到各监测图像。
以上是我截取的一些图表,可以参考。
五、 安装percona-mysql-monitor插件
Cacti工具默认的模板只能监控机器的cpu,内存和磁盘等信息,如果想要监控mysql,就需要安装插件,操作如下。
1)解压缩软件到目标位置
2)在mysql数据库授权用户,并配置防火墙策略
3)为设备添加项目
在Cacti管理界面中进行添加,点击Consose——Import Templates——选择文件,将宿主机下的压缩目录解压到一个文件夹内,
选择解压后的cacti\templat目录下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml,
最后单击import导入。
4) 根据需求添加模板
5) 创建图像
6)重新采集,或者默认等5分钟
7) 查看监测结果
总结:在实际工作中,我们可以根据需求,灵活运用Cacti,使自己的工作更方便快捷。
谢谢观看,真心的希望能帮到您。我是“一盏烛光”!