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

[经验分享] 服务器监控Cacti

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-8 08:55:09 | 显示全部楼层 |阅读模式
                      服务器监控Cacti
  简介  在企业网络运维过程中,管理员必须时刻关注服务器的运行状态,如CPU、内存、磁盘空间使用情况等。为了能够及时的发现问题,尽量减少故障的发生。当网络中的设备,服务器等数量较多时,可以部署一套监控系统来实时跟踪服务器,我们通常会借助一些软件来实现
  今天我们就以Cacti套件为例,介绍服务器集中监测体系的构建和使用
  一、Cacti基本监测体系概述  Cacti是一款使用PHP语言开发的性能与流量监测工具,监测的对象可以使linux或windows服务器也可以是路由交换等网络设备,主要是基于SNMP(Simple Network Management Protocol 简单网络管理协议)来搜集CPU、占用、内存使用、运行进程数以及磁盘使用空间、网卡流量等各种数据。说白了就是监控服务器状态。
  实际上Cacti本身只是一个Web界面的管理套件,通过调用Net-SNMP工具来采集检测数据 并结合RRDtool(Round Robin Database tool 轮询数据库工具)记录数据并绘制图片。如图1所示
   wKiom1ZliC2y0-BhAABDxIQiu4o772.jpg
  图1
  Cacti提供了优秀的整合和协调能力,充分利用LAMP技术平台、SNMP协议工具以及RRDtool数据引擎、不仅配置简单、直观、而且支持插件和数据模板,使用时非常整洁,便于扩展。
  实际上Cacti可以从逻辑上分为三个部分、第一部分:被检测的对象,也就是客户端。第二部分:检测平台,也就是服务器端。第三部分:管理平台。Cacti采用了两种结构实现功能,一种是C/S结构主要是实现服务器到客户端监控另外一种就是B/S主要完成对Cacti平台的管理。从图1我们可以看出,管理端是在Web上对Cacti进行管理。
  简单的整理一下Cacti的工作过程。
  首先通过LAMP平台部署Cacti监控工具,之后通过客户端的web登录Cacti进行多其他客户端的设置,可以从图1看到Cacti采集数据时必须要使用SNMP协议来连接客户端进而能够采集数据吗,也就是说客户端必须支持SNMP协议。监控之后通过RRDtool来生成图表,其实这个图表是静态的,经过频繁的数据采集,我们也可以认为是动态的,也就是说Cacti是基于某段时间的监控。
  二、服务器配置(控制端——client)  实验拓扑   wKioL1ZliJ3ysmmvAAAO_BDSH4k013.jpg    
           主机
         
           操作系统
         
           IP地址
         
           主要软件
         
           centos1
         
           CentOS 6.5 x86_64
         
           192.168.1.1
         
           Cacti-0.8.8b.tar.gz
            Rrdtool-1.4.8.tar.gz
         
           centos2
         
           CentOS 6.5 x86_64
         
           192.168.1.102
         
           Mysql.5.5.tar.gz
         
   构建Cacti集中监测平台的服务器端时,应提前安装好LAMP或者是LNMP平台,以及Net-SNMP和RRDtool等软件支持,然后下载Cacti源码包
  1、安装Net-SNMP、RRDtool软件支持  (1)构建数据库及Web平台  前面已经学习过了如何部署源码包的LAMP或LNMP平台,为了方便演示这里直接以RPM包的LAMP平台为基础搭建Cacti。所需安装包如下所述。若还提示缺少一些包请在以YUM的方式进行安装即可。
  [iyunv@centos1 ~]# yum -y install httpd
  [iyunv@centos1 ~]# yum -y install mysql mysql-server mysql-devel
  [iyunv@centos1 ~]# yum -y install zlib freetype libjpeg fontconfig gd libxml2 libxml2-devel php-gd //安装PHP需要的库文件
  [iyunv@centos1 ~]# yum -y install php php-mysql
  [iyunv@centos1 ~]# service httpd start
  [iyunv@centos1 ~]# chkconfig httpd on
  [iyunv@centos1 ~]# service mysqld start
  [iyunv@centos1 ~]# chkconfig mysqld on
  [iyunv@centos1 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  [iyunv@centos1 ~]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
  [iyunv@centos1 ~]# mysqladmin -u root -p password '123.abc'
  Enter password:
  服务启动之后我们可以编写测试页来验证LAMP平台的协同工作
  [iyunv@centos1 ~]# vim /var/www/html/test.php
  <?php
  $link=mysql_connect('localhost','root','123.abc');
  if ($link) echo "mysql connect is ok!!";
  mysql_close();
  phpinfo();
  ?>
  之后在客户端进行访问
   wKiom1ZliDGhs-KnAACbDwsrh6c869.jpg
  图2
  经过测试LAMP平台已经能够完全的结合在一起并运行。
  (2)安装net-snmp-utils软件包  Cacti平台通过SNMP协议采集检测数据,这些工具由net-snmp-utils软件包提供,所需安装的软件包如下所示。
  [iyunv@centos1 ~]# yum -y install net-snmp net-snmp-utils
  (3)安装rrdtool软件包  n 下载rrdtool软件到/root目录下
  n 通过YUM确认并安装相关软件包
  [iyunv@centos1 ~]# yum -y install cairo-devel zlib libxml2 libxml2-devel glib2 glib2-devel libpng libpng-devel freetype freetype-devel libart_lgpl pango pango-devel perl-CPAN
  如果提示需要其他软件包,在另行安装。
  n 安装rddtool源码包
  [iyunv@centos1 ~]# tar zxf rrdtool-1.4.8.tar.gz
  [iyunv@centos1 ~]# cd rrdtool-1.4.8
  [iyunv@centos1 rrdtool-1.4.8]# ./configure --prefix=/usr/local/ && make && make install
  2、部署Cacti、设置数据库连接  (1)部署Cacti源码包  下载到root目录下
  将下载的源码包解压到root下并移动到网页文档根目录下改名为cacti
  [iyunv@centos1~]#wget \
  > http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
  [iyunv@centos1 ~]# tar zxf cacti-0.8.8b.tar.gz
  [iyunv@centos1 ~]# mv cacti-0.8.8b /var/www/html/cacti
  添加一个用户,用来读写检测数据的用户账户(如cacti),并调整期目录的属主,以便正常读取以及写入数据
  [iyunv@centos1 ~]# useradd cacti
  [iyunv@centos1 ~]# chown cacti:cacti -R /var/www/html/cacti/
  (2)建立数据库,表结构  先创建一个用于cacti检测平台的数据库,并授权一个用户cactiuser然后使用cacti源码目录下的cacti.sql脚本,导入预设的各种数据表
  [iyunv@centos1 ~]# mysql -u root -p123.abc
  mysql> create database cacti default character set utf8;
  mysql> grant all on cacti.* to cactiuser@'localhost' identified by '123.abc';
  [iyunv@centos1 cacti]# mysql -u cactiuser -p cacti < cacti.sql
  Enter password: //输入密码
  [iyunv@centos1 cacti]# mysql -u root -p123.abc
  mysql> use cacti;
  mysql> show tables; //验证是否导入表到cacti库中
  上诉操作中,创建Cacti库时,指定默认的编码字符集为utf8,便于中文支持,导入预设库时最好是使用cactiuser导入。最后验证一下是否导入。
  (3)调整cacti配置文件  cacti的配置文件位于源码目录下的include/目录下,名称为config.php,要使Cacti系统能够正常访问并使用数据库,必须修改config.php文件,却保数据库连接参数正确。
  [iyunv@centos1 cacti]# vim include/config.php
  $database_type = "mysql"; //指定连接的类型
  $database_default = "cacti"; //连接的库
  $database_hostname = "localhost"; //登录源
  $database_username = "cactiuser";//用户名
  $database_password = "123.abc";//用户密码
  $database_port = "3306"; //连接的端口
  $database_ssl = false; //不启用ssl
  $url_path = "/"; //指定cacti的根目录,这个目录是cacti的文件目录下,我们后面还需要修改httpd的主配置文件。
  3、Cacti的初始化安装  (1)调整httpd配置  修改httpd的主配置文件,设置好网页文档根目录、自动索引页
  [iyunv@centos1 cacti]# vim /etc/httpd/conf/httpd.conf
  DocumentRoot "/var/www/html/cacti" //292行
  <Directory "/var/www/html/cacti"> //317行
  Options Indexes none //331行
  AllowOverride None //338行
  Order allow,deny //343行
  Allow from all //344行
  </Directory> //346行
  DirectoryIndex index.php index.html index.html.var //402行
  AddDefaultCharset UTF-8 //759行
  [iyunv@centos1 cacti]# service httpd restart
  (2)初始化Cacti系统  在游览器中访问Cacti服务器的Web服务,如http://192.168.1.1,除此访问时会自动跳转至安装指南界面如图3所示
   wKiom1ZliDLCExqcAABdCj8L5BA241.jpg
  图4
  以上就是安装界面,内容是一些欢迎信息,直接点击下一步继续
   wKioL1ZliKLwN7dpAABPA28w3rU111.jpg
  图5
  选择新的安装,点击Next继续
   wKiom1ZliDbh0lhIAADI40c_Ggc524.jpg
  图6
  以上信息必须全部都为绿色,如果出现红色,请检查相关步骤。点击Finish完成安装
   wKiom1ZliDfBiEAUAABKcSRM1Hc214.jpg
  图7
  只要看到了这个登录界面,那么我们今天的Cacti就部署完成了,默认的用户名和密码都是admin,首次登录之后需要修改密码。个人建议先不要进行登录,先进行一下操作,之后在进行登录。
  三、客户端的配置  无论是路由器、交换机、还是linux或windows服务器,只要正确支持SNMP协议,并允许Client服务器采集数据,就能够对其进行监测。下面仅介绍在linux服务器中启用SNMP支持并设置共同体名的简单方法
  ps:共同体名,值的是一种验证机制,所有的client都必须使用同一个共同体名,就像我们之前学习的hsrp的组一样,只有组号相同才能是一个组的,这里也是如此,只有共同体名相同的时候,Cacti才能通过这个共同体名对client进行监控。
  需要安装net-snmp、lm_sensors软件包,然后通过修改其配置文件/etc/snmp/snmpd.conf,并启动snmpd服务,并建立规则,默认监听UDP的161号端口。
  [iyunv@centos2 ~]# yum -y install net-snmp lm_sensors
  [iyunv@centos2 ~]# vim /etc/snmp/snmpd.conf
  com2sec notConfigUser 192.168.1.1 public //41行
  access notConfigGroup "" any noauth exact all none none //62行
  view all included .1 80 //85行
  第41行 192.168.1.1指的是Cacti的服务器IP(默认是default),表示允许其查询本机数据,public指的就是共同体名,用来识别及验证
  第62行 all表示开放所有的SNMP查询权限(默认是 SystemView)
  第85行 去掉注释之后,以便支持各种查询。
  [iyunv@centos2 ~]# service snmpd restart
  [iyunv@centos2 ~]# iptables -I INPUT -p udp --dport 161 -j ACCEPT
  四、使用Cacti的Web控制台  配置好Cacti的主控端、被控端之后,就可以设置集中监测任务了。下面讲学习在Cacti系统的Web控制台的基本操作,以及如何通过添加插件来扩展集中监测功能。
  在游览器中访问Cacti系统,如http://192.168.1.1,输入用户和密码,即可登录到Web控制台界面
   wKiom1ZliDnwUnYTAABa7oOd-_A762.jpg
  图8
  密码修改完成点击save保存,之后就能进入到管理界面。
   wKiom1ZliDriAHYpAABNx-2AU-s013.jpg
  图9
  Cacti的管理界面是纯英文的界面,刚开始使用起来有点难度,反复的操作几遍之后相当简单。
  1、添加被控端  (1)添加被控设备或主机  点击导航栏中“Management”下的"Devices"链接,在右上角有一个add链接,可以打开添加设备的界面
   wKioL1ZliKqCogENAABX273vqJA652.jpg
  图10
   wKiom1ZliD2wVqObAACUM1pHKyk570.jpg
  图11
  以上就是添加了被检测的设备,之后点击下拉链条,向下拉。,点击右下角的create创建。
  (2)设置要检测的项目  成功链接之后会看到"Save Successful"的提示信息,页面下方也可以看到默认监控的项目如图12所示
   wKiom1ZliD-xeC2eAABJfZQBXOY786.jpg
  图12
  我们一般在默认的情况下在添加一些监控项目,如图13所示
   wKiom1ZliEDzeLjOAABelDSdL_Q730.jpg
  图13
  想要添加一些项目首先需要确定要添加的项目①,之后点击右侧的add②,就可以添加成功了,最后点击右下角的save进行保存。
  2、生成检测图像  在Cacti管理控制台设置好被控端忠厚,需要为每个监控项目生成直观的图像,然后再将图像添加到检测树、以便集中查看
  (1)创建图像  点击导航栏的Create下的“Nwe Graphs”连接,进入图像创建页面后,选择被监控的主机或设备,并选择其中最需要的图像条目图图13所示,最后点击下方的“Create按钮”再出现页面之后在次点击create按钮完成图像的创建
   wKiom1ZliEODtOGWAACGAbsdoew901.jpg
  图13
   wKiom1ZliESTR7v2AABj-Krmz88101.jpg
  图14
  (2)添加图像到检测树  被监控的各种图像在Cacti系统中以树形结构展示,因此对于新创建的图像对象,应该将其添加到“Graph Trees”中,以方便用户分类查看。单击导航栏中“Mangaement”下的“Graph Trees”链接,在点击“Default Tree”可以对默认的图像检测树进行管理,如图15所示
   wKioL1ZliLWiCaxnAABagtfug-M398.jpg
  图15
  默认只存在本机的127.0.0.1,所以需要添加其他设备,点击右上角的add
   wKioL1ZliLahIEcwAABaIYKDHyM120.jpg
  图16
  将树的类型设置为host表名这是一台主机,点击右下角的create就可以添加完成了,之后点击最上面的导航Graphs
  3、定期采集数据
  Cacti系统通过poller.php页面来采集检测数据,需要使用php程序解释执行。为了获得持续稳定的数据,应结合计划任务定期来执行,如没5分钟执行一次(默认Cacti每5分钟刷新间隔)
  [iyunv@centos1 cacti]# /usr/bin/php /var/www/html/cacti/poller.php
  执行完成之后,会出现很多的提示信息,如图17所示,一般情况下是指时区不正确,他建议你将时区改为亚洲的重庆
   wKiom1ZliEmSRjj4AAAjPCEZeSs901.jpg
  图17
  由于是php报的错误,所以我们通过php.ini这个主配置文件解决这个问题
  [iyunv@centos1 cacti]# vim /etc/php.ini
  date.timezone = Asia/Chongqing //946行去掉注释
  [iyunv@centos1 cacti]# crontab -e
  */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php
   wKioL1ZliLnTZliLAABfGTgk2Js721.jpg
  图18
  以上全部部署完成之后,就可以看到这张图片,那么恭喜你,已经完成了整个的Cacti的监控系统,但是由于默认存在的监控项目实在是少的可怜,所以我们还需要从官网下砸其他监控项目,这里我们称之为添加插件。我们以添加mysql为例
  五、安装pecrona-mysql-monitor插件  1、下载插件  (1)安装插件  插件可以在http://www.percona.com/下载
  [iyunv@centos1 cacti]# cd
  [iyunv@centos1 ~]# tar zxf percona-monitoring-plugins-1.1.4.tar.gz
  [iyunv@centos1 ~]# cd percona-monitoring-plugins-1.1.4/cacti/scripts/
  [iyunv@centos1scripts]#cp ss_get_mysql_stats.php /var/www/html/cacti/scripts/
  (2)在mysql数据库授权用户  [iyunv@centos2 ~]# mysql -u root -p123.abc
  mysql> grant process , super on *.* to cactiuser@'192.168.1.1' identified by 'cactiuser';
  [iyunv@centos2 ~]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
  (3)为设备添加项目  在Cacti管理界面中进行添加,一次进入Consose——Import Templates——选择文件
  将win7下的压缩目录解压到一个文件夹内,选择解压后的cacti\templat目录下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml然后点击import按钮导入到Cacti如图19
   wKioL1ZliLuQQqcMAABRZhDcTTY110.jpg
  图19
    wKiom1ZliE-DSog_AABmLN6MHz4438.jpg
  图20 导入后的情况
  之后就可以添加检测项目了。
   wKioL1ZliL_C4rn5AABb6zPlWoA159.jpg
  图21
  之后也是一样生成图表
   wKiom1ZliFOy5eb-AACIyEh87YE194.jpg
  图22
   wKiom1ZliFWxjoJhAABQxJ2ECYc214.jpg
  图23
  (4)验证  图24
  以上结果,就是最后的验证,如果没有出现上图结果时,不要着急,请将这个添加的管理设备删除之后,在重新添加一回就可以了
   wKiom1ZliFayLW5CAABz-M7OmU0187.jpg
  图25
  之后重新进行检测
  [iyunv@centos1 scripts]# /usr/bin/php /var/www/html/cacti/poller.php
  再次查看就可以看到结果了。
                   


运维网声明 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-148232-1-1.html 上篇帖子: cacti插件安装 下篇帖子: 当Cacti出现snmp error时 服务器 监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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