本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
prom/snmp-exporter 是 Prometheus 官方推荐的 SNMP 数据导出工具,用于将 SNMP 设备数据转换为 Prometheus 可摄入的格式。通过该镜像,用户可轻松监控支持 SNMP 协议的网络设备(如交换机、路由器、接入点等),实现设备性能指标(如接口流量、系统资源等)的采集与分析。
ifIndex、ifDescr、ifName 等 SNMP 索引映射为 Prometheus 指标标签(如 ifHCOutOctets{ifIndex="2",ifDescr="eth0",...})。--snmp.module-concurrency 控制,默认 1),单次请求可获取多个模块数据。--web.config.file 配置)。snmp.yml 配置,覆盖常见硬件设备;支持通过 generator 工具从 MIB 文件生成自定义配置。username、password、priv_password),需启用 --config.expand-environment-variables。--no-snmp.wrap-large-counters 禁用。docker pull prom/snmp-exporter
docker run -d -p 9116:9116 --name snmp-exporter prom/snmp-exporter
snmp.yml,支持 if_mib 模块和 public_v2 认证(SNMP v2c 只读社区)。docker run -d -p 9116:9116 \ -v /path/to/your/snmp.yml:/etc/snmp_exporter/snmp.yml \ --name snmp-exporter \ prom/snmp-exporter --config.file=/etc/snmp_exporter/snmp.yml
snmp.yml 配置文件(路径可通过 --config.file 指定,支持多文件和 glob 匹配,如 --config.file=snmp*.yml)。version: '3' services: snmp-exporter: image: prom/snmp-exporter container_name: snmp-exporter ports: - "9116:9116" volumes: - ./snmp.yml:/etc/snmp_exporter/snmp.yml - ./web-config.yml:/etc/snmp_exporter/web-config.yml # TLS/基本认证配置 command: - --config.file=/etc/snmp_exporter/snmp.yml - --config.expand-environment-variables # 启用环境变量注入 - --web.config.file=/etc/snmp_exporter/web-config.yml environment: - ARISTA_USERNAME=admin # 示例:注入认证用户名 - ARISTA_PASSWORD=secret # 示例:注入认证密码 restart: unless-stopped
| 参数 | 描述 | 默认值 |
|---|---|---|
--config.file | 指定配置文件路径(支持多文件和 glob 匹配,如 snmp*.yml) | snmp.yml |
--config.expand-environment-variables | 启用配置文件中环境变量注入(支持 username/password/priv_password) | false |
--web.config.file | 指定 Web 配置文件(TLS/基本认证,格式参考 exporter-toolkit) | 无 |
--snmp.module-concurrency | 多模块采集并发数 | 1 |
--no-snmp.wrap-large-counters | 禁用大计数器(Counter64)2^53 截断 | false |
http://<exporter-ip>:9116/snmp?target=<device-ip>&module=<module>&auth=<auth>
| 参数 | 描述 | 示例 |
|---|---|---|
target | SNMP 设备地址,支持 [transport://]host[:port] 格式(transport:udp/tcp) | 192.168.1.1、tcp://192.168.1.1:1161 |
module | 指定采集模块(在 snmp.yml 中定义,支持多模块,用逗号分隔或重复参数) | if_mib、if_mib,arista_sw |
auth | 指定认证配置(在 snmp.yml 的 auths 中定义) | public_v2、my_secure_v3 |
snmp_context | SNMP 上下文名称(覆盖 snmp.yml 中的 context_name) | vrf-mgmt |
snmp_engineid | SNMP v3 引擎 ID(仅 SNMP v3 适用) | 800004f7059c7a0307400529 |
# 逗号分隔 http://localhost:9116/snmp?module=if_mib,arista_sw&target=192.168.1.1&auth=public_v2 # 重复参数 http://localhost:9116/snmp?module=if_mib&module=arista_sw&target=192.168.1.1&auth=public_v2
snmp.yml 是核心配置文件,定义模块(modules)和认证(auths)。默认配置覆盖常见设备,如需自定义需通过 generator 生成。
auths: public_v2: # 认证名称,用于 URL 参数 `auth` community: public # SNMP v2c 社区字符串 security_level: noAuthNoPriv # 安全级别(noAuthNoPriv/authNoPriv/authPriv) version: 2 # SNMP 版本(1/2/3) my_secure_v3: version: 3 security_level: authPriv username: ${ARISTA_USERNAME} # 环境变量注入用户名 password: ${ARISTA_PASSWORD} # 环境变量注入认证密码 auth_protocol: SHA256 # 认证协议(MD5/SHA/SHA224/SHA256/SHA384/SHA512) priv_protocol: AES # 加密协议(DES/AES/AES192/AES256) priv_password: ${ARISTA_PRIV_PASSWORD} # 环境变量注入加密密码 modules: if_mib: # 模块名称,用于 URL 参数 `module` walk: # 要遍历的 OID 或 MIB 节点 - 1.3.6.1.2.1.2.2 # ifTable - 1.3.6.1.2.1.31.1.1 # ifXTable metrics: # 指标定义 - name: ifInOctets oid: 1.3.6.1.2.1.2.2.1.10 type: counter help: 接口入站字节数 indexes: - labelname: ifIndex type: gauge
scrape_configs: - job_name: 'snmp' static_configs: - targets: - 192.168.1.1 # 交换机 - tcp://192.168.1.2:1161 # 路由器(TCP 传输,端口 1161) metrics_path: /snmp params: auth: [public_v2] # 默认认证 module: [if_mib] # 默认模块(可多模块:[if_mib, arista_sw]) relabel_configs: - source_labels: [__address__] target_label: __param_target # 将 target 传递给 exporter - source_labels: [__param_target] target_label: instance # 实例标签设为设备地址 - target_label: __address__ replacement: 127.0.0.1:9116 # snmp-exporter 地址 # 监控 exporter 自身指标 - job_name: 'snmp_exporter' static_configs: - targets: ['localhost:9116']
通过 --web.config.file 指定 Web 配置文件,启用 TLS 和基本认证。示例配置(web-config.yml):
tls_config: cert_file: /etc/tls/cert.pem key_file: /etc/tls/key.pem basic_auth_users: admin: $2a$10$Gd6Za4E6d87xRvKx6rSMeO9eTQV9eTQV9eTQV9eTQV9eTQV9eTQV # bcrypt 加密的密码
如需自定义模块(如私有 MIB),使用 generator 工具从 MIB 文件生成 snmp.yml:
generator.yml),指定 MIB 路径和模块定义。./generator generate --config.file=generator.yml --output.file=snmp.yml
默认情况下,exporter 会将 64 位计数器(Counter64)值截断为 2^53(避免 Prometheus 浮点精度丢失)。如对接非 Prometheus 系统需禁用此功能:
docker run -d -p 9116:9116 --name snmp-exporter prom/snmp-exporter --no-snmp.wrap-large-counters
snmp.yml 及 generator 配置可贡献至 官方仓库。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429