我有一个关于 snmp 导出器 Prometheus 的问题,我的问题是这个配置
version: '3'
networks:
monitoring:
external: true
volumes:
prometheus-data:
services:
prometheus:
image: prom/prometheus
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
- '--web.listen-address=:9091'
restart: unless-stopped
network_mode: host
snmp-exporter:
image: prom/snmp-exporter
container_name: snmp-exporter
command:
- '--config.expand-environment-variables'
volumes:
- ./snmp.yml:/etc/snmp_exporter/snmp.yml
restart: unless-stopped
network_mode: host
这是我的 prometheus.yml
global:
scrape_interval: 10s
evaluation_interval: 10s
scrape_configs:
- job_name: "prometheus"
scrape_interval: 5s
static_configs:
- targets: ["172.31.0.148:9091"]
- job_name: snmp
metrics_path: /snmp
params:
module: [if_mib]
static_configs:
- targets:
- 172.31.0.40:161
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9116
- job_name: 'snmp_exporter'
static_configs:
- targets: ['localhost:9116']
我收到此错误 服务器返回 HTTP 状态 400 错误请求 我在 snmp.yml 中添加了此项
head snmp.yml
# WARNING: This file was auto-generated using snmp_exporter generator, manual changes will be lost.
auths:
public_v2:
community: sasan
version: 2
modules:
apcups:
walk:
- 1.3.6.1.4.1.318.1.1.1.12
- 1.3.6.1.4.1.318.1.1.1.2
...
目的地是思科交换机,snmpwalk机器没问题,同时snmp for Zabex也在工作,从这台机器到我说的目的地。 来源:172.31.0.148 目的地:172.31.0.40 我没有任何网络或防火墙问题。
错误 400 通常是由于在 prometheus.yml 中使用了 snmp.yml 中未定义的模块名称引起的。
检查 snmp.yml 中的模块名称,了解您希望 prometheus 抓取的内容,并更新 prometheus.yml 以使用正确的模块名称。
您当前有 prometheus.yml 说要使用模块“if_mib”进行监控。看不到完整的 snmp.yml,但我所看到的显示您定义了一个名为“apcups”的模块。您只需从 snmp.yml 中复制为 Cisco 内容定义的正确模块名称,并将 prmetheus.yml 文件中的“if_mib”替换为该值,然后重新启动 prometheus。