使用MRTG画图进行监控

运维 系统运维
使用MRTG画图进行监控:MRTG是一个监控网络链路流量负载的工具软件,通过snmp协议得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML 文档方式显示给用户,本文讲述的是使用MRTG画图进行监控

  使用MRTG画图进行监控

  MRTG介绍

  MRTG通常认为是一个性能监控工具,有着很长的使用历史,很多网管都使用它来对系统进行监控。实际上,它真正的作用是一个画图工具。它可以接受一些数值参数,并根据这些值构建一个二维图形以供监控使用。最常见的就是获取设备的snmp信息,例如网络流量,然后生成图形。还可以从脚本得到CPU、Disk I/O、内存的数据,而呈现直观的图形。

  虽然其功能有限,而且已经逐步被rrdtool代替。但因为大部分发行版都自带MRTG软件包,使用也非常简单,所以,在小范围的网络环境中,还是有其用武之地的。

  为方便说明,我先以一个最简单的例子:从snmp获取网络流量,使用MRTG显示为例来说明。及后再补充从其他方式获取数据的方式。

  一、系统平台

 

  以红旗DC Server 5.0为例:

  # rpm -qa|grep mrtg  
 
  mrtg-2.10.15-1  
 
  • 1.
  • 2.
  • 3.
  • 4.

  此外,为从设备得到网络数据,最简单的方式就是从snmp获取信息。还有,mrtg会生成png文件,并需要放到web上显示,所以,最少需要有如下的支持包:

  引用

  net-snmp gd-1.8.4-4 gd-devel-1.8.4-4 perl-5.6.0-17 perl-CGI mod_perl-1.24_01-3 libpng-1.0.12-2 libpng-devel-1.0.12-2 httpd(apache)  
 
  • 1.
  • 2.

  包括但不限于以上版本和文件。

  二、打开SNMP权限

  是否打开SNMP服务,并不是MRTG使用的条件。从SNMP获取设备信息是比较方便而标准的办法。

  Linux下通常就是使用net-snmp(原称ucd-snmp),默认情况,其提供一个public的community供使用,但并没有打开允许接入的权限。

  snmp的agent配置文件在:/etc/snmp/snmpd.conf

  1、允许mib2库读取信息

  修改:

  # group context sec.model sec.level prefix read write notif  
 
  access notConfigGroup "" any noauth exact systemview none none  
 
  • 1.
  • 2.
  • 3.
  • 4.

  为:

  # group context sec.model sec.level prefix read write notif  
 
  access notConfigGroup "" any noauth exact mib2 none none  
 
  • 1.
  • 2.
  • 3.
  • 4.

  2、使snmp信息通过mib2库显示

  修改:

  #view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc  
 
  • 1.
  • 2.

  为:

  view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc  
 
  • 1.
  • 2.

  3、修改标识

  把:

  syslocation Unknown (edit /etc/snmp/snmpd.conf)  
 
  syscontact Root (configure /etc/snmp/snmp.local.conf)  
 
  • 1.
  • 2.
  • 3.
  • 4.

  修改为可标识该主机的信息:

  syslocation PrintServer  
 
  syscontact Root  
 
  • 1.
  • 2.
  • 3.
  • 4.

  MRTG可以读到该信息的。

  4、启动snmpd服务

  # service snmpd start  
 
  • 1.
  • 2.

  校验:

  # netstat -ln|grep 199  
 
  tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN  
 
  • 1.
  • 2.
  • 3.
  • 4.

  三、配置MRTG

  MRTG分如下两部分:

  a)工作目录,存放图形数据,供httpd显示

  b)配置文件

  1、创建工作目录

  # mkdir /var/www/html/mrtg  
 
  • 1.
  • 2.

  存在于/var/www/mrtg目录可以不用理会。

  2、生成配置文件

  在/etc/mrtg目录有一个mrtg.cfg文件,但太简单,我们需要重新生成一个。

  # cfgmaker --output=/etc/mrtg/mailmrtg.cfg public@192.168.228.153  
 
  • 1.
  • 2.

  其中,public是snmp的community,192.168.228.153是其对应的主机IP地址。

  3、设定全局参数

  上述命令会通过snmp搜索主机上所有的网络,并自动生成对应的参数。可根据实际情况排除不必要的网络接口,例如:sit0、lo等,然后修改剩余的标识。

  # vi mailmrtg.cfg  
 
  • 1.
  • 2.

  设定工作目录:

  WorkDir: /var/www/html/mrtg  
 
  • 1.
  • 2.

  4、设定网络标识

  以其中一个网卡为例:

 

  Target[192.168.228.153_2]: 2:public@192.168.228.153:  
 
  SetEnv[192.168.228.153_2]: MRTG_INT_IP="192.168.228.153" MRTG_INT_DESCR="bond0" 
 
  MaxBytes[192.168.228.153_2]: 12500000  
 
  Title[192.168.228.153_2]: Traffic Analysis for 2 -- printserver  
 
  PageTop[192.168.228.153_2]:   
 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

 

System:   printserver in Unknown (edit /etc/snmp/snmpd.conf)  
 
 Maintainer:   Root <root@localhost> (configure /etc/snmp/snmp.local.conf)  
 
 Description:   bond0  
 
 ifType:   ethernetCsmacd (6)  
 
 ifName:      
 
 Max Speed:   12.5 MBytes/s  
 
 Ip:   192.168.228.153 (printserver)  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

   其中:

  [192.168.228.153_2]:是一个关键标识,属于该标识的都属于同一组;

  2:public@192.168.228.153:是从那里获取snmp信息,前面的2用于区分多个网卡设备,与snmp端相同;

  SetEnv:是从snmp获取网络信息的参数;

  MaxBytes:标识图中***的纵向数据值;

  Title:图的标题

  PageTop:详细内容

  修改为:

 

  Target[192.168.228.153_2]: 2:public@192.168.228.153:  
 
  SetEnv[192.168.228.153_2]: MRTG_INT_IP="192.168.228.153" MRTG_INT_DESCR="bond0" 
 
  MaxBytes[192.168.228.153_2]: 12500000  
 
  Title[192.168.228.153_2]: Traffic Analysis for bond0 -- printserver  
 
  PageTop[192.168.228.153_2]:   
 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

System:   PrintServer in RedFlag DC Server 5.0

  Maintainer:   Root <root@localhost>

  Description:   bond0

  ifType:   ethernetCsmacd (6)

  ifName:    

  Max Speed:   12.5 MBytes/s

  Ip:   192.168.228.153 (printserver)

 

 

 

 

  其余的网卡可注释,或删除,或参考配置。

  5、生成index.html

  # indexmaker --output=/var/www/html/mrtg/index.html --title=PrintServer /etc/mrtg/mailmrtg.cfg  
 
  • 1.
  • 2.

  6、由数据生成图表

  # mrtg /etc/mrtg/mailmrtg.cfg  
 
  • 1.
  • 2.

  ※注:由于开始没有旧的日志数据,所以前两次会报警告:

  引用

  Rateup WARNING: /usr/bin//rateup could not read the primary log file for 192.168.228.153_2  
 
  Rateup WARNING: /usr/bin//rateup The backup log file for 192.168.228.153_2 was invalid as well  
 
  • 1.
  • 2.
  • 3.
  • 4.

  当再运行两次后即会正常。若出现Error信息,请重新查看前面的配置是否有误!

  7、修改默认httpd的mrtg配置

  修改/etc/httpd/conf.d/mrtg.conf为:

  Alias /mrtg /var/www/html/mrtg  
 
    
 
  Order deny,allow  
 
  #Deny from all  
 
  #Allow from 127.0.0.1  
 
  #Allow from ::1  
 
  # Allow from .example.com  
 
  Allow from all  
 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

  

  重启httpd服务:

  # service httpd restart  
 
  • 1.
  • 2.

  ※注:仅用于说明演示,并没有考虑太多的权限问题,请自行解决。

  8、查看输出页面

  9、加入计划任务

  若一切正常,则把mrtg命令加入计划任务即可。

  在/etc/cron.d/mrtg加入:

  引用

  */5 * * * * root /usr/bin/mrtg /etc/mrtg/mailmrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok  
 
  • 1.
  • 2.

  表示每5分钟执行一次。

【编辑推荐】

MRTG安装配置

MRTG—网络监控工具

将MRTG做成系统服务

责任编辑:zhaolei 来源: csdn
相关推荐

2011-03-31 09:02:22

MRTG监控CPU

2011-03-31 13:40:48

MRTGsquid流量

2011-03-31 10:24:15

2011-04-06 11:36:30

MRTG监控内存

2011-04-06 11:36:32

2011-04-02 10:29:19

2011-04-02 10:29:17

2011-04-02 12:52:37

MRTG监控

2011-03-31 11:14:29

MRTG监测

2011-04-01 09:18:03

2011-03-31 13:40:47

MRTG监控

2010-06-01 12:51:00

2011-03-30 15:05:41

MRTG监控

2011-03-31 14:28:15

2011-03-31 10:31:18

MRTG

2011-03-31 13:40:36

MRTGsquid流量

2011-03-31 13:40:48

2010-06-01 11:20:39

Mrtg window

2011-04-01 09:18:03

FreeBSD安装MRTG

2011-04-02 11:16:16

MRTG监控带宽
点赞
收藏

51CTO技术栈公众号