簡體   English   中英

SNMP 導出器 (prometheus) + 擴展 OID

[英]SNMP Exporter (prometheus) + Extend OID

我是 Prometheus 的新手,我正在嘗試監視我使用 snmp_exporter 創建的一些擴展 OID,但它沒有按預期工作。

我的腳本只是執行“echo $VALUE”(值是整數或字符串)。

我有這個 snmpd.conf :

extend value-return-test /usr/local/bin/script.sh

我生成了他的 OID :

snmpwalk -v2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendResult.\"value-return-test\" -On

現在我可以得到所有的 snmp 擴展鏈接到我的配置:

snmpwalk -v2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendObjects |grep value-return-test

現在,這是我的 prometheus 配置 prometheus.yml :

global:
  scrape_interval: 5s

  - job_name: 'snmp'
    metrics_path: /snmp
    params:
      module: [tests]
    static_configs:
      - targets:
        - 127.0.0.1  # SNMP device - add your IPs here
    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  # SNMP exporter.

和我的 snmp.yaml :

tests:
  walk:
  - 1.3.6.1.4.1.8072.1.3.2.4.1.2.23.109.97.105.108.45.113.117.101.117.101.45.115.101.110.100.105.110.103.45.114.97.116.101.1
  - 1.3.6.1.4.1.8072.1.3.2.4.1.2.23.109.97.105.108.45.113.117.101.117.101.45.115.101.110.100.105.110.103.45.114.97.116.101.2
  metrics:
  - name: snmp_test1
    oid: 1.3.6.1.4.1.8072.1.3.2.4.1.2.23.109.97.105.108.45.113.117.101.117.101.45.115.101.110.100.105.110.103.45.114.97.116.101.1
    type: DisplayString
    indexes:
    - labelname: ifIndex
      type: Integer32
  - name: snmp_test2
    oid: 1.3.6.1.4.1.8072.1.3.2.4.1.2.23.109.97.105.108.45.113.117.101.117.101.45.115.101.110.100.105.110.103.45.114.97.116.101.2
    type: DisplayString
    indexes:
    - labelname: ifIndex
      type: Integer32

使用該配置,我無法在頁面http://localhost:9116/snmp?target=127.0.0.1&module=tests上獲取我的值:

# HELP snmp_scrape_duration_seconds Total SNMP time scrape took (walk and processing).
# TYPE snmp_scrape_duration_seconds gauge
snmp_scrape_duration_seconds 0.004676028
# HELP snmp_scrape_pdus_returned PDUs returned from walk.
# TYPE snmp_scrape_pdus_returned gauge
snmp_scrape_pdus_returned 0
# HELP snmp_scrape_walk_duration_seconds Time SNMP walk/bulkwalk took.
# TYPE snmp_scrape_walk_duration_seconds gauge
snmp_scrape_walk_duration_seconds 0.004477656

但是,如果我將我的配置放入其他塊中,例如 if_mib,我能夠獲取值但它們被放置在錯誤的位置: 在此處輸入圖片說明

如您所見,我得到的值是“1”而不是“6”。

我還嘗試了 snmp 導出器生成器,但無法構建它:

$ go build
# github.com/prometheus/snmp_exporter/generator
./net_snmp.go:6:38: fatal error: net-snmp/net-snmp-config.h: No such file or directory
compilation terminated.

謝謝你的幫助

如果您能夠更改snmpd.conf ,則意味着您對機器有足夠的控制權來運行節點導出器 我建議使用節點導出器的文本文件收集器來公開這些數據,而不是花時間弄清楚 SNMP 和 MIB 如何工作的復雜性。

一般來說,與使用 SNMP 相比,您應該盡可能選擇 Node/WMI 導出器。

使用 get 參數而不是 walk 對我有用。

tests:
  get:
  - 1.3.6.1.4.1.8072.1.3.2.4.1.2.23.109.97.105.108.45.113.117.101.117.101.45.115.101.110.100.105.110.103.45.114.97.116.101.1
  - 1.3.6.1.4.1.8072.1.3.2.4.1.2.23.109.97.105.108.45.113.117.101.117.101.45.115.101.110.100.105.110.103.45.114.97.116.101.2
  metrics:
  - name: snmp_test1
    oid: 1.3.6.1.4.1.8072.1.3.2.4.1.2.23.109.97.105.108.45.113.117.101.117.101.45.115.101.110.100.105.110.103.45.114.97.116.101.1
    type: DisplayString
    indexes:
    - labelname: ifIndex
      type: Integer32
  - name: snmp_test2
    oid: 1.3.6.1.4.1.8072.1.3.2.4.1.2.23.109.97.105.108.45.113.117.101.117.101.45.115.101.110.100.105.110.103.45.114.97.116.101.2
    type: DisplayString
    indexes:
    - labelname: ifIndex
      type: Integer32

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM