核心要点摘要
- SNMP Exporter 是一种通用 Prometheus Exporter,可通过 SNMP 协议从网络设备或其他 SNMP 端点采集指标。
- 使用 SNMP Exporter 的核心步骤是配置模块、指定目标设备、配置 community 和 OID,再让 Prometheus 抓取
/snmp路径。 - SNMP 指标采集是否成功,关键取决于设备地址、认证信息、OID 和 SNMP 版本是否匹配。
- 这篇文章原本是一次 NotionAI 写作样例,内容适合作为入门理解,但生产配置仍应结合实际设备和采集器文档校验。
chatGPT 真的是太火爆了,Notion 跟进,现在 Office 也跟进,对文字工作者是非常大的冲击。下面这个文章《SNMP Exporter 的使用样例和注意事项》原本完全由 NotionAI 生成,当时我一行都没改,保持原汁原味给大家感受一下。这里在不改变原意的基础上,把结构整理得更适合阅读和检索。
SNMP Exporter 是什么
SNMP Exporter 是一种通用的 Prometheus Exporter,可以从 SNMP 端点收集指标。它提供了一种简单方式,让 Prometheus 通过 SNMP 协议采集系统指标、网络设备指标或其他支持 SNMP 的设备指标。
在这个链路里,SNMP Exporter 负责和 SNMP 设备通信,Prometheus 负责定期抓取 Exporter 暴露出来的指标。理解这层分工很重要:设备不一定直接暴露 Prometheus 格式指标,但可以通过 SNMP Exporter 做协议转换。
配置样例
使用 SNMP Exporter 收集指标需要一定的配置。下面是一个样例配置:
modules:
- name: example
target: 192.168.1.1
community: public
metrics:
- name: system_uptime
oid: 1.3.6.1.2.1.1.3.0
- name: cpu_load
oid: 1.3.6.1.4.1.2021.10.1.3.1
在上面的配置中,我们定义了一个名为 example 的模块。它将收集来自 IP 地址为 192.168.1.1 的设备的指标。我们使用公共社区字符串 “public” 进行身份验证。然后,我们定义了两个指标:系统运行时间和 CPU 负载。
这个配置里最关键的字段有四类:
| 字段 | 作用 |
|---|---|
name |
模块名称,用于区分不同采集配置。 |
target |
被采集设备的 IP 地址。 |
community |
SNMP v1/v2c 常见认证信息,这里示例为 public。 |
metrics |
要采集的指标列表,每个指标需要名称和 OID。 |
启动 SNMP Exporter
在配置文件中定义了模块后,我们可以启动 SNMP Exporter:
./snmp_exporter -config.file=snmp.yml
现在,SNMP Exporter 将开始在端口 9116 上公开指标。
配置 Prometheus 抓取
我们可以使用 Prometheus 将这些指标收集到一个时间序列数据库中:
scrape_configs:
- job_name: 'snmp'
metrics_path: /snmp
static_configs:
- targets:
- 192.168.1.1:9116
在上述配置中,我们定义了一个名为 snmp 的作业。我们告诉 Prometheus 在 /snmp 路径上查找指标,并使用我们刚刚配置的 IP 地址收集它们。
这一步的结果是:Prometheus 定期访问 SNMP Exporter 的 /snmp 路径,抓取 Exporter 转换后的指标数据。后续就可以在 Prometheus 查询、告警或接入 Grafana 展示。
注意事项
在使用 SNMP Exporter 时,需要注意以下事项:
- 确保您知道要收集的设备的 IP 地址和 SNMP 社区字符串。
- 确保您正在收集的指标的 OID 值正确。
- SNMP Exporter 默认情况下使用 v2c 版本的 SNMP 协议。如果您需要使用其他版本,请在配置文件中明确指定。
此外,生产环境里还要注意两个边界:第一,public 只是示例 community,实际设备应使用符合内部安全要求的配置;第二,不同厂商、型号的 OID 可能不同,配置前要确认设备 MIB 和需要采集的指标。
结论
SNMP Exporter 是一种简单而有效的从 SNMP 设备收集指标的方法。最小链路包括:准备 SNMP 设备地址和认证信息,配置要采集的 OID,启动 SNMP Exporter,然后让 Prometheus 抓取 Exporter 暴露的 /snmp 指标。使用以上样例和注意事项,您可以开始使用 SNMP Exporter 收集系统或网络设备指标。
FAQ
Q1:SNMP Exporter 直接存储指标吗? A:不直接存储。SNMP Exporter 负责从 SNMP 端点采集并暴露指标,Prometheus 负责抓取并存储时间序列数据。
Q2:示例里的 public 可以直接用于生产吗?
A:public 只是示例 community。生产环境应使用设备端实际配置的认证信息,并遵守内部安全要求。
Q3:OID 配错会发生什么? A:采集器可能无法获取指标,或者拿到的指标不是预期数据。配置前需要确认目标设备支持的 MIB 和 OID。
