mrtg怎样流量监控

联启 网络工具 16

本文目录导读:

mrtg怎样流量监控-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

  1. 准备工作与环境要求
  2. 安装MRTG
  3. 配置被监控设备(交换机/路由器/服务器)
  4. 生成MRTG配置文件
  5. 手动测试配置文件(关键步骤)
  6. 定期采集数据(配置Crontab)
  7. 生成Web页面(IndexMaker)
  8. 配置Web服务器访问
  9. 高级技巧与常见问题
  10. 替代方案参考

MRTG(Multi Router Traffic Grapher)是一个经典的开源网络流量监控工具,通过SNMP协议定期获取设备(如路由器、交换机、服务器网卡)的流量数据,并生成历史图表。

以下是使用MRTG进行流量监控的完整流程:

准备工作与环境要求

  • 操作系统:Linux/Unix 或 Windows(下文以Linux为例)。
  • 所需组件
    • MRTG 主程序。
    • Perl 解释器(MRTG由Perl编写)。
    • SNMP 协议支持(需要被监控设备开启SNMP,且监控端有SNMP客户端工具如 snmpget)。
    • Web服务器(如Apache、Nginx,用于展示生成的图表)。

安装MRTG

在 CentOS/RHEL/Fedora 上

sudo yum install mrtg httpd net-snmp-utils

在 Ubuntu/Debian 上

sudo apt-get install mrtg apache2 snmpd

配置被监控设备(交换机/路由器/服务器)

你需要确保设备开启了SNMP协议(通常是v1或v2c),以常见设备举例:

  • Cisco/Huawei交换机

    snmp-server community public RO
  • Linux服务器: 修改 /etc/snmp/snmpd.conf,添加或修改:

    rocommunity public 127.0.0.1  # 允许本机访问,实际应限制IP

    重启snmpd服务:sudo systemctl restart snmpd

生成MRTG配置文件

MRTG提供了一个检测工具 cfgmaker,它可以自动扫描设备并生成配置文件。

命令格式

cfgmaker --global "WorkDir: /var/www/html/mrtg" \
         --global "Options[_]: growright, bits" \
         --output /etc/mrtg/mrtg.cfg \
         public@192.168.1.1
  • public:SNMP社区字符串(相当于密码)。
  • 168.1.1:被监控设备的IP地址。
  • WorkDir:存放生成图片(.png)和html文件的目录。
  • growright, bits:让图表向右增长,并以位/秒显示。

如果需要监控多个接口,可以多加几个IP,如果需要监控特定CPU/内存,则需手动编辑mrtg.cfg,使用自定义OID。

手动测试配置文件(关键步骤)

运行以下命令,看是否能正确获取到第一个接口的数据:

/usr/bin/mrtg /etc/mrtg/mrtg.cfg

注意:前两次运行通常会有错误(日志文件未创建),连续运行2-3次直到没有“Rateup”错误为止,这些错误是正常的,因为MRTG需要两次数据才能计算速率。

定期采集数据(配置Crontab)

MRTG本身不自动运行,需要借助Crontab每5分钟执行一次。

编辑crontab:

sudo crontab -e

添加一行:

*/5 * * * * /usr/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log

这会让MRTG每5分钟运行一次,采集数据并更新图表。

生成Web页面(IndexMaker)

你可以让MRTG自动生成一个显示所有接口的首页。

indexmaker /etc/mrtg/mrtg.cfg > /var/www/html/mrtg/index.html

配置Web服务器访问

将Web服务器的根目录指向 /var/www/html/mrtg(或创建软链接)。

  • Apache:默认已配置 /var/www/html,将mrtg目录放在其下即可。

  • 访问 http://你的服务器IP/mrtg/,你应该就能看到如下页面:

    • Traffic Analysis(流量分析):显示下行/上行速率。
    • 日/周/月/年视图:不同的时间粒度。

高级技巧与常见问题

a. 监控服务器本地网卡(Loopback)

如果你要监控自己Linux服务器的eth0,可以直接在mrtg.cfg中手动配置:

Target[local_eth0]: 1:public@127.0.0.1
MaxBytes[local_eth0]: 12500000   # 100Mbps约等于12500000字节/秒local_eth0]: Server Eth0 traffic
PageTop[local_eth0]: <H1>Server Eth0 Traffic</H1>

然后手动运行 mrtg /etc/mrtg/mrtg.cfg

b. 监控CPU使用率

MRTG不限于网口,可以监控任何SNMP OID,例如监控CPU负载:

Target[cpu]: 1.3.6.1.4.1.2021.11.11.0&1.3.6.1.4.1.2021.11.11.0:public@127.0.0.1
MaxBytes[cpu]: 100
Options[cpu]: gauge, nopercentcpu]: CPU Utilization

c. 如何解读MRTG图表

元素 含义
绿色线条 流入流量(Incoming)
蓝色线条 流出流量(Outgoing)
“当前” 现在此刻的流量值
“平均” 统计周期内的平均流量
“最大” 统计周期内的峰值流量

d. 流量值为0或显示“No data”

  • 检查SNMP是否能连通:snmpwalk -v2c -c public 192.168.1.1
  • 检查防火墙是否开放UDP 161端口。
  • 检查mrtg.cfg中的 WorkDir 是否有写权限。

替代方案参考

虽然MRTG非常经典,但它生成的是静态PNG图片,现代监控更推荐轮询数据库+Web动态图表(如 Cacti,基于RRDTool,功能更强大),或者使用 Prometheus + Grafana(支持更多数据源、告警更灵活)。

如果只是想快速查看流量趋势,MRTG仍然是一个轻量可靠的选择。

标签: 流量监控

抱歉,评论功能暂时关闭!