xxggmmxx 发表于 2019-1-9 10:39:39

服务器Cacti部署监控系统

  在企业网络运维过程中,管理员必须时刻关注服务器的运行状态,如CPU、内存、磁盘空间使用情况等。为了能够及时的发现问题,尽量减少故障的发生。当网络中的设备,服务器等数量较多时,可以部署一套监控系统来实时跟踪服务器,我们通常会借助一些软件来实现。本篇博客以Cacti套件为例,介绍服务器集中监测体系的构建和使用。

  Cacti简介
  Cacti是一款使用PHP语言开发的性能与流量监测工具,与Windows操作系统中的“性能监视器”属于同一类,都是为了监控CPU占用,内存使用,运行进程数,磁盘空间,网卡流量等各种数据。但不同的是,Cacti不仅可以监控Linux,也可以监控Windows服务器,路由器,交换机等网络设备,主要基于SNMP协议来搜集数据。Cacti本身是一个web界面的软件,通过调用Net-SNMP工具来采集检测数据,并结合RRDtool(轮询数据库工具)记录数据并绘制图片,最终以Web页面展示给管理员用户。Cacti需要运行在LAMP平台上,配置简单,直观,而且支持插件和数据模板,可扩展其功能。
  1. 工作原理
  Cacti可以从逻辑上分为三个部分、第一部分:被监测的对象,也就是客户端。第二部分:监测平台,也就是服务器端。第三部分:管理平台。Cacti采用了两种结构实现功能,一种是C/S结构,主要是实现服务器到客户端监控;另外一种就是B/S结构,主要完成对Cacti平台的管理,从下图我们可以看出,管理端是在Web上对Cacti进行管理。
http://s1.运维网.com/images/20180309/1520585094388732.png
  简单的整理一下Cacti的工作过程。
  首先通过LAMP平台部署Cacti监控工具,之后通过管理端的浏览器登录Cacti进行对其他客户端的设置,可以从上图看到Cacti采集数据时必须要使用SNMP协议来连接客户端进而能够采集数据,也就是说客户端必须支持SNMP协议,监控之后通过RRDtool来生成图表。
  案例:构建Cacti监测系统
  实验环境:公司的网关、网站、数据库等多台服务器均采用RHEL6.5系统,要求构建Cacti监测系统。以便管理员更快速、便捷的了解各服务器的状态,及时发现和解决潜在的问题,如下图所示:
http://s1.运维网.com/images/20180309/1520586155176213.png
  描述需求:
  (1)通过Cacti集中监测网关、网站、数据库等服务器

  (2)能在网管工作站中使用浏览器查看监测数据
  (3)监测的信息包括CPU占用、内存使用、网卡流量、根分区使用情况
  配置步骤如下:
  1. 配置Cacti集中监测平台
  (1)搭建LAMP平台

# yum -y install httpd
# yum -y install mysql mysql-server mysql-devel
# yum -y install zlib freetype libjpeg fontconfig gd libxml2 php-gd
# yum -y install php php-mysql
# service httpd start
# service mysqld start
# vim /var/www/html/index.php
  测试LAMP平台是否工作正常,如果出现下面的页面,说明配置成功。
http://s1.运维网.com/images/20180309/1520588792516745.png
  (2)安装Net-SNMP、RRDtool等软件支持
  Cacti平台通过snmp协议采集检测数据,这些工具程序由net-snmp-utils软件包提供,Rrdtool软件包主要用于数据记录和图表绘制。
# yum -y install net-snmp net-snmp-utils
# service snmpd start   
# chkconfig snmpd on
# yum -y install cairo-devel zlib libxml2 libxml2-devel glib2 glib2-devel \
> libpng libpng-devel freetype freetype-devel libart_lgpl pango pango-devel perl perl-devel perl-CPAN
# tar zxf rrdtool-1.4.8.tar.gz
# cd rrdtool-1.4.8
# ./configure --prefix=/usr/local/rrdtool
# make && make install  (3)安装Cacti源码包,设置数据库连接
# tar zxf cacti-0.8.8b.tar.gz
# mv cacti-0.8.8b/ /var/www/html/cacti
# useradd cacti
# chown -R cacti:cacti /var/www/html/cacti/
# mysql -u root
mysql> create database cacti default character set utf8;
Query OK, 1 row affected (0.01 sec)         //建立数据库
mysql> grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti';
Query OK, 0 rows affected (0.04 sec)      //授权一个数据库用户
mysql> exit
Bye
# cd /var/www/html/cacti/       //导入预设库
# mysql -u cacti -pcacti cacti < cacti.sql
# vim include/config.php    //调整Cacti配置文件
$database_type = &quot;mysql&quot;;                //数据库类型
$database_default = &quot;cacti&quot;;             //数据库名称
$database_hostname = &quot;localhost&quot;;      //数据库服务器地址
$database_username = &quot;cacti&quot;;            //授权用户
$database_password = &quot;cacti&quot;;            //授权密码
$database_port = &quot;3306&quot;;               //数据库服务的端口
$database_ssl = false;                   //不启用ssl
$url_path = &quot;/&quot;;                         //指定cacti的根目录  (4)Cacti的初始化安装
# vim /etc/httpd/conf/httpd.conf   //修改httpd配置
DocumentRoot &quot;/var/www/html/cacti&quot;            //292行,指定网站根目录
             //317行,设置目录访问权限
    Options Indexes none                      //331行
    AllowOverride None                        //338行
    Order allow,deny                        //343行
    Allow from all                            //344行
