将 snmp-exporter prometheus 连接到 cisco 交换机

问题描述 投票:0回答:1

我有一个关于 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 我没有任何网络或防火墙问题。

docker docker-compose prometheus snmp
1个回答
0
投票

错误 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。

© www.soinside.com 2019 - 2024. All rights reserved.