文章目录
1. 目的
本文档旨在提供使用Prometheus监控网络设备(如交换机、路由器、防火墙等)的标准操作流程(SOP),确保网络设备的状态、性能及可用性得到有效监控。
2. 适用范围
适用于使用Prometheus监控基于SNMP/API/SSH等协议的网络设备,包括但不限于:
- 交换机(Cisco、Huawei、HPE等)
- 路由器(Juniper、MikroTik等)
- 防火墙(FortiGate、Palo Alto等)
3. 前提条件
- Prometheus Server 已部署并运行
- Grafana(可选,用于可视化)
- 网络设备支持SNMP/API/SSH(确保SNMP community/API密钥/SSH凭据可用)
- Exporter(如
snmp_exporter
、blackbox_exporter
等)已部署
4. 详细操作步骤
4.1 配置网络设备SNMP(以Cisco为例)
enable
configure terminal
snmp-server community public RO # 设置SNMP只读Community(建议替换为强密码)
snmp-server host <Prometheus_IP> version 2c public # 允许Prometheus访问SNMP
exit
write memory # 保存配置
4.2 部署SNMP Exporter
4.2.1 下载并安装snmp_exporter
wget https://github.com/prometheus/snmp_exporter/releases/download/v0.21.0/snmp_exporter-0.21.0.linux-amd64.tar.gz
tar -xvf snmp_exporter-0.21.0.linux-amd64.tar.gz
cd snmp_exporter-0.21.0.linux-amd64
./snmp_exporter --config.file=snmp.yml &
4.2.2 配置snmp.yml
修改snmp.yml
(默认支持Cisco、Juniper等设备):
modules:
if_mib:
walk:
- 1.3.6.1.2.1.2 # 接口信息
- 1.3.6.1.2.1.31.1.1 # 接口扩展信息
version: 2
auth:
community: public # 替换为设备的SNMP Community
4.3 配置Prometheus采集SNMP数据
修改prometheus.yml
,添加snmp_exporter
job:
scrape_configs:
- job_name: 'snmp'
static_configs:
- targets:
- 192.168.1.1 # 交换机IP
- 192.168.1.2 # 路由器IP
metrics_path: /snmp
params:
module: [if_mib]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: <SNMP_EXPORTER_IP>:9116 # snmp_exporter地址
重启Prometheus:
systemctl restart prometheus
4.4 验证数据采集
访问 http://<Prometheus_IP>:9090/targets
,确认SNMP target状态为 UP。
4.5 (可选)配置Grafana仪表盘
- 添加Prometheus数据源
- 导入SNMP仪表盘(如ID:
10567
,Cisco设备监控模板)
5. 监控指标说明
指标名称 | 说明 |
---|---|
ifOperStatus | 接口状态(1=UP, 2=DOWN) |
ifInOctets | 接口接收字节数 |
ifOutOctets | 接口发送字节数 |
sysUpTime | 设备运行时间 |
icmp_ping | 网络延迟(需结合blackbox_exporter ) |
6. 告警规则配置(示例)
在Prometheus alert.rules
中添加:
groups:
- name: network_alerts
rules:
- alert: InterfaceDown
expr: ifOperStatus == 2
for: 5m
labels:
severity: critical
annotations:
summary: "Interface down on {{ $labels.instance }}"
description: "Interface {{ $labels.ifDescr }} is DOWN"
7. 故障排查
问题 | 解决方案 |
---|---|
SNMP超时 | 检查设备SNMP配置、防火墙规则 |
无数据 | 验证Prometheus target状态,检查snmp_exporter 日志 |
指标不全 | 检查snmp.yml 是否包含对应OID |
8. 维护与优化
- 定期检查:确保SNMP Exporter和Prometheus运行正常
- 更新MIB库:根据设备型号调整
snmp.yml
- 优化查询:避免高频采集影响设备性能
9. 参考文档
此SOP提供了完整的Prometheus监控网络设备的流程,涵盖配置、采集、告警和可视化,适用于企业级运维场景。