专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

prom/snmp-exporter Docker 镜像 - 轩辕镜像

snmp-exporter
prom/snmp-exporter
Prometheus SNMP导出器,用于从SNMP设备收集数据并转换为Prometheus可抓取的格式,支持网络设备监控与指标采集。
43 收藏0 次下载activeprom镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

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 的私有设备。

详细使用方法和配置说明

镜像获取
bash
docker pull prom/snmp-exporter
Docker 部署方案
1. 基础运行(默认配置)
bash
docker run -d -p 9116:9116 --name snmp-exporter prom/snmp-exporter
  • 暴露端口:9116(默认 HTTP 端口)。
  • 默认配置:使用内置 snmp.yml,支持 if_mib 模块和 public_v2 认证(SNMP v2c 只读社区)。
2. 自定义配置文件
bash
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)。
3. Docker Compose 示例
yaml
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
指标采集与 URL 参数
基础采集 URL
http://<exporter-ip>:9116/snmp?target=<device-ip>&module=<module>&auth=<auth>
关键参数说明
参数描述示例
targetSNMP 设备地址,支持 [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_contextSNMP 上下文名称(覆盖 snmp.yml 中的 context_name)vrf-mgmt
snmp_engineidSNMP 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 生成。

结构示例
yaml
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
Prometheus 集成配置
Prometheus 配置示例(prometheus.yml)
yaml
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']
TLS 与基本认证配置

通过 --web.config.file 指定 Web 配置文件,启用 TLS 和基本认证。示例配置(web-config.yml):

yaml
tls_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:

  1. 下载 generator 并安装。
  2. 编写 generator 配置(如 generator.yml),指定 MIB 路径和模块定义。
  3. 生成配置:
    bash
    ./generator generate --config.file=generator.yml --output.file=snmp.yml
    
大计数器处理

默认情况下,exporter 会将 64 位计数器(Counter64)值截断为 2^53(避免 Prometheus 浮点精度丢失)。如对接非 Prometheus 系统需禁用此功能:

bash
docker run -d -p 9116:9116 --name snmp-exporter prom/snmp-exporter --no-snmp.wrap-large-counters

贡献与扩展

  • 配置贡献:自定义 snmp.yml 及 generator 配置可贡献至 官方仓库。
  • 监控规则与仪表盘:可提交至 snmp-mixin 项目,共享仪表盘、告警规则等。
查看更多 snmp-exporter 相关镜像 →
prom/prometheus logo
prom/prometheus
by prom
Prometheus(简称Prom)是一款开源的监控与告警系统,由SoundCloud发起,现为云原生计算基金会(CNCF)毕业项目,采用时序数据库存储监控指标,支持多维度数据模型和PromQL查询语言,可通过静态配置或动态服务发现机制采集数据,并能基于自定义规则触发告警,广泛集成于Kubernetes等云原生环境,为分布式系统提供可靠的性能监控与问题诊断能力。
20391B+ pulls
上次更新:6 天前
prom/node-exporter logo
prom/node-exporter
by prom
prom/node-exporter 是 Prometheus 开源生态中的核心主机监控组件,主要用于采集并通过 HTTP 接口暴露 Linux、Windows、macOS 等操作系统的系统级运行指标,包括 CPU 使用率、内存占用、磁盘空间与 I/O 性能、网络流量与连接状态、进程信息及系统负载等关键数据,为 Prometheus 提供底层主机监控数据源,支持用户构建全面的服务器性能监控与告警体系,广泛适用于物理机、虚拟机及容器化环境的基础监控场景。
4011B+ pulls
上次更新:14 天前
prom/alertmanager logo
prom/alertmanager
by prom
prom/alertmanager是Prometheus生态的告警管理组件,用于处理来自Prometheus服务器等客户端的告警,提供去重、分组、路由至邮件/PagerDuty等接收器的功能,并支持告警静默和抑制,确保告警高效分发与管理。
244100M+ pulls
上次更新:7 天前
prom/pushgateway logo
prom/pushgateway
by prom
Prometheus Pushgateway是用于接收临时性或批处理作业指标数据并将其暴露给Prometheus服务器抓取的中间件,解决非持续运行作业的指标收集问题。
86100M+ pulls
上次更新:1 个月前
prom/blackbox-exporter logo
prom/blackbox-exporter
by prom
Blackbox Exporter是Prometheus生态的黑盒探测工具,支持通过HTTP、HTTPS、DNS、TCP、ICMP和gRPC协议对目标端点进行探测,提供探测成功率等指标,用于监控端点可用性和性能。
104100M+ pulls
上次更新:6 天前
prom/statsd-exporter logo
prom/statsd-exporter
by prom
接收StatsD风格指标并将其转换为Prometheus指标的转换器,支持通过映射规则定义指标名称和标签,兼容Librato、InfluxDB等多种标签格式,可作为边车或中继运行,实现StatsD到Prometheus的平滑过渡。
24100M+ pulls
上次更新:2 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
prom/snmp-exporter
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
咨询镜像拉取问题请 提交工单,官方技术交流群:13763429
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429