DirectoryIndexindex.php index.html          //402行,第一默认首页为index.php
AddDefaultCharset UTF-8                     //757行
# service httpd restart   
# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT2. 配置客户端(监测对象)
    无论是路由器、交换机、还是Linux或Windows服务器,只要正确支持SNMP协议,并允许Client服务器采集数据,就能够对其进行监测。下面仅介绍在linux服务器中启用SNMP支持并设置共同体名(识别及验证字串)的简单方法。
PS:共同体名,指的是一种验证机制,所有的Client都必须使用同一个共同体名,只有共同体名相同的时候,Cacti才能通过这个共同体名对Client进行监控。
   需要安装net-snmp、lm_sensors软件包,然后通过修改其配置文件/etc/snmp/snmpd.conf,并启动snmpd服务,并建立规则,默认监听UDP的161号端口。
# yum -y install net-snmp lm_sensors
# vim /etc/snmp/snmpd.conf
com2sec notConfigUser192.168.4.254       public   //41行
accessnotConfigGroup &quot;&quot;      any       noauth    exact all none none   //62行                                                                                                            //62行
view all    included.1               80                         //85行
第41行:192.168.4.254指的是Cacti的服务器IP(默认是default),表示允许其查询本机数据,public指的就是共同体名,用来识别及验证
第62行:all表示开放所有的SNMP查询权限(默认是 SystemView)
第85行:去掉注释之后,以便支持各种查询。
# service snmpd start
# iptables -I INPUT -p udp --dport 161 -j ACCEPT  3. 在网管工作站
  (1)在浏览器中访问Cacti服务器的Web服务,初次访问将会自动跳转到Cacti安装指南界面,根据提示,即可进入Web管理界面。
http://s1.运维网.com/images/20180309/1520601262775138.png
http://s1.运维网.com/images/20180309/1520601787504258.png
http://s1.运维网.com/images/20180309/1520601804432148.png
http://s1.运维网.com/images/20180309/1520602131286019.png
http://s1.运维网.com/images/20180309/1520602213540092.png
  (2)添加被控设备/主机,设置监控项目
  单击导航栏中的“management(管理)”下的“devices(设备)”,可以管理被控设备或主机。点击devices---Add
http://s1.运维网.com/images/20180309/1520603040730920.png
http://s1.运维网.com/images/20180309/1520604210632432.png
  (2)生成监测图像
  创建图像
http://s1.运维网.com/images/20180309/1520604662177852.png
  添加图像到监测树
http://s1.运维网.com/images/20180309/1520604669913808.png
http://s1.运维网.com/images/20180309/1520604849213117.png
http://s1.运维网.com/images/20180309/1520604951557237.png
  (3)定期采集监测数据
# vim /etc/php.ini
date.timezone = Asia/Chongqing      //946行去掉注释
# /usr/bin/php /var/www/html/cacti/poller.php    //执行首次数据采集
# crontab -u cacti -e      //每5分钟,执行一次
*/5 * * * * /usr/bin/php /var/www/html/poller.php > /dev/null  (4)查看监测结果
  单击cacti管理控制台左上方的graphs标签,然后展开左侧的default tree树,选择被控主机后即可看到各监测图像。
  (5)安装percona-mysql-monitor插件
  Cacti工具默认的模板只能监控机器的cpu,内存和磁盘等信息,如果想要监控mysql,就需要安装插件,操作如下
  1)解压缩软件到目标位置
# tar zxf percona-monitoring-plugins-1.1.4.tar.gz
# cd percona-monitoring-plugins-1.1.4/cacti/scripts
# cp ss_get_mysql_stats.php /var/www/html/cacti/scripts/  2)在mysql数据库授权用户
# mysql -u root -p
mysql> grant process , super on *.* to cactiuser@'192.168.4.254' identified by 'cactiuser';
# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT  3)为设备添加项目
  在Cacti管理界面中进行添加,点击Consose——Import Templates——选择文件,选择解压后的cacti\templat目录下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml,最后单击import导入。
http://i2.运维网.com/images/blog/201802/04/01c483c75b446871170914adb61c821b.png
  导入后的情况如下图所示:
http://i2.运维网.com/images/blog/201802/04/cdea35b1e9d5fe9bc8294f4d9b85ecd9.png
  4)添加模板
http://s1.运维网.com/images/20180316/1521175026680758.png
  5)创建图像
http://s1.运维网.com/images/20180316/1521175108905111.png
  6)重新采集(或者等5分钟之后)
# /usr/bin/php /var/www/html/cacti/poller.php  7)查看监测结果
http://s1.运维网.com/images/20180316/1521175380563367.png



页: [1]
查看完整版本: 服务器Cacti部署监控系统