设为首页 收藏本站
查看: 798|回复: 0

[经验分享] 服务器Cacti部署监控系统

[复制链接]

尚未签到

发表于 2019-1-9 10:39:39 | 显示全部楼层 |阅读模式
  在企业网络运维过程中,管理员必须时刻关注服务器的运行状态,如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进行管理。

  简单的整理一下Cacti的工作过程。
  首先通过LAMP平台部署Cacti监控工具,之后通过管理端的浏览器登录Cacti进行对其他客户端的设置,可以从上图看到Cacti采集数据时必须要使用SNMP协议来连接客户端进而能够采集数据,也就是说客户端必须支持SNMP协议,监控之后通过RRDtool来生成图表。
  案例:构建Cacti监测系统
  实验环境:公司的网关、网站、数据库等多台服务器均采用RHEL6.5系统,要求构建Cacti监测系统。以便管理员更快速、便捷的了解各服务器的状态,及时发现和解决潜在的问题,如下图所示:

  描述需求:
  (1)通过Cacti集中监测网关、网站、数据库等服务器

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

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# yum -y install mysql mysql-server mysql-devel
[root@localhost ~]# yum -y install zlib freetype libjpeg fontconfig gd libxml2 php-gd
[root@localhost ~]# yum -y install php php-mysql
[root@localhost ~]# service httpd start
[root@localhost ~]# service mysqld start
[root@localhost ~]# vim /var/www/html/index.php
  测试LAMP平台是否工作正常,如果出现下面的页面,说明配置成功。

  (2)安装Net-SNMP、RRDtool等软件支持
  Cacti平台通过snmp协议采集检测数据,这些工具程序由net-snmp-utils软件包提供,Rrdtool软件包主要用于数据记录和图表绘制。
[root@localhost ~]# yum -y install net-snmp net-snmp-utils
[root@localhost ~]# service snmpd start   
[root@localhost ~]# chkconfig snmpd on
[root@localhost ~]# 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
[root@localhost ~]# tar zxf rrdtool-1.4.8.tar.gz
[root@localhost ~]# cd rrdtool-1.4.8
[root@localhost rrdtool-1.4.8]# ./configure --prefix=/usr/local/rrdtool
[root@localhost rrdtool-1.4.8]# make && make install  (3)安装Cacti源码包,设置数据库连接
[root@localhost ~]# tar zxf cacti-0.8.8b.tar.gz
[root@localhost ~]# mv cacti-0.8.8b/ /var/www/html/cacti
[root@localhost ~]# useradd cacti
[root@localhost ~]# chown -R cacti:cacti /var/www/html/cacti/
[root@localhost ~]# 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
[root@localhost ~]# cd /var/www/html/cacti/       //导入预设库
[root@localhost cacti]# mysql -u cacti -pcacti cacti < cacti.sql
[root@localhost cacti]# 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的初始化安装
[root@localhost ~]# 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行
DirectoryIndex  index.php index.html          //402行,第一默认首页为index.php
AddDefaultCharset UTF-8                       //757行
[root@localhost ~]# service httpd restart   
[root@localhost ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# 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号端口。
[root@localhost ~]# yum -y install net-snmp lm_sensors
[root@localhost ~]# vim /etc/snmp/snmpd.conf
com2sec notConfigUser  192.168.4.254       public   //41行
access  notConfigGroup &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行:去掉注释之后,以便支持各种查询。
[root@localhost ~]# service snmpd start
[root@localhost ~]# iptables -I INPUT -p udp --dport 161 -j ACCEPT  3. 在网管工作站
  (1)在浏览器中访问Cacti服务器的Web服务,初次访问将会自动跳转到Cacti安装指南界面,根据提示,即可进入Web管理界面。





  (2)添加被控设备/主机,设置监控项目
  单击导航栏中的“management(管理)”下的“devices(设备)”,可以管理被控设备或主机。点击devices---Add


  (2)生成监测图像
  创建图像

  添加图像到监测树



  (3)定期采集监测数据
[root@localhost ~]# vim /etc/php.ini
date.timezone = Asia/Chongqing      //946行去掉注释
[root@localhost ~]# /usr/bin/php /var/www/html/cacti/poller.php    //执行首次数据采集
[root@localhost ~]# 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)解压缩软件到目标位置
[root@localhost ~]# tar zxf percona-monitoring-plugins-1.1.4.tar.gz
[root@localhost ~]# cd percona-monitoring-plugins-1.1.4/cacti/scripts
[root@localhost scripts]# cp ss_get_mysql_stats.php /var/www/html/cacti/scripts/  2)在mysql数据库授权用户
[root@localhost ~]# mysql -u root -p
mysql> grant process , super on *.* to cactiuser@'192.168.4.254' identified by 'cactiuser';
[root@localhost ~]# 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导入。

  导入后的情况如下图所示:

  4)添加模板

  5)创建图像

  6)重新采集(或者等5分钟之后)
[root@localhost scripts]# /usr/bin/php /var/www/html/cacti/poller.php  7)查看监测结果





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-661125-1-1.html 上篇帖子: Cnetos 7 搭建cacti 下篇帖子: cacti邮件报警
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表