見出し画像

Prometheus で YAMAHA RTX830 ルータを監視する

YAMAHA RTX830 ルータの監視こそがメインみたいなもんです。
ようやく RTX830 のほとんどの情報を取得するところまで来ました。

prometheus.yml の内容

結論です。prometheus.yml はこうなりました。

(前略)
scrape_configs:
  :
(中略)
  :
  - job_name: 'snmp.rtx830'
    scrape_interval: 60s
    static_configs:
      - targets:
        - 192.168.0.254
    metrics_path: /snmp
    params:
      module: [rtx830, if_mib]
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - source_labels: [type]
        target_label: __param_module
      - target_label: __address__
        replacement: snmp:9116

YAMAHA の Private MIB は、SNMP の generator では取得できないので、個別に設定が必要です。それだけでは全ての情報を取得することができないので、`module:` に必要な snmp のモジュールを付け足していけば良い様です。

事前準備など

こちらにある通りに準備をすれば良いのですが、RTX3000向けなので、RTX830向けには一工夫します。

generator.yml は次の通りです。YAMAHA の Private MIB をダウンロードして `mibs` ディレクトリに放り込んだ後、`generator.yml` に次の内容を加えてから、`generate` すれば良いです。さすれば必要な snmp.yml はでき上がるでしょう。Revision とTemperatureは結局取得できなかったけれども。

#
# YAMAHA rtx series
#
  rtx830:
    walk:
      - yrhCpuUtil5sec
      - yrhCpuUtil1min
      - yrhCpuUtil5min
      - yrhMultiCpuTable
      - yrhMultiCpuName
      - yrfRevision
      - yrhInboxTemperature
      - yrfUpTime
      - yrhMemoryUtil
      - yrhMemorySize

snmp.yml ができたら、docker で snmp-exporter を実行できるようにすれば完成です。Prometheus の exporter ってどっちに依存すべきなんだろう。もしかして逆かな。

(前略)
  :
  snmp:
    image: prom/snmp-exporter
    container_name: snmp_exporter
    depends_on:
      - prometheus
    links:
      - prometheus
    volumes:
      - '/var/lib/snmp/snmp.yml:/etc/snmp_exporter/snmp.yml'
    ports:
      - "9116:9116"
  :
(後略)

さて取得できるようになったので、あとは Grafana で可視化。それはまた次回。

参考資料・サイト

今回参考にしたのは、以下の書籍とサイトです。


貴方がサポートしてくれると、私が幸せ。 私が幸せになると、貴方も幸せ。 新しいガジェット・ソフトウェアのレビューに、貴方の力が必要です。