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

[经验分享] linux系统基于cacti的监控和报警

[复制链接]

尚未签到

发表于 2019-1-12 10:01:13 | 显示全部楼层 |阅读模式
一、监控基础 snmp和rrdtool的编译安装和汉化  1、snmpd的安装简单,掠过
  提示:由于硬件防火墙原因,可能导致异地的udp包有问题
  提供下修改snmp端口的方法:
  snmpd tcp:端口或snmpd udp:端口
  也可以直接在linux修改:/etc/rc.d/init.d/snmpd
  例如更改为 tcp协议:100001端口
  如下:
  修改前
  OPTIONS="  -s -l /dev/null -P /var/run/snmpd -a"
  修改后
  OPTIONS=" tcp:100001 -s -l /dev/null -P /var/run/snmpd -a"
  然后
  /etc/rc.d/init.d/snmpd restart 就ok了
  2、rrdtool
  如果没有汉化的要求,最好安装rpm包。
  注意:安装时要一起安装,否则可能会出错:rpm -ivh perl-rrdtool-1.2.23-1.el5.rf.i386.rpm rrdtool-1.2.23-1.el5.rf.i386.rpm
  要求支持mbstring,mbstring需要libmbfl库,Cacti使用了pcre,所以在自己编译的时候,一定要加入--with-pcre-regex --with-mbstring  --with-libmbfl三项,都无需指定路径(切记).
  自己编译:
  cp /usr/local/server/libpng/lib/pkgconfig/libpng12.pc /usr/local/server/libpng/lib/pkgconfig/libpng.pc /usr/local/server/freetype/lib/pkgconfig/freetype2.pc /usr/local/server/fontconfig/lib/pkgconfig/fontconfig.pc /usr/lib/pkgconfig/
  3、cacti的安装和使用
  基础应用:
  解压到web目录下,
  执行   mysql -uroot -p cacti < cacti.sql
  vi include/config.php 更改数据库的连接信息
  建议新建一个用户newuser,把cacti下rrd和log目录权限给新用户,
  新建任务 crontab -u newuser -e
  添加下面这条  */5 * * * * /usr/local/server/php5/bin/php /usr/local/server/www/cacti/poller.php > /dev/null 2>&1
  到此,基础应用已经可以了。
  另外需要配置被监控主机的snmp 密码 等信息:
  vi /etc/snmp/snmpd.conf
  更改
  1、com2sec notConfigUser  default       public
  改为:com2sec notConfigUser   127.0.0.1(改成监控服务器的ip)       public(改成自己的密码)
  2、access  notConfigGroup ""      any       noauth    exact  systemview  none none
  改为:access  notConfigGroup ""      any       noauth    exact  all  none  none
  3、#view all    included  .1         80
  将前面的 # 注释 去掉。
  二、晋级应用
  1、监控windows主机:
  需要在windows上面安装snmp简单网络管理协议
  (1)、打开“控制面板”—“添加删除程序”—“添加删除组建”,在“管理和监视工具”中选中“简单网络管理协议(snmp)”,点击“下一步”,开始安装,在安装过程中需要i386文件
  (2)、打开“开始”—“程序”—“管理工具”—“服务”,找到“snmp service”,右键打开“属性”,选择“安全”,在“接受团体名称”处,点“添加”,在“团体名称”处写入你的cacti使用的community,选中“接受来自这些主机的snmp数据包”,默认值为“localhost”,点击“编辑”,将“localhost”改为cacti监控服务器的实际 ip地址
  2、监控linux主机
  需要修改net-snmp的配置文件:否则不能取到CPU和系统负载的数据
  Linux(RedHat)的配置
  打开默认的/etc/snmp/snmpd.conf文件,更改如下配置:
  (1)、查找以下字段:
  # sec.name source community
  com2sec notConfigUser default public
  将"comunity"字段改为你要设置的密码.比如"public".
  将“default”改为你想哪台机器可以看到你的snmp信息,如10.10.10.10。
  (2)、查找以下字段:
  # group context sec.model sec.level prefix read write notif
  access notConfigGroup "" any noauth exact all none none
  将"read"字段改为all.
  (3)、查找以下字段:
  ## incl/excl subtree mask
  #view all included .1 80
  将该行前面的"#"去掉.
  保存关闭.
  (4)、运行/etc/init.d/snmpd start命令运行snmpd.
  最后运行netstat -ln查看161端口是否打开了.
  3、FreeBSD
  如果使用port安装net-snmp,默认的配置文件应该是在/usr/local/share/snmp/snmpd.conf(没有默认的文件)。
  可以建立一个简单的配置文件,如:
  syslocation YourDefineName
  syscontact YourEmailAddress
  sysservices 77
  rocommunity public (请更改)
  load 12 12 12
  然后运行snmpd,netstat 看是否打开了161端口。
  4、监控squid服务器:
  (1).最开始,要让squid支持snmp。编辑squid.conf
  #vi /etc/squid/squid.conf
  acl CactiServer src 127.0.0.1 //写本机,因为要用net-snmp做代理
  acl SNMP snmp_community passwd
  snmp_port 3401
  snmp_access allow SNMP CactiServer
  snmp_access deny ALL
  #squid -k reconfigure
  重新载入配置
  使用netstat -tunlp |grep squid
  查看是否监听3401端口。
  测试一下squid的snmp是不是正常,要安装一个snmp的工具包
  #yum install -y net-snmp-utils
  #snmpwalk -v 1 -c passwd localhost:3401 .1.3.6.1.4.1.3495.1
  这个有数据出来才对,没有的话,检查上面的配置.
  (2).在snmpd.conf中代理squid的snmp
  #vim /etc/snmp/snmpd.conf
  添加以下行至snmpd.conf
  #proxy -v 1 -c passwd 127.0.0.1:3401 .1.3.6.1.4.1.3495.1
  测试一下.看看有没有数据
  #snmpwalk -v 1 -c passwd localhost:161 .1.3.6.1.4.1.3495.1
  (3).在cacti中导入别人写好的squid模板
  下载地址:http://forums.cacti.net/download.php?id=79
  1)把以下文件拷贝到此目录 /resource/snmp_queries:
  webcache_squid_core.xml
  webcache_squid_median.xml
  2)在Cacti的配置界面“Import Templates”中导入cacti_host_template_webcache_squid_server_snmp.xml
  (4).squid的所有信息都能画出图来。
  安装就完成了。
  1)在“Devices”选项中添加新主机,注意“Host Template”选择"squid sever"。就是导入进的那个.并注意填写以下内容:
  SNMP Community = passwd
  SNMP Version = 1
  SNMP Port = 3401
  2)在Cacti的"settings"里面, poller页的"Downed Host Detection"选择 Ping, 不要选择带有snmp字样的会出错.
  在你的设备主机的最下面会见到
  WebCache - Squid Statistics - Core (Verbose Query) Uptime Goes Backwards Success [1 Item, 1 Row]
  WebCache - Squid Statistics - Median Based (Verbose Query) Uptime Goes Backwards Success [3 Items, 3 Rows]
  注意:
  1.提示:"No SNMP data returned"
  可以尝试改变这个设置
  view systemview included .1.3.6.1.2.1.1
  为
  view systemview included .1.3.6.1.2.1
  2.Cacti不能生成图象.
  注意,主机设置中,一定是要活的。也就是讲icmp之类一定要能ping通.
  也可以尝试禁用掉存活检查。
  附:测试snmp抓取数据的方法:
  测试普通数据:
  snmpwalk -v 1 -c passwd  127.0.0.1:161 if
  snmpwalk -v 2c -c passwd  127.0.0.1:161 if
  测试squid数据:
  snmpwalk -v 1 -c passwd  127.0.0.1:3401 1.3.6.1.4.1.3495.1
  snmpwalk -v 2c -c passwd  127.0.0.1:3401 1.3.6.1.4.1.3495.1
  5、增加cacti插件的方法:为cacti系统安装Thold、Monitor等插件
  插件下载地址:http://cactiusers.org/downloads/
  注意下载时注意相应版本,版本不对会产生问题。
  monitor插件,提供更简略、直观的设备状态图示;
  thold插件,提供设备异常预警。
  安装thold、monitor插件:注意要先备份一下
  (1)、安装Plugin Architecture补丁,安装后,才能启用thold、monitor插件
  shell> tar zxvf cacti-plugin-arch.tar.gz -C /var/www/cacti
  shell> cd /var/www/cacti/
  shell> patch -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7a-PA-v2.1.diff
  shell> /opt/mysql/bin/mysql -u cactiuser -p cactidb < pa.sql
  (2)、安装thold、monitor插件
  shell> tar zxvf settings-0.5.tar.gz -C /var/www/cacti/plugins
  shell> tar zxvf thold-0.3.4.tar.gz -C /var/www/cacti/plugins
  shell> tar zxvf monitor-0.8.2.tar.gz -C /var/www/cacti/plugins
  shell> cd /var/www/cacti/plugins/
  shell> /opt/mysql/bin/mysql -u cactiuser -p cactidb < thold/thold.sql
  shell> /opt/mysql/bin/mysql -u cactiuser -p cactidb < monitor/monitor.sql
  (3)、修改config.php配置文件
  shell> vi /var/www/cacti/include/config.php
  $config['url_path'] = "/cacti/";  //改为cacti对应于web目录下的路径,本处为cacti
  $plugins = array();
  $plugins[] = thold;
  $plugins[] = monitor;
  (4)、刷新cacti系统的web管理界面,可以看到多出两个标签页(thold、monitor)。
  (5)、使用monitor插件
  1>打开“Console->Settings->Misc”,可以调整Monitor的各项配置。例如:勾选“Show Icon Legend”可以在监控页面显示图例;
  “View”可以选用Tiles类型,以显示设备状态表格。
  2>为cacti添加新设备时,勾选上“Monitor Host”项。对已添加的设备可以通过“Management->Devices”进去修改。
  3>单击Web页面上方的“monitor”标签链接,可以进入查看各设备/主机的状态图示。
  (6)、使用thold插件
  1>打开“Console->Settings->Mail/DNS”,可以调整“SMTP Options”和“DNS Options”等配置,用于确保预警邮件能够发出。
  2>打开“Console->Settings->Alerting/Thold”,可以调整Thold的各项配置。例如:“Dead Host Notifications Email”处可填写设备当机时发送警告信息到哪个邮箱;勾选“Send alerts as text”项,可以设置只发送文本格式的邮件。
  3>打开“Templates->Threshold Templates”,可以添加、取出需要关联到预警系统的模板,例如:可以添加和“Interface-Traffic”模板的关联,选择“traffic_in”、“traffic_out”数据项,分别设置警告阈值“High Threshold”(如200000000比特/秒);可以添加和“Unix-Disk Space”模板的关联……。
  4>打开“Create->New Graphs”,选择需要提供预警的设备,单击右侧上方的“Auto-create thresholds”创建预警项目。
  5>打开“Management->Thresholds”,可以管理已经创建的预警项目。
  6、cacti监控硬盘I/O的方法:
  cacti本身的模板只可以监控硬盘的使用大小,而不能监控使用百分率,所以我们可以自定义cdef来监控硬盘使用率,并借助thold插件实现报警功能。网上找的资料都是在cacti.0.8.6版上实现的,而我用的是cacti.0.8.7版。因此,根据实际情况做如下改动:
  在cacti目录下,vi global_arrays.php
  搜索custom_data_source_types,修改这一段如下:
  $custom_data_source_types = array(
  "CURRENT_DATA_SOURCE" => "Current Graph Item Data Source",
  "ALL_DATA_SOURCES_NODUPS" => "All Data Sources (Don't Include Duplicates)",
  "ALL_DATA_SOURCES_DUPS" => "All Data Sources (Include Duplicates)",
  "SIMILAR_DATA_SOURCES_NODUPS" => "All Similar Data Sources (Don't Include Duplicates)",
  "SIMILAR_DATA_SOURCES_DUPS" => "All Similar Data Sources (Include Duplicates)",
  "CURRENT_DS_MINIMUM_VALUE" => "Current Data Source Item: Minimum Value",
  "CURRENT_DS_MAXIMUM_VALUE" => "Current Data Source Item: Maximum Value",
  "CURRENT_GRAPH_MINIMUM_VALUE" => "Graph: Lower Limit",
  //添加以下两行
  "CURRENT_GRAPH_MAXIMUM_VALUE" => "Graph: Upper Limit",
  "VALUE_OF_HDD_TOTAL" => "Value of hdd_total data source");
  //中文版汉化为:
  "CURRENT_GRAPH_MAXIMUM_VALUE" => "图像: 上限",
  "VALUE_OF_HDD_TOTAL" => "所有硬盘数据的值");
  在cacti界面的Graph Management-cdefs新建cdef模块,名字自己起,添加字段如下:
  Item #1 Special Data Source: CURRENT_DATA_SOURCE
  Item #2 Custom String: 100
  Item #3 Operator: *
  Item #4 Special Data Source: VALUE_OF_HDD_TOTAL
  Item #5 Operator: /
  也就是说
  cdef=CURRENT_DATA_SOURCE,100,*,VALUE_OF_HDD_TOTAL,/
  这样就可以在Threshold Templates里面添加监控硬盘的模块了,我添加的是Host MIB - Hard Drive Space ,最后在Threshold CDEF里面选择刚自定义的cdef,这样就可以正常监控硬盘使用率了。
  官方论坛上有介绍,地址:http://forums.cacti.net/about8777-0-asc-0.html
  下面把使用方法摘录如下:
  1. Copy net-snmp_devio.xml to /resource/snmp_queries/net-snmp_devio.xml
  2. Import all *_templ.xml via Cacti "Import Templates" interface - These templates should include all their dependancies
  3. Add "ucd/net - Get Device I/O" Data Query to your SNMP Enabled host using the "Index Count Changed" Re-index Method.
  4. Create Graphs for your desired Disk and/or Memory devices.
  总体注意事项:
  1)、很重要的一点:在cacti的设备中一定要选择snmp的版本为>=2,否则会获取不到cpu和网卡等相关信息。
  2)、cacti自带的local视图内存监控单位是错误的,可以删掉重新创建,就会改正。
  3)、系统监控中,cpu图标的 200m这类数字,表示的是 万分之多少,我的理解cacti是为了方便显示画图。
  4)、权限问题:cacti_path/rra log目录的权限一定要给cacti的新用户,否则会出错:有图,但是没有数据。


运维网声明 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-662265-1-1.html 上篇帖子: Cacti的安装之CentOS 下篇帖子: Cacti 0.8.7a 中文版 (UTF-8)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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