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

[经验分享] Cacti监控系统预实施文档

[复制链接]
YunVN网友  发表于 2019-1-10 13:44:26 |阅读模式
  Cacti监控系统预实施文档 1.0 by zhxiaom5
  QQ:450104579
  (一) 软件安装环境及相关版本说明
  1. 所采用的实验环境为:Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux;CentOS release 5.5 (Final)
  2. 所采用的lamp环境都是使用yum直接安装,具体的版本如下:Server version: Apache/2.2.3;PHP 5.1.6 (cli) (built: Jun 27 2012 12:21:16) Zend Engine v2.1.0, Copyright (c) ;1998-2006 Zend Technologies;Server version: 5.0.95 Source distribution
  3. 所采用的rrdtool版本为:rrdtool-1.4.7-1.el5.wrl.i386.rpm
  4. 其他的依赖包或者相关软件,都是采用yum进行安装。
  (二) LAMP环境安装
  1. 安装前防火墙准备(不一定是为了lamp而准备):
  A. 关闭iptables
  #service iptables stop
  B.关闭SELinux
  #vi /etc/selinux/config
  将文件中的SELINUX="" 为 disabled ,然后重启。
  如果不想重启系统,使用命令setenforce 0
  注:
  setenforce 1 设置SELinux 成为enforcing模式
  setenforce 0 设置SELinux 成为permissive模式
  在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux
  小注:
  ----------------------------------------------------------------------------------------------
  查看selinux状态:
  /usr/bin/setstatus -v
  如下:
  SELinux status: enabled
  SELinuxfs mount: /selinux
  Current mode: permissive
  Mode from config file: enforcing
  Policy version: 21
  Policy from config file: targeted
  getenforce/setenforce查看和设置SELinux的当前工作模式
  2. 系统的时区准备:
  A. 同步网络时间:ntpdate us.pool.ntp.org 。
  B. 修改时区:cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  3. yum安装lamp和相关依赖包:
  4. yum -y install mysql mysql-server mysql-devel httpd php php-mysql zlib freetype libjpeg fontconfig gd libxml2 php-gd rrdtool net-snmp net-snmp-utils
  service httpd start
  service mysqld start
  chkconfig httpd on
  chkconfig mysqld on
  service snmpd start
  chkconfig snmpd on
  (三) cacti的安装以及初步调整
  1. 安装rrdtool:到rrdtool的官网下载rpm包,进行安装
  rpm -ivh rrdtool-1.4.7-1.el5.wrl.i386.rpm --nodeps --force
  启动rrdtool服务并且加入启动列表
  service rrdcached start
  chkconfig rrdcached on
  2. ①下载
  #wget www.cacti.net/downloads/cacti-0.8.8a.tar.gz
  ②配置
  解压并放到apache文档目录(/var/www/html)
  #tar -xf cacti-0.8.8a.tar.gz
  #mv cacti-0.8.8a /var/www/html/cacti
  编辑CentOS cacti配置文件,连接MySQL服务的用户名,密码,端口等。
  #cd /var/www/html
  #vi cacti/include/config.php
  $database_type = “mysql”;
  $database_default = “cacti”;
  $database_hostname = “localhost”;
  $database_username = “cacti”;
  $database_password = “cacti”;
  $database_port = “3306″;
  ③添加计划任务(使cacti每5分钟获得一次数据)
  添加一个cacti的用户并添加cron任务:
  #useradd cacti
  #su cacti
  #crontab -e
  */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
  必须以cacti用户进行,如果以root用户进行,则无法实现
  ④更改属组
  把cacti网站目录所属组改为cacti
  #su root
  #chgrp -R cacti /var/www/html/cacti
  #chown -R cacti /var/www/html/cacti/rra
  #chown -R cacti /var/www/html/cacti/log
  #chown -R cacti /var/www/html/cacti/poller.php
  3. 数据库配置
  ①创建cacti数据库
  #mysql
  msyql>create database cacti;
  ②导入cacti.sql
  #mysql -u root -p cacti < /var/www/html/cacti/cacti.sql
  有密码的输入密码,没密码的直接回车
  ③应用
  mysql> use cacti
  mysql> grant all on cacti.* to cacti@localhost identified by ‘cacti’;
  mysql> flush privileges;
  mysql> exit
  4. web登陆cacti
  ①http://ip/cacti
  (这里如果出现“403 forbidden”的错误,请把selinux关闭)
  打开网页—>next—>选择new install,使用一路回车法.完成
  的用户名为: admin 密码为: admin (初次登陆成功会提示更改密码)
  (四) cacti的优化
  1. 使用spine取代cmd.php加快速度:
  从添加device好到设备up,spine只需要不到一分钟,而cmd等的时间较长,超过10分钟。 当设备down后 2分钟之内spine可以发出alert,而cmd可能需要10分钟以上。
  A.从cacti网站下载spine源码包
  wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8a.tar.gz
  B.解压到本地目录,编译安装
  安装spine需要有net-snmp-devel、mysql、mysql-devel、openssl-devel支持,
  请查看下是否已经安装。
  使用以下命令来编译安装:
  tar xvzf cacti-spine-0.8.8a.tar.gz
  cd cacti-spine-0.8.8a
  ./configure
  make
  make install
  默认安装在/usr/local/spine/目录下。
  C.复制一份spine的配置文件。
  cd /usr/local/spine/etc/
  cp spine.conf.dist spine.conf
  编辑spine.conf文件,设置Cacti数据的连接信息。
  DB_Host localhost # 主机地址
  DB_Database cacti # 数据库
  DB_User cacti # 数据库用户
  DB_Pass cacti # 数据库连接密码
  DB_Port 3306 # 数据库连接端口
  D.设置Spine
  a)以admin用户登录到Cacti。
  b)从目录菜单中选择设置&quot;Settings&quot;,选择&quot;Paths&quot;选项卡。
  c)在&quot;Spine Poller File Path&quot;中输入Spine可执行程序的完整路径,
  对我来说是/usr/local/spine/bin/spine,保存设置。
  d)选择&quot;Poller&quot;选项卡。
  e)在&quot;Poller Type&quot;下拉框设置中,选择&quot;spine&quot;。
  同时设置spine的Maximum Threads per Process, Number of PHP Script Servers, Script and Script Server Timeout Value几个参数。
  通常会把Maximum Threads per Process设置成cpu * 2。在这里,我们设置成8.
  完成这些设置后,Cacti将会每5分钟执行一次Spine,来代替原来的cmd.php。
  如果使用spine的过程中有任何问题,你可以随时将&quot;Poller Type&quot;切换回&quot;cmd.php&quot;
  E.修改crontab任务
  crontab -u cacti -e
  */1 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
  F. 更新rebuild rrd cache
  进入cli 目录执行
  php -q rebuild_poller_cache.php –d
  --------------------------------------------------以下没有经过试验------------------------------------------
  2、进程调整
  对于进程和线程的调整有利于缩短采集时间,可以进行大量的采集。在CU论坛上看有人说cacti能够同时采集1k服务,这样的性能没有测试过,但是有人测试过同时采集200台服务器的,占用的内容只有几百兆,cpu的利用率也很低,说明一台的普通的机器排除网络链路延时采集的性能是相当强悍的
  Settings -> Poller -> &quot;Maximum Concurrent Poller Processes&quot;(最大并发轮询器进程),修改该值
  Settings -> Poller -> &quot;Maximum Threads per Process&quot;(每进程最大线程数),修改该值
  Settings -> Poller -> &quot;Number of PHP Script Servers&quot;(PHP脚本服务程序数),修改该值
  通过修改这三个参数,可以提高一部分的性能
  3、增加php 的内存使用的上限值
  # vi /etc/php.ini
  memory_limit = 256M (预设是128MB,根据内存的使用情况,可以改大一点)
  4、定期 optimize cacti 数据库
  cacti 的 poller_output 会不明原因的长大,大到数据越写越慢,直到无法更新。每隔一段时间手动 “Truncate poller_output table” 后,就会继续正常运作;所以我们可以利用crontab定期清除数据
  #vi /etc/cron.d/truncate_poller
  0 0 * * 0 root /usr/local/mysql/bin/mysql --user=cacti --password=2010 cacti -e ‘truncate table poller_output;’
  #chkconfig --level 3 crond on && service crond start
  5、修改mysql的最大连接数
  一般默认安装的时候没有调整最大连接数的话,当需要并发量的时候可以出图就会断断续续的
  mysql> set GLOBAL max_connections=200000;
  或者直接修改my.cnf配置文件,增加:max_connections = 200000;
  ---------------------------------------------------------------------------------------------------------------------------
  (五) 编辑cacti脚本批量增加网络设备或者主机
  在实际生产中,所要监控的设备成百上千,为了方便添加主机和图像,采用cacti内部提供的函数进行脚本化添加,减轻工作量。
  1. 脚本中所使用和函数查询方法(常用的命令已经给出)
  php add_device.php --list-snmp-queries  查看设备类型   
php add_device.php --list-host-templates 查看主机模版     
php add_device.php  --list-graph-templates  查看图形模版     
php add_device.php --list-communities 查看共同体名     
php add_device.php --list-snmp-fields   --host-id=405 查看主机snmp类型     
php add_device.php   --list-trees #查看树的id     
php add_device.php --list-hosts #  查看存在主机     
php -q add_tree.php --list-trees #查看树的ID
  小注:最根本的方法还是到cacti的cli目录下,使用php add_device.php –help,类似这个样子,会列出详细的使用方法
  2. 自己编写的脚本示例
  #!/bin/bash
  #by 张孝明
  #cacti批量加监控
  #读取IP列表
  host_ips=`cat ips.txt`
  cd /var/www/html/cacti/cli
  for host_ip in $host_ips
  do
  #添加cacti设备
  php add_device.php --description=&quot;$host_ip&quot; --ip=&quot;$host_ip&quot; --template=1 --version=2 --community=&quot;jurassic&quot;
  #读取设备ID
  host_ids=`php add_graphs.php --list-hosts | grep $host_ip | awk -F &quot; &quot; '{print $1}'`
  #创建模板图像
  php add_graphs.php --host-id=&quot;$host_ids&quot; --graph-type=cg --graph-template-id=25
  php add_graphs.php --host-id=&quot;$host_ids&quot; --graph-type=cg --graph-template-id=35
  #创建端口流量图像
  php add_graphs.php --host-id=&quot;$host_ids&quot; --graph-type=ds --graph-template-id=25 --snmp-query-id=1 --snmp-query-type-id=16 --snmp-field=ifDescr --snmp-value=&quot;GigabitEthernet 0/49
  &quot;
  php add_graphs.php --host-id=&quot;$host_ids&quot; --graph-type=ds --graph-template-id=25 --snmp-query-id=1 --snmp-query-type-id=16 --snmp-field=ifDescr --sn
  mp-value=&quot;GigabitEthernet 0/50
  &quot;
  #创建锐捷交换机cpu图像
  php add_graphs.php --host-id=&quot;$host_ids&quot; --graph-type=cg --graph-temp
  late-id=35
  #添加设备到相应的组
  php add_tree.php --host-id=&quot;$host_ids&quot; --type=node --node-type=host --
  tree-id=2
  done
  (六) cacti插件的安装和使用
  我们常用的插件有:
  settings :用于邮件报警
  monitor:以图片的方式显示设备状态
  threshold/thold: 用于设备异常预警,阀值报警
  syslog:日志管理
  weathermap:网络状况示意图绘画
  1. 插件的安装
  前四个插件直接从cacti官网下载,解压,放置到plugins目录下,注意权限,然后开启就可以了。重点是weathermap插件,它的安装也是下载解压,放到目录下,但是注意它所需求的权限是web服务器为运行者,所以web服务器的执行者必须有执行权限。可以设置为全部777.

  2. 插件的使用
  启用采取console-->configuration_pluginsMangement-->actions
  A. setting插件使用
  在console选项卡下,点击左侧菜单中的Settings链接,在右侧出现的web页中点击Misc选项卡来配置Monitor插件。

  以下所看到的是Monitor选项卡下所监控的机器状态。当有机器Down掉后,相应机器图标将由绿色变成红色,并发出声音进行报警。

  B.Threshold插件的使用
  下图是添加Threshold插件和Monitor插件后的cacti界面:

  选中console选项卡,在左侧菜单中点击Settings,然后点击Alerting/Thold选项卡,来设置Threshold插件。

  设置完成后在console选项卡下左侧菜单中点击Threshold Templates 。

  点击Add按钮来添加一个Threshold模板。

  在此,以添加一个监控硬盘空间的Threshold模板为例。

  在Data Field下拉框中选择hdd_free,然后点击go按钮。

  填写以下信息,在Low Threshold文本框中填入1000,意思是当剩余的硬盘空间小于1000M时,发送邮件报警。在Threshold CDEF下拉框选择Divide by 1024,填入警报邮箱,完成Threshold模板的添加。

  应用刚才创建的Threshold模板。在console选项卡下点击Devices,选择要应用此模板的Host,点击最上面的Create Graphs for this Host链接,然后点击Auto-create thresholds链接来应用刚创建的Threshold模板。
  设置完成后在console选项卡下左侧菜单中点击Thresholds 。

  在此可以管理已创建的警报。
  C.weathermap的使用和其他插件的使用参考《Cacti插件使用文档
  》

  点击threshld选项卡可以查看警报的触发情况。





运维网声明 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-661701-1-1.html 上篇帖子: centos 6.3 下cacti 安装详解 下篇帖子: Cacti服务器监控的安装及配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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