两款工具的定位差异
MRTG(Multi Router Traffic Grapher)是经典的基于SNMP的流量监控工具,采用RRD存储数据,主要擅长:
# 典型MRTG配置示例
Target[router1]: 1.3.6.1.2.1.2.2.1.10.1&1.3.6.1.2.1.2.2.1.16.1:public@192.168.1.1
MaxBytes[router1]: 1250000
Title[router1]: 核心路由器流量
PageTop[router1]: <h1>eth0 端口流量</h1>
而ntop则是基于libpcap的深度流量分析工具,提供:
- 实时协议分析(支持HTTP/DNS等应用层协议)
- 流量指纹识别
- 历史数据回溯
典型应用场景对比
MRTG更适合:
# 生成流量图的crontab配置
*/5 * * * * /usr/local/mrtg/bin/mrtg /etc/mrtg/mrtg.cfg
ntop更适合:
# ntopng启动示例
ntopng -i eth0 \
-w 3000 \
-d /var/lib/ntop \
--community
数据采集方式对比
特性 | MRTG | ntop |
---|---|---|
采集协议 | SNMP | libpcap |
数据粒度 | 5分钟 | 秒级 |
存储格式 | RRD | Redis+SQLite |
二次开发扩展性
MRTG可通过Perl插件扩展:
package MRTG::MyPlugin;
sub getSNMP {
my ($host, $comm, $oid) = @_;
# 自定义SNMP采集逻辑
}
ntop提供Lua API进行深度定制:
-- 自定义流量告警脚本
register_alert_callback(function()
if(iface.getThroughput() > 1e9) then
triggerAlert("流量超阈值")
end
end)
性能消耗实测
在CentOS 7虚拟机测试环境:
- MRTG监控10个接口时CPU占用<3%
- ntop监控千兆网口时峰值CPU达15%
企业部署建议
建议组合使用:
- 使用MRTG做基础设施级监控
- 对关键链路部署ntop进行深度分析
- 通过API集成到统一监控平台