配置SNMP和MRTG
创始人
2024-07-25 00:21:28
0

  配置snmp mrtg

  版本:Ubuntu 10.04

  安装snmpd(server端) 和 snmp(工具如snmpwalk)

  编辑 vim /etc/default/snmpd

  1.   SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1' 
  2.  

  改成

  1.   SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid' 
  2.  

  这样就可以提供给外部接口调用,Ubuntu默认把snmp服务只对内服务

  编辑vim /etc/snmp/snmpd.conf(***先备份好原来的snmpd.conf文件)

  把默认的项全部注释掉(按照它默认的不知道为什么搞不成功)

  1.   #1  
  2.  
  3.   com2sec notConfigUser default public  
  4.  
  5.   #2  
  6.  
  7.   group notConfigGroup v1 notConfigUser  
  8.  
  9.   group notConfigGroup v2c notConfigUser  
  10.  
  11.   #3  
  12.  
  13.   view systemview included .1.3.6.1.2.1.1  
  14.  
  15.   view systemview included .1.3.6.1.2.1.25.1.1  
  16.  
  17.   view all included .1  
  18.  
  19.   #4  
  20.  
  21.   access notConfigGroup "" any noauth exact all none none  
  22.  
  23.   #下面这两个可以保留没影响  
  24.  
  25.   syslocation Unknown(mj) (configure /etc/snmp/snmpd.local.conf)  
  26.  
  27.   syscontact Root(mj) (configure /etc/snmp/snmpd.local.conf)  
  28.  
  29.   /etc/init.d/snmpd restart 重启snmp服务  
  30.  

  因为我们只关系cpu,内存等负载,所以不需要我们自己写脚本,snmp本身已经有这些功能,看后面常用OID

  1.   snmpwalk -v 1 -c public IP OID  
  2.  

  例子:

  1.   snmpwalk -v 1 -c public 192.168.22.210 .1.3.6.1.4.1.2021.4.6.0  
  2.  

  安装mrtg

  创建/var/www/mrtg网页目录

  编辑vim /etc/mrtg.cfg

  mrtg.cfg可以使用cfgmaker生成

  1.   cfgmaker --global "WorkDir: /var/www/mrtg"  
  2.  
  3.   --global "Options[_]: growright,bits"  
  4.  
  5.   --ifref=ip 
  6.  
  7.   --output /etc/mrtg.cfg  
  8.  
  9.   public@192.168.22.210  
  10.  
  11.   cfgmaker --global "WorkDir: /var/www/mrtg"  
  12.  
  13.   --global "Options[_]: growright,bits"  
  14.  
  15.   --ifref=ip 
  16.  
  17.   public@192.168.22.210  
  18.  

  我们把--output /etc/mrtg.cfg这个选项去掉,把结果直接输出到屏幕,如下

  **************************************************************

  1.   # Created by  
  2.  
  3.   # /usr/bin/cfgmaker --ifref=ip public@192.168.22.210  
  4.  
  5.   ### Global Config Options  
  6.  
  7.   # for UNIX  
  8.  
  9.   # WorkDir: /home/http/mrtg  
  10.  
  11.   # for Debian  
  12.  
  13.   WorkDir: /var/www/mrtg  
  14.  
  15.   # or for NT  
  16.  
  17.   # WorkDir: c:\mrtgdata  
  18.  
  19.   ### Global Defaults  
  20.  
  21.   # to get bits instead of bytes and graphs growing to the right  
  22.  
  23.   # Options[_]: growright, bits  
  24.  
  25.   EnableIPv6: no  
  26.  

  ######################################################################

  1.   # System: mj-desktop  
  2.  
  3.   # Description: Linux mj-desktop 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 22:02:19 UTC 2010 i686  
  4.  
  5.   # Contact: Root(mj) (configure /etc/snmp/snmpd.local.conf)  
  6.  
  7.   # Location: Unknown(mj) (configure /etc/snmp/snmpd.local.conf)  
  8.  

  ######################################################################

  1.   ### Interface 1 >> Descr: 'lo' | Name: 'lo' | Ip: '127.0.0.1' | Eth: '' ###  
  2.  
  3.   ### The following interface is commented out because:  
  4.  
  5.   ### * it is a Software Loopback interface  
  6.  
  7.   #  
  8.  
  9.   # Target[192.168.22.210_127.0.0.1]: /127.0.0.1:public@192.168.22.210:  
  10.  
  11.   # SetEnv[192.168.22.210_127.0.0.1]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="lo" 
  12.  
  13.   # MaxBytes[192.168.22.210_127.0.0.1]: 1250000  
  14.  
  15.   # Title[192.168.22.210_127.0.0.1]: Traffic Analysis for 127.0.0.1 -- mj-desktop  
  16.  
  17.   # PageTop[192.168.22.210_127.0.0.1]:  
  18.  
  19.   Traffic Analysis for 127.0.0.1 -- mj-desktop  
  20.  
  21.   #  
  22.  
  23.   #   #   # System:  # mj-desktop in Unknown(mj) (configure /etc/snmp/snmpd.local.conf)  #  
  24.  
  25.   #   # Maintainer:  # Root(mj) (configure /etc/snmp/snmpd.local.conf)  #  
  26.  
  27.   #   # Description:  # lo   #  
  28.  
  29.   #   # ifType:  # softwareLoopback (24)  #  
  30.  
  31.   #   # ifName:  # lo  #  
  32.  
  33.   #   # Max Speed:  # 1250.0 kBytes/s  #  
  34.  
  35.   #   # Ip:  # 127.0.0.1 (localhost)  #  
  36.  
  37.   #  
  38.  
  39.   #  
  40.  
  41.   ### Interface 2 >> Descr: 'eth0' | Name: 'eth0' | Ip: '192.168.22.210' | Eth: '08-00-27-f9-de-39' ###  
  42.  
  43.   Target[192.168.22.210_192.168.22.210]: /192.168.22.210:public@192.168.22.210:  
  44.  
  45.   SetEnv[192.168.22.210_192.168.22.210]: MRTG_INT_IP="192.168.22.210" MRTG_INT_DESCR="eth0" 
  46.  
  47.   MaxBytes[192.168.22.210_192.168.22.210]: 1250000  
  48.  
  49.   Title[192.168.22.210_192.168.22.210]: Traffic Analysis for 192.168.22.210 -- mj-desktop  
  50.  
  51.   PageTop[192.168.22.210_192.168.22.210]:  
  52.  
  53.   Traffic Analysis for 192.168.22.210 -- mj-desktop  
  54.  
  55.   System:  mj-desktop in Unknown(mj) (configure /etc/snmp/snmpd.local.conf)  
  56.  
  57.   Maintainer:  Root(mj) (configure /etc/snmp/snmpd.local.conf)  
  58.  
  59.   Description:  eth0  
  60.  
  61.   ifType:  ethernetCsmacd (6)  
  62.  
  63.   ifName:  eth0  
  64.  
  65.   Max Speed:  1250.0 kBytes/s  
  66.  
  67.   Ip:  192.168.22.210 (mj-desktop.local)  
  68.  

  **************************************************************

  上面产生的是针对192.168.22.210一台机的模板,我们把它保存成/etc/mrtg.conf,以此为模板慢慢建立起来

  这些网页代码前面要有tab,***按照输出copy进去不要修改

  #Options[_]: growright, bits 把注释去掉

  默认是只监控目标机的eth0网卡,loopback本地网卡监控是注释掉的,这个不用修改

  执行生成页面

  1.   indexmaker -output=/var/www/mrtg/index.html /etc/mrtg.cfg  
  2.  
  3.   env LANG=C /usr/bin/mrtg /etc/mrtg.cfg  
  4.  

  可以把env LANG=C /usr/bin/mrtg /etc/mrtg.cfg加入到crontab里面定时执行(每个5分钟执行一次)

  1.   */5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg.cfg  
  2.  

  ***访问http://localhost/mrtg/

  上面只是针对一台目标机器,我们可以继续上面的cfgmaker来产生再多一台目标机器,把结果输出到屏幕,然后在把对应的项添加到原有的mrtg.conf文件里面

  我们在监控网络流量的基础上添加其它应用

  (自己写脚本,数据不准确,仅供学习)

  1.   #建立一个内存使用情况  
  2.  
  3.   /home/mj/mem.sh  
  4.  
  5.   #!/bin/sh  
  6.  
  7.   total=`snmpwalk -v 1 -c public 192.168.22.210 .1.3.6.1.4.1.2021.4.5.0 | awk '{printf("%d\n",$4/1024);}'`  
  8.  
  9.   free=`snmpwalk -v 1 -c public 192.168.22.210 .1.3.6.1.4.1.2021.4.6.0 | awk '{printf("%d\n",$4/1024);}'`  
  10.  
  11.   echo $(($total-$free))  
  12.  
  13.   echo 0  
  14.  
  15.   Target[mem]: ` /home/mj/mem.sh `  
  16.  
  17.   MaxBytes[mem]: 1024  
  18.  
  19.   Title[mem]: Memory State of WY1 IP 192.168.22.210 Server  
  20.  
  21.   PageTop[mem]:  
  22.  
  23.   Memory State of WY1 IP 192.168.22.210 Server  
  24.  
  25.   ShortLegend[mem]: MB  
  26.  
  27.   kmg[mem]: MB  
  28.  
  29.   kilo[mem]: 1024  
  30.  
  31.   YLegend[mem]: Memory Usage  
  32.  
  33.   Options[mem]: growright,gauge,nopercent  
  34.  
  35.   #建立一个cpu使用情况  
  36.  
  37.   Target[cpu]: `snmpwalk -v 1 -c public 192.168.22.210 .1.3.6.1.4.1.2021.11.11.0 | awk '{printf("%d\n%d\n",100-$4,0);}'`  
  38.  
  39.   MaxBytes[cpu]: 100  
  40.  
  41.   Title[cpu]: CPU State of WY1 IP 192.168.22.210 Server  
  42.  
  43.   PageTop[cpu]:  
  44.  
  45.   CPU State of WY1 IP 192.168.13.103 Server  
  46.  
  47.   kmg[cpu]: %  
  48.  
  49.   YLegend[cpu]: CPU Usage  
  50.  
  51.   Options[cpu]: growright,gauge,nopercent  
  52.  

  这里有个地方要注意是,就是target里面的值必须是两行的,可以加上一个print 0上去,否则执行

  1.   env LANG=C /usr/bin/mrtg /etc/mrtg.cfg会返回  
  2.  
  3.   Expected a Number for 'out' but nothing'错误  
  4.  

  原因是

  1.   Your script must return at least two values on separate lines, just add  
  2.  
  3.   'echo "0"' or something to the end of the script.  
  4.  
  5.   http://oss.oetiker.ch/mrtg/nable-mrtg.en.html#nabble-td831392  
  6.  

  (下面是mrtg提供的sample)

  1.   #cpu  
  2.  
  3.   LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt  
  4.  
  5.   Target[185cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@121.9.243.185 + ssCpuRawSystem.0&ssCpuRawSystem.0:public@121.9.243.185 + ssCpuRawNice.0&ssCpuRawNice.0:public@121.9.243.185  
  6.  
  7.   RouterUptime[185cpu]: public@121.9.243.185  
  8.  
  9.   MaxBytes[185cpu]: 100  
  10.  
  11.   Title[185cpu]: CPU Load  
  12.  
  13.   PageTop[185cpu]:  
  14.  
  15.   Active CPU Load %  
  16.  
  17.   Unscaled[185cpu]: ymwd  
  18.  
  19.   ShortLegend[185cpu]: %  
  20.  
  21.   YLegend[185cpu]: CPU Utilization  
  22.  
  23.   Legend1[185cpu]: Active CPU in % (Load)  
  24.  
  25.   Legend2[185cpu]:  
  26.  
  27.   Legend3[185cpu]:  
  28.  
  29.   Legend4[185cpu]:  
  30.  
  31.   LegendI[185cpu]: Active  
  32.  
  33.   LegendO[185cpu]:  
  34.  
  35.   Options[185cpu]: growright,nopercent  
  36.  

  target是各个值加起来,要把它写成一行

  1.   #mem  
  2.  
  3.   LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt  
  4.  
  5.   Target[185mem]:(memTotalReal.0&memTotalReal.0:public@121.9.243.185 - memAvailReal.0&memAvailReal.0:public@121.9.243.185)*100/(memTotalReal.0&memTotalReal.0:public@121.9.243.185)  
  6.  
  7.   Title[185mem]: Percentage Used Memory  
  8.  
  9.   PageTop[185mem]:  
  10.  
  11.   Percentage Used Memory  
  12.  
  13.   options[185mem]: growright,gauge,transparent,nopercent  
  14.  
  15.   Unscaled[185mem]: ymwd  
  16.  
  17.   MaxBytes[185mem]: 100  
  18.  
  19.   YLegend[185mem]: Memory %  
  20.  
  21.   ShortLegend[185mem]: Percent  
  22.  
  23.   LegendI[185mem]: Used  
  24.  
  25.   LegendO[185mem]: Used  
  26.  
  27.   Legend1[185mem]: Percentage Used Memory  
  28.  
  29.   Legend2[185mem]: Percentage Used Memory  
  30.  

  ***上网查找mrtg的现成例子,如net,cpu,mem负载,tcp连接数等等,还有就是记得target里面的空格之类的多余符号可能会导致生成页面失败

【编辑推荐】

Linux下用mrtg监控网络设备端口流量

FreeBSD下安装MRTG监控流量

通过路由器利用MRTG进行网络监控

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...