
fboaventura/dckr-mrtg运行MRTG(多路由器流量绘图器)的Docker实例。该镜像基于Alpine构建,支持Alpine镜像的所有架构,其中amd64和arm64v8已验证可用。
| 架构 | 已验证 |
|---|---|
| amd64 | 是 |
| arm64v8 | 是 |
| arm32v6 | 否 |
| arm32v7 | 否 |
| i386 | 否 |
| ppc64le | 否 |
| s390x | 否 |
| riscv64 | 否 |
fboaventura/dckr-mrtg是一个预配置的Docker镜像,用于快速部署MRTG网络流量监控工具。MRTG通过SNMP协议收集网络设备(如路由器、交换机)的流量数据,并生成图形化报告。该镜像集成lighttpd作为Web服务器,提供监控数据的Web访问界面,支持rrdtool进行数据处理,同时允许用户添加自定义MIB文件以扩展设备支持。
镜像支持通过环境变量自定义配置,以下是主要变量及默认值:
| 变量名 | 默认值 | 描述 |
|---|---|---|
CFGMAKEROPTIONS | "" | 传递给cfgmaker的额外选项,如--zero-speed=***(参考manpage) |
ENABLE_V6 | "no" | 是否启用IPv6支持,监控IPv6设备时设为"yes" |
GRAPHOPTIONS | "growright, bits" | 图表生成选项,默认右扩展、以比特为单位(选项参考MRTG文档) |
GROUPID | 101 | lighttpd运行用户组ID,建议与USERID一致或根据卷权限调整 |
HOSTS | community:host[:version[:port]] | 监控目标主机,格式为社区名:主机[:SNMP版本[:端口]],多主机用逗号分隔(如public:192.168.1.1:2c:161,admin:10.0.0.1) |
INDEXMAKEROPTIONS | "" | 传递给indexmaker的额外选项,如--nolegend(参考manpage) |
MIBSDIR | "/mrtg/mibs" | 自定义MIB文件存放目录,容器会加载该目录下的所有MIB文件 |
MRTG_COLUMNS | 2 | 监控页面索引表格的列数,调整以适应多主机展示 |
PATHPREFIX | "" | Web访问路径前缀(不含尾斜杠),用于反向代理场景(如"/mrtg") |
REGENERATEHTML | "yes" | 容器重启时是否重新生成index.html(设为非"yes"则保留自定义修改,原文件重命名为index.old) |
TZ | "UTC" | 时区设置,如"Asia/Shanghai" |
USERID | 100 | lighttpd运行用户ID,建议设为1000以上以适配卷权限 |
WEBDIR | "/mrtg/html" | Web页面和RRD数据存储目录 |
容器使用以下目录存储关键数据,建议通过卷挂载实现持久化:
/etc/mrtg/conf.d:MRTG配置文件目录(生成的和自定义的配置)/mrtg/html:Web页面、RRD数据文件目录(监控报告和历史数据)/mrtg/mibs:自定义MIB文件目录(扩展设备支持)/mrtg/fonts:自定义字体目录(调整图表字体)快速启动示例(非持久化):
bashdocker run -d -p 8880:80 -e "HOSTS='public:192.168.1.1:2c'" fboaventura/dckr-mrtg:latest
持久化启动(挂载本地目录):
bash# 创建本地目录 mkdir -p ./conf.d ./html ./mibs # 启动容器并挂载卷 docker run -d \ -p 8880:80 \ -e "HOSTS='public:192.168.1.1:2c,admin:10.0.0.1'" \ -e "TZ='Asia/Shanghai'" \ -e "USERID=1000" \ -e "GROUPID=1000" \ -v ./conf.d:/etc/mrtg/conf.d \ -v ./html:/mrtg/html \ -v ./mibs:/mrtg/mibs \ fboaventura/dckr-mrtg:latest
访问监控页面:浏览器打开http://<服务器IP>:8880
创建docker-compose.yml文件:
yaml--- services: mrtg: image: fboaventura/dckr-mrtg:latest hostname: mrtg restart: always ports: - "8880:80" # 宿主机端口:容器端口(容器内固定80) volumes: - ./conf.d:/etc/mrtg/conf.d # 配置文件持久化 - ./html:/mrtg/html # 监控数据和Web页面持久化 - ./mibs:/mrtg/mibs # 自定义MIB文件 - /etc/localtime:/etc/localtime:ro # 同步宿主机时区(可选) environment: TZ: "Asia/Shanghai" # 设置时区 HOSTS: "public:192.168.1.1:2c,admin:10.0.0.1:2c:161" # 监控主机列表 USERID: 1000 # 运行用户ID(适配卷权限) GROUPID: 1000 # 运行用户组ID REGENERATEHTML: "yes" # 重启时重新生成索引页 CFGMAKEROPTIONS: "--zero-speed=***" # cfgmaker额外选项 MRTG_COLUMNS: 3 # 索引表格列数 tmpfs: - "/run" # 临时文件系统,提升性能
启动服务:
bashdocker-compose up -d
mrtg.sh启动脚本indexmaker和cfgmaker选项传递问题(修复#25)dev分支用于开发net-snmp-libs包,包含标准MIB文件MIBSDIR环境变量指定MIB文件路径14all.cgi脚本警告(#21和#23)14all.cgi脚本,支持CSV格式数据导出MRTG_COLUMNS环境变量控制索引页列数USERID和GROUPID,适配卷映射场景(@TweakM)REGENERATEHTML选项,控制是否重新生成index.html(@TweakM)indexmaker添加额外选项,增强自定义能力(@TweakM)latest标签跟随最新发布版本/etc/localtime挂载(@michaelkrieger)/usr/share/nginx/html迁移至/mrtg/htmllatest标签兼容性问题HOST为空时的回退逻辑![FOSSA Status]([***]
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务