snmp-exporter Docker 镜像下载 - 轩辕镜像
snmp-exporter 镜像详细信息和使用指南
snmp-exporter 镜像标签列表和版本信息
snmp-exporter 镜像拉取命令和加速下载
snmp-exporter 镜像使用说明和配置指南
Docker 镜像加速服务 - 轩辕镜像平台
国内开发者首选的 Docker 镜像加速平台
极速拉取 Docker 镜像服务
相关 Docker 镜像推荐
热门 Docker 镜像下载
snmp-exporter 镜像详细信息
snmp-exporter 镜像标签列表
snmp-exporter 镜像使用说明
snmp-exporter 镜像拉取命令
Docker 镜像加速服务
轩辕镜像平台优势
镜像下载指南
相关 Docker 镜像推荐
snmp-exporter 镜像详细说明
snmp-exporter 使用指南
snmp-exporter 配置说明
snmp-exporter 官方文档
Prometheus SNMP Exporter 镜像文档
镜像概述和主要用途
prom/snmp-exporter 是 Prometheus ***推荐的 SNMP 数据导出工具,用于将 SNMP 设备数据转换为 Prometheus 可摄入的格式。通过该镜像,用户可轻松监控支持 SNMP 协议的网络设备(如交换机、路由器、接入点等),实现设备性能指标(如接口流量、系统资源等)的采集与分析。
核心功能和特性
1. SNMP 与 Prometheus 数据映射
- 将 SNMP 层次化 OID 结构自动映射为 Prometheus 多维标签格式,支持多索引 OID 映射为多个 Prometheus 标签。
- 示例:将
ifIndex、ifDescr、ifName等 SNMP 索引映射为 Prometheus 指标标签(如ifHCOutOctets{ifIndex="2",ifDescr="eth0",...})。
2. 多模块与多设备支持
- 支持多模块并发采集(通过
--snmp.module-concurrency控制,默认 1),单次请求可获取多个模块数据。 - 单实例可高效监控数千台 SNMP 设备,适用于大规模网络环境。
3. 安全特性
- 支持 SNMP v3 加密认证(解决 v1/v2c 社区字符串明文传输问题)。
- 支持 HTTP 端点的 TLS 加密和基本认证(通过
--web.config.file配置)。
4. 灵活配置
- 提供默认
snmp.yml配置,覆盖常见硬件设备;支持通过 generator 工具从 MIB 文件生成自定义配置。 - 支持环境变量注入认证信息(
username、password、priv_password),需启用--config.expand-environment-variables。
5. 大计数器处理
- 自动对 64 位大计数器(Counter64)进行 2^53 截断,避免 Prometheus 浮点精度丢失;可通过
--no-snmp.wrap-large-counters禁用。
使用场景和适用范围
适用设备
- 网络设备:交换机、路由器、接入点(AP)、防火墙等支持 SNMP 的设备。
- 服务器与 IoT 设备:支持 SNMP 代理的服务器、存储设备、传感器等。
典型场景
- 企业网络监控:集中采集多厂商网络设备的接口流量、端口状态、CPU/内存使用率等指标。
- 数据中心基础设施监控:监控网络设备性能,结合 Prometheus Alertmanager 实现异常告警。
- 自定义 SNMP 设备监控:通过 generator 工具适配非标准 MIB 的私有设备。
详细使用方法和配置说明
镜像获取
bashdocker pull prom/snmp-exporter
Docker 部署方案
1. 基础运行(默认配置)
bashdocker run -d -p 9116:9116 --name snmp-exporter prom/snmp-exporter
- 暴露端口:9116(默认 HTTP 端口)。
- 默认配置:使用内置
snmp.yml,支持if_mib模块和public_v2认证(SNMP v2c 只读社区)。
2. 自定义配置文件
bashdocker 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)。
3. Docker Compose 示例
yamlversion: '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 |
指标采集与 URL 参数
基础采集 URL
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)
snmp.yml 是核心配置文件,定义模块(modules)和认证(auths)。默认配置覆盖常见设备,如需自定义需通过 generator 生成。
结构示例
yamlauths: 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
Prometheus 集成配置
Prometheus 配置示例(prometheus.yml)
yamlscrape_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']
TLS 与基本认证配置
通过 --web.config.file 指定 Web 配置文件,启用 TLS 和基本认证。示例配置(web-config.yml):
yamltls_config: cert_file: /etc/tls/cert.pem key_file: /etc/tls/key.pem basic_auth_users: admin: $2a$10$Gd6Za4E6d87xRvKx6rSMeO9eTQV9eTQV9eTQV9eTQV9eTQV9eTQV # bcrypt 加密的密码
配置生成(generator)
如需自定义模块(如私有 MIB),使用 generator 工具从 MIB 文件生成 snmp.yml:
- 下载 generator 并安装。
- 编写 generator 配置(如
generator.yml),指定 MIB 路径和模块定义。 - 生成配置:
bash
./generator generate --config.file=generator.yml --output.file=snmp.yml
大计数器处理
默认情况下,exporter 会将 64 位计数器(Counter64)值截断为 2^53(避免 Prometheus 浮点精度丢失)。如对接非 Prometheus 系统需禁用此功能:
bashdocker run -d -p 9116:9116 --name snmp-exporter prom/snmp-exporter --no-snmp.wrap-large-counters
贡献与扩展
- 配置贡献:自定义
snmp.yml及 generator 配置可贡献至 ***仓库。 - 监控规则与仪表盘:可提交至 snmp-mixin 项目,共享仪表盘、告警规则等。
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务
常见问题
免费版仅支持 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 登录认证访问私有仓库
Linux
在 Linux 系统配置镜像加速服务
Windows/Mac
在 Docker Desktop 配置镜像加速
Docker Compose
Docker Compose 项目配置加速
K8s Containerd
Kubernetes 集群配置 Containerd
宝塔面板
在宝塔面板一键配置镜像加速
群晖
Synology 群晖 NAS 配置加速
飞牛
飞牛 fnOS 系统配置镜像加速
极空间
极空间 NAS 系统配置加速服务
爱快路由
爱快 iKuai 路由系统配置加速
绿联
绿联 NAS 系统配置镜像加速
威联通
QNAP 威联通 NAS 配置加速
Podman
Podman 容器引擎配置加速
Singularity/Apptainer
HPC 科学计算容器配置加速
其他仓库配置
ghcr、Quay、nvcr 等镜像仓库
专属域名拉取
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429