LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1444|回复: 5

在fedora中使用MRTG进行系统监控(2004-02-13更新)

[复制链接]
发表于 2004-2-13 17:07:42 | 显示全部楼层 |阅读模式
在fedora中使用MRTG进行系统监控(2004-02-13更新)

VictorYan指北系列之MRTG入门篇       


主要内容:
        *MRTG是什么
        *MRTG特点
        *MRTG安装与配置
        *如何使用MRTG进行简易监控
        *MRTG监控网络配置文件实例
        *MRTG监控网络配置文件实例详解
        *如何配置SNMP来配合MRTG进行监控CPU,内存等系统状况
        *如何使用SNMP的translate工具

参考文章:         网络流量监控器mrtg全攻略
                http://www.fengnet.com/showart.asp?art_id=365&cat_id=10

参考图例:
        见附件


一.        MRTG是什么
        MRTG =  Multi Router Traffic Grapher
        是一个监控网络链路流量负载的工具软件, 它通过snmp协议从设备得到设备的流量信息,并将流量负载以包含PNG格式的图形的 HTML文档方式显示给用户,以非常直观的形式显示流量负载.
        mrtg 的输出结果示例: http://www.stat.ee.ethz.ch/mrtg/
        另外,MRTG也可以监控LINUX主机的运行状态,用于系统管理.例如:监控服务器的CPU使用效率,SQUID代理服务器的流量统计等
        官方网站:        http://people.ee.ethz.ch/~oetiker/webtools/mrtg
                        http://www.mrtg.org

二.        MRTG特点
        *可移植性
                目前可以运行在大多数Unix系统和Windows NT之上。
        *源码开放
                Mrtg是用perl编写的,源代码完全开放。
        *高可移植性的SNMP支持
                Mrtg采用了Simon Leinen编写的具有高可移植性的SNMP实现模块,从而不依赖于操作系统的SNMP模块支持。
        *支持SNMPv2c
                MRTG可以读取SNMPv2c的64位的记数器,从而大大减少了记数器回转次数。
        *可靠的接口标识
                被监控的设备的接口可以以IP地址、设备描述、SNMP对接口的编号及Mac地址来标识。
        *常量大小的日志文件
                *MRTG的日志不会变大,因为这里使用了独特的数据合并算法。
        *自动配置功能
                *MRTG自身有配置工具套件,使得配置过程非常简单。
        *性能
                *时间敏感的部分使用C代码编写,因此具有很好的性能。
        *PNG格式图形
                *图形采用GD库直接产生PNG格式。
        *输出可定制性
                *MRTG产生的web页面是完全可以定制的。
        *兼容性
                mrtg软件可以运行在大部分的操作系统上:
        *可监控的网络设备
                只要支持SNMP协议的设备就都可以使用MRTG来监控
三.        MRTG安装与配置
        *MRTG安装
                基本环境:        Fedora 1
                MRTG软件:         Fedora自带mrtg-2.10.5-1
                #rpm -ivh mrtg-2.10.5-1*
        *配置SNMP服务
        //检查软件
                $ rpm -qa |grep net-snmp
                net-snmp-5.1-2.1
                net-snmp-utils-5.1-2.1
                net-snmp-devel-5.1-2.1
                net-snmp-perl-5.1-2.1
        //修改配置文件/etc/snmp/snmpd.conf,允许mrtg读取网络接口的流量数据。
                将
                view    systemview    included   .1.3.6.1.2.1.1
                view    systemview    included   .1.3.6.1.2.1.25.1.1
                修改为:
                view    systemview    included   .1.3.6.1.2.1.1
                view    systemview    included   .1.3.6.1.2.1.2
                view    systemview    included   .1.3.6.1.2.1.25.1.1
                注:         .1.3.6.1.2.1.1 = SNMPv2-MIB::system
                        .1.3.6.1.2.1.2 = IF-MIB::interfaces
        //打开SNMPD服务
                # chkconfig snmpd on
                # service snmpd start

四.        如何使用MRTG进行简易监控
       
        //生成mrtg配置文件/etc/mrtg/mrtg.cfg
                #cfgmaker --global "WorkDir:/var/www/mrtg" --output /etc/mrtg/mrtg.cfg  public@localhost
        //初始运行MRTG,在工作目录下创建初始的流量图和web页面
                #mrtg /etc/mrtg/mrtg.cfg
                #mrtg /etc/mrtg/mrtg.cfg               
                #mrtg /etc/mrtg/mrtg.cfg
                注:初次运行需要连续运行三次,每次会产生一些警告信息,这是以后再运行就正常了
        //每隔5分钟自动运行mrtg来生成统计信息
                编辑/etc/cron.d/mrtg文件:
0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log
        //产生网页索引文件
                #indexmaker /etc/mrtg/mrtg.cfg --output /var/www/mrtg/index.html
        //编辑/etc/httpd/conf.d/mrtg.conf,允许主机通过网络监控网络流量信息;默认只允许本台主机,且主机名=localhost查看
                Alias /mrtg /var/www/mrtg
                <Location /mrtg>
                    Order deny,allow
                    # Deny from all
                    Allow from localhost
                    # Allow from .example.com
                </Location>
                注:修改后重启httpd服务#service httpd restart
        //通过浏览器监控网络流量信息
                http://localhost/mrtg
        //配置文件/etc/mrtg/mrtg.cfg举例(注:取消了注释部分)       
EnableIPv6: no
WorkDir:/var/www/mrtg
Target[localhost_2]: 2:public@localhost:
SetEnv[localhost_2]: MRTG_INT_IP="" MRTG_INT_DESCR="eth0"
MaxBytes[localhost_2]: 12500000
Title[localhost_2]: Traffic Analysis for 2 -- abc.com.cn
PageTop[localhost_2]: <H1>Traffic Analysis for 2 -- abc.com.cn</H1>
<TABLE>
   <TR><TD>System:</TD>     <TD>abc.com.cn in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR>
   <TR><TD>Maintainer:</TD> <TD>Root &lt;root@localhost&gt; (configure /etc/snmp/snmp.local.conf)</TD></TR>
   <TR><TD>Description:</TD><TD>eth0  </TD></TR>
   <TR><TD>ifType:</TD>     <TD>ethernetCsmacd (6)</TD></TR>
   <TR><TD>ifName:</TD>     <TD></TD></TR>
   <TR><TD>Max Speed:</TD>  <TD>12.5 MBytes/s</TD></TR>
</TABLE>

五.        MRTG监控网络配置文件实例
        //为了使网络监控更加易懂实用,手工修改配置文件/etc/mrtg/mrtg.cfg
WorkDir: /var/www/mrtg
Language: gb2312                                                                                                         
#监控网络流量[LAN接口eth0]
Target[eth0]: 2:public@localhost:
Options[_]: growright
Directory[eth0]: eth0
MaxBytes[eth0]: 12500000
Kmg[eth0]: ,k,M,G,T,P
YLegend[eth0]: Bytes per Second
ShortLegend[eth0]: B/s
Legend1[eth0]: 每秒流入量 (单位 Bytes)
Legend2[eth0]: 每秒流出量 (单位 Bytes)
LegendI[eth0]: 流入:
LegendO[eth0]: 流出:
Title[eth0]: 网络流量[LAN接口eth0]
PageTop[eth0]: <H1>网络流量[LAN接口eth0]</H1>
<TABLE>
   <TR><TD>系统  :</TD>    <TD>host.abc.com</TD></TR>
   <TR><TD>描述  :</TD>    <TD>内部网络接口eth0的网络流量(Bytes/s)</TD></TR>
   <TR><TD>位置  :</TD>    <TD>Shanghai</TD></TR>
   <TR><TD>最大值:</TD>    <TD>12.5 MBytes/s</TD></TR>
   <TR><TD>管理员:</TD>    <TD>abc@abc.com</TD></TR>
   <TR><TD>说明  :</TD>    <TD>&nbsp</TD></TR>
</TABLE>                                                                                   

六.        MRTG监控网络配置文件实例详解

WorkDir设置工作目录,存放mrtg采集的数据和生成的统计文件
Language设置WEB页面显示的语言=中文gb2312
growright指示流量图随时间的变化向右增长
Target指示监控的设备;
        设备的表示方式=port:community@router;
        commnunity表示snmp通讯密码                                                                                                   
Directory指示该监控设备的相关文件保存的位置=/var/www/mrtg/eth0/;
        默认保存在WorkDir工作目录下                                                                                                  
MaxBytes指示被采集的数据的最大值.
        如果采集的数据大于该值,MRTG将忽略,并保持上次采集的数据值                                                                                                  
Kmg指示乘数单位(默认每千位跳一个单位)                                                                                                   
YLegend指示Y轴的单位标记(不能用中文)
ShortLegend指示数据的单位标记
Legend1,2,3,4分别指示四条不同颜色的统计线的文字说明
        Legend1: 每5分钟数据平均流入量的文字说明
        Legend2: 每5分钟数据平均流出量的文字说明
        Legend3: 每5分钟数据最大流入量的文字说明
        Legend4: 每5分钟数据最大流出量的文字说明
LegendI,O分别说明数据的流出和流出的文字说明                                                                                          
WithPeak指示如何显示流量图
        共有四条不同颜色的统计线,绿色表示平均流入,蓝色表示平均流出,墨绿色表示最大流入,紫色表示最大流出
        n代表不设置w代表每周图表,代表每月图表,y代表每年图表
        不设置WithPeak,只有绿色流入和蓝色流出
PageTop指示增加到Web页头部的HTML代码,用于定制网页
        以空格开始的<TABLE></TABLE>部分都是PageTop的内容,都直接作为HTML代码


七.        如何配置SNMP来配合MRTG进行监控CPU,内存等系统状况

        *SNMP简介
                SNMP(Simple Network Management Protocol)是一种专门用于网络管理的通讯协议.
                SNMP一共发展有3个主版本,分别为SNMPv1 ,SNMPv2和SNMPv3。
                其中SNMPv2又分为若干个子版本,其中SNMPv2c应用最为广泛
                SNMP协议是运行在UDP协议之上,它利用的是UDP协议的161/162端口。
                设备的所有的需要被管理的信息称作管理信息库(Management Information Base,MIB)
                MIB 是一个按照层次结构组织的树状结构(定义方式类似于域名系统),管理对象为定义为树中的相应叶子节点。
                SNMP基本的标准MIB库是MIBII
        *配置SNMP,监控系统内存的使用情况
                已用内存的MIB变量=.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.2
                已用内存的OID值=.1.3.6.1.2.1.25.2.3.1.6.2
                已用内存的MIB文件=/usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
                //打开snmpd中的已用内存监控,在/etc/snmp/snmpd.conf中加入
                view    systemview    included   .1.3.6.1.2.1.25.2.3.1.6.2
                注1: 在snmpd.conf文件中查找 “view    systemview    included”行,加在后面
                注2: 修改后重启snmpd服务生效# service snmpd start
                //检查当前的已用内存
                #snmpwalk -v 1 -c public localhost  .1.3.6.1.2.1.25.2.3.1.6.2
                注:         -v 1表示使用SNMPv1协议,
                        -c public localhost表示使用public作为共同体名向主机localhost查询


八.        如何使用SNMP的translate工具
       
        //查询: MIB名-->OID值
                $snmptranslate -On SNMPv2-MIB::sysUpTime.0
                .1.3.6.1.2.1.1.3.0
        //查询: MIB部分名-->OID值
                $snmptranslate -On -IR sysUpTime.0
                .1.3.6.1.2.1.1.3.0
                $snmptranslate -Ib 'sys.*ime'
                SNMPv2-MIB::sysORUpTime
                $snmptranslate -TB  'sys.*ime'
                SNMPv2-MIB::sysORUpTime
                SNMPv2-MIB::sysUpTime
                HOST-RESOURCES-MIB::hrSystemUptime
        //查询: OID值-->MIB名
                $snmptranslate .1.3.6.1.2.1.1.3.0
                SNMPv2-MIB::sysUpTime.0
        //查询: MIB全名
                $snmptranslate -Of .1.3.6.1.2.1.1.3.0
                .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.0
        //查询: MIB信息
                $snmptranslate -Td .1.3.6.1.2.1.1.3.0
                SNMPv2-MIB::sysUpTime.0
                sysUpTime OBJECT-TYPE
                  -- FROM       SNMPv2-MIB, RFC1213-MIB
                  SYNTAX        TimeTicks
                  MAX-ACCESS    read-only
                  STATUS        current
                  DESCRIPTION   "The time (in hundredths of a second) since the
                            network management portion of the system was last
                            re-initialized."
                ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysUpTime(3) 0 }
        //查询: MIB信息树
                $snmptranslate -Tp -IR system
+--system(1)
   |
   +-- -R-- String    sysDescr(1)
   |        Textual Convention: DisplayString
   |        Size: 0..255
   +-- -R-- ObjID     sysObjectID(2)
   +-- -R-- TimeTicks sysUpTime(3)
   +-- -RW- String    sysContact(4)
   |        Textual Convention: DisplayString
   |        Size: 0..255
   +-- -RW- String    sysName(5)
   |        Textual Convention: DisplayString
   |        Size: 0..255
   +-- -RW- String    sysLocation(6)
   |        Textual Convention: DisplayString
   |        Size: 0..255
   +-- -R-- INTEGER   sysServices(7)
   |        Range: 0..127
   +-- -R-- TimeTicks sysORLastChange(8)
   |        Textual Convention: TimeStamp
   |
   +--sysORTable(9)
      |
      +--sysOREntry(1)
         |  Index: sysORIndex
         |
         +-- ---- INTEGER   sysORIndex(1)
         |        Range: 1..2147483647
         +-- -R-- ObjID     sysORID(2)
         +-- -R-- String    sysORDescr(3)
         |        Textual Convention: DisplayString
         |        Size: 0..255
         +-- -R-- TimeTicks sysORUpTime(4)
                  Textual Convention: TimeStamp

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2004-2-14 13:54:21 | 显示全部楼层
如何装GD??
发表于 2004-2-14 18:36:52 | 显示全部楼层
文章不错,
 楼主| 发表于 2004-2-17 11:20:14 | 显示全部楼层
如果是Redhat系统,直接使用Rpm包应该可以安装gd.
发表于 2004-2-17 12:41:40 | 显示全部楼层
实在太感谢楼主了,这正是我想要的!
发表于 2004-12-15 12:02:26 | 显示全部楼层
我安装了不snmp,但是没有可执行文件呢,也没有配置文件
[PHP]root:~#whereis snmp
snmp:/usr/share/snmp[/PHP]
怎么回事呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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