RTX1300のメトリクスをPrometheus+Grafanaで可視化する

V6プラス固定IPに変更したタイミングでRTX1300を自宅に導入しました。

簡単にいくつかのメトリクスをPrometheus+Grafanaで可視化しました。
大まかな手順とサンプルコードについては、砂場レポに放り込んであるのでこちらを参考にしてください。

github.com

手順にそって作業すれば、おおよそこういう見た目になります。

中々いい感じですね。

手順については触れませんが、作業をした時のいくつかのポイントについて書いておきます。

大まかな構成と注意点

今回は、SNMP Exporterを使ってSNMPでRTX1300のメトリクスを収集し、Grafanaで可視化するような構成にしています。

サンプルコードでは、気軽に実行できるようにdocker-copmoseにしています。

また、執筆時点(23.00.04)で取得できない項目がいくつかあったので、先にそれらの項目について書いておきます。

  • yrfRevision # reivsion
  • yrhInboxTemperature # 温度

これらの値は、SNMPで取得することは現時点だとできませんでした。

メトリクスを収集する間隔

サンプルコードでは、5秒間隔でメトリクスを収集しています。

- job_name: 'snmp.rtx1300'
  scrape_interval: 5s
  static_configs:
    - targets:
        - 192.168.100.1 # Change to IP address of RTX1300
      labels:
        name: RTX1300
        vendor: yamaha

収集しているメトリクスの1つにyrhMultiCpuUtil5secというメトリクスがあるので5秒間隔にしています。
この間隔でもCPU使用率は、特定の1コアのみ1%程度上昇するだけなので負荷は全然ないと思って良さそうです。

snmp.ymlを生成する

SNMP Exporterで利用するsnmp.ymlを生成する必要がありますが、生成する環境を作るのが面倒だったので簡単なスクリプトを作っておきました。

generator.ymlで収集したいメトリクスを変更したりした後に./generate-snmp-config.sh を実行するだけで
snmp.ymlsnmp-exporterディレクトリ下に生成されます。

内容としては、snmp_exporterのgeneratorでbuildするための環境をDockerileで定義しているぐらいです。