CentOS 5 上的 MRTG 图形化的流量分析报表快速入门

MRTG是一个开源的图形化的监控网络流量负载的工具,通过snmp协议得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML 文档方式显示给用户,以非常直观的形式显示流量负载。

安装

安装 MRTG

yum -y install mrtg

选择性地安装 snmpwalk 及 snmpget

yum -y install net-snmp-utils

MIB 及 OID

在继续前进之先,你须要从你的设备取得一些信息。你可能要为你的设备找寻 MIB,或者花点时间研究所需用的 OID。snmpget 及 snmpwalk 这两个指令亦能提供协助。

配置文件

MRTG 组件会创建一个简单的配置文件、crontab 档、及 Apache 配置文件。

/etc/mrtg/mrtg.cfg
/etc/cron.d/mrtg
/etc/httpd/conf.d/mrtg.conf

/etc/mrtg/mrtg.cfg —— 入口级样例

一旦你取得 OID 信息,你可以开始编辑你的 mrtg.cfg 文件。你只需删除注释,然后修改它们指向你要监视的设备。缺省的文件内含有一个样例的主机作为参考。

HtmlDir: /var/www/mrtg
ImageDir: /var/www/mrtg
LogDir: /var/lib/mrtg
ThreshDir: /var/lib/mrtg
#Target[r1]: 2:public@myrouter.somplace.edu
#MaxBytes[r1]: 1250000
#Title[r1]: Traffic Analysis
#PageTop[r1]: <H1>Stats for our Ethernet</H1>

/etc/mrtg/mrtg.cfg —— 高级样例

这个高级的 mrtg.cfg 样例由一个运行著 DD-WRT 的 Linksys 路由器收集端口的吞吐量。在这个样例中,maxbytes 栏已通过下划线变成为一个全局设置。此外,这里亦定义了额外的全局选项,令图表靠右形成,并显示位元而不是字节。每个端口已被设置为一个独立的目标。输入及输出的 OID 的格式是:符号名称、社区符串、及管理的 IP 地址。

HtmlDir: /var/www/mrtg
ImageDir: /var/www/mrtg
LogDir: /var/lib/mrtg
ThreshDir: /var/lib/mrtg
MaxBytes[_]: 1250000
Options[_]: growright, bits

Target[Linksys_Port_1]: ifInOctets.1&ifOutOctets.1:public@192.168.0.9
Title[Linksys_Port_1]: Linksys Port 1 Throughput
PageTop[Linksys_Port_1]: <H1>Linksys Port 1 Throughput</H1>

Target[Linksys_Port_2]: ifInOctets.2&ifOutOctets.2:public@192.168.0.9
Title[Linksys_Port_2]: Linksys Port 2 Throughput
PageTop[Linksys_Port_2]: <H1>Linksys Port 2 Throughput</H1>

Target[Linksys_Port_3]: ifInOctets.3&ifOutOctets.3:public@192.168.0.9
Title[Linksys_Port_3]: Linksys Port 3 Throughput
PageTop[Linksys_Port_3]: <H1>Linksys Port 3 Throughput</H1>

Target[Linksys_Port_4]: ifInOctets.4&ifOutOctets.4:public@192.168.0.9
Title[Linksys_Port_4]: Linksys Port 4 Throughput
PageTop[Linksys_Port_4]: <H1>Linksys Port 4 Throughput</H1>

Target[Linksys_Port_5]: ifInOctets.5&ifOutOctets.5:public@192.168.0.9
Title[Linksys_Port_5]: Linksys Port 5 Throughput
PageTop[Linksys_Port_5]: <H1>Linksys Port 5 Throughput</H1>

Target[Linksys_Port_6]: ifInOctets.6&ifOutOctets.6:public@192.168.0.9
Title[Linksys_Port_6]: Linksys Port 6 Throughput
PageTop[Linksys_Port_6]: <H1>Linksys Port 6 Throughput</H1>

Target[Linksys_Port_7]: ifInOctets.7&ifOutOctets.7:public@192.168.0.9
Title[Linksys_Port_7]: Linksys Port 7 Throughput
PageTop[Linksys_Port_7]: <H1>Linksys Port 7 Throughput</H1>

/etc/mrtf/mrtg.cfg – 使用 cfgmaker

你亦可以让 MRTG 自动为你创建一个配置文件。

cfgmaker public@192.168.0.9 > /etc/mrtg/mrtg.conf

/etc/cron.d/mrtg

当你存储配置文件后,MRTG 会开始创建 rrdtool 日志档及基本的网页。如果你已急不及待,或者想调试,你可以执行 poller 指令。

export LANG=C
export LC_ALL=C
/usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

/etc/httpd/conf.d/mrtg.conf – Apache 设置

过了数分钟后,你可以用你喜欢的浏览器来打开你的网站: http://www.example.com/mrtg/linksys_port_1.html

MRTG 在 Apache 的设置里只缺省了 localhost 可以查看这个 URL。如果你需要在另一台机器上访问这个 URL,你只需修改 MRTG 的 Apache 配置文件及重新引导 Apache。这个样例只包含 Alias 的定义。

/etc/httpd/conf.d/mrtg.conf
Alias /mrtg /var/www/mrtg

#<Location /mrtg>
#    Order deny,allow
#    Deny from all
#    Allow from 127.0.0.1
#    Allow from ::1
#    # Allow from .example.com
#</Location>

请在修改后重新引导 Apache。

service httpd restart

创建索引页

index.html 并不存在。你可以用 indexmaker 来创建它。你可以将这个指令加到 crontab 内,或者在每次修改 mrtg.cfg 后执行它。

indexmaker --output=/var/www/mrtg/index.html /etc/mrtg/mrtg.cfg

现在你应该可以用你喜欢的浏览器打开 http://www.example.com/mrtg 来查看图表。

参考文章:

Leave a Reply