Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

MRTG 監控交換機流量實戰:從 SNMP 配置到 Nagios 整合

編輯:Linux 教學

MRTG (Multi Router Traffic Grapher) 是經典的網絡流量視覺化工具,配合 SNMP 協議可實現對交換機、路由器等網絡設備的無代理監控。本文以 H3C 5500 系列交換機為例,完整記錄從 SNMP 配置、MRTG 部署、圖表生成到 Nagios 告警整合的全流程。

一、交換機 SNMP 配置(以 H3C 5500 為例)

system-view
snmp-agent enable
snmp-agent community read public
snmp-agent sys-info version all
snmp-agent group v1 public
snmp-agent group v2c public
snmp-agent group v3 public
snmp-agent target-host trap address udp-domain <Nagios_Server_IP> params securityname public

關鍵點:community read public 定義唯讀團體字;target-host trap 將告警推送至 Nagios 服務器。

二、MRTG 部署與配置

1. 安裝 MRTG

[root@nagios ~]# yum -y install mrtg

2. 生成設備配置文件

[root@nagios ~]# mkdir -p /usr/local/nagios/mrtg
[root@nagios ~]# cfgmaker --output=/usr/local/nagios/mrtg/mainswitch.cfg public@<Switch_IP>

cfgmaker 會自動遍歷交換機所有接口,生成對應的監控項。

3. 指定圖表輸出目錄

[root@nagios ~]# mkdir -p /usr/local/nagios/share/mrtg
[root@nagios ~]# sed -i 's|^#*WorkDir:.*|WorkDir: /usr/local/nagios/share/mrtg|' /usr/local/nagios/mrtg/mainswitch.cfg

4. 首次生成圖表(忽略初始警告)

[root@nagios ~]# env LANG=C /usr/bin/mrtg /usr/local/nagios/mrtg/mainswitch.cfg

連續執行 2-3 次直至無警告,完成 RRD 數據文件初始化。

5. 定時任務:每 5 分鐘更新一次

[root@nagios ~]# echo '*/5 * * * * root /usr/bin/env LANG=C /usr/bin/mrtg /usr/local/nagios/mrtg/mainswitch.cfg' >> /etc/crontab
[root@nagios ~]# systemctl restart crond

6. 生成聚合首頁

[root@nagios ~]# indexmaker --output=/usr/local/nagios/share/mrtg/index.html --title="MainSwitch Traffic Monitoring" /usr/local/nagios/mrtg/mainswitch.cfg

訪問 https://<Nagios_IP>/nagios/mrtg/ 即可查看流量圖表。

三、Nagios 整合 MRTG 流量告警

Nagios 內置 check_mrtgtraf 插件,可直接讀取 MRTG 生成的 .log 文件進行閾值判斷。

1. 定義主機與服務(/usr/local/nagios/etc/objects/switch.cfg)

define host{
    use             generic-switch
    host_name       MainSwitch
    alias           Core Switch
    address         <Switch_IP>
    hostgroups      switches
}

define service{
    use                     generic-service
    host_name               MainSwitch
    service_description     Port_1_Traffic
    check_command           check_local_mrtgtraf!/usr/local/nagios/share/mrtg/<Switch_IP>_1.log!AVG!1000000,1000000!5000000,5000000!10
}

參數解析:_1.log 中的 1 代表交換機端口索引;閾值單位為 Bytes,示例中警告 1Mbps、嚴重 5Mbps,檢查最近 10 個採樣週期。

2. 重載 Nagios 生效

[root@nagios ~]# systemctl reload nagios

等待 2-3 個採樣週期後,Nagios 服務頁面將顯示流量狀態與圖表鏈接。

四、多端口監控擴展

只需複製 define service 塊,修改 service_description 與 _X.log 中的端口索引即可批量監控所有業務端口。

總結

「SNMP 配置 → MRTG 採集圖表 → Nagios 閾值告警」三步走,構建輕量級網絡流量可視化與告警體系,零代理、低資源佔用,適合中小型網絡環境快速落地。

Copyright © Windows教程網 All Rights Reserved