なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

YAMAHA RTX1300 の各種メトリクスを Mackerel に登録したい

YAMAHA の 10G ルーター RTX1300 をフォロワーに貢いで貰った。 このままほぼデフォルトで使ってもいいが、せっかくの高級ネットワーク機器なのでいろいろやってみたい。 調べたところ SNMP というプロトコルで各種データが取れるようなので、それらを Mackerel に送信するところまでをやってみる。

構成としては以下のように組んで、 Raspberry Pi に mackerel-agent をインストールし、それ経由で Mackerel へデータを送信する。

RTX1300 --> Raspberry Pi --> Mackerel

まずはデバッグ用に SNMP を喋るコマンドを入れる。

$ sudo apt install snmp

これで SNMP を喋るようになったので、まずはデフォルト設定で繋げるかどうかを確かめてみる。

$ snmpwalk -v 2c -c public 192.168.100.1 1.3.6.1.2.1.1
Timeout: No Response from 192.168.100.1

デフォルトではアクセスできない様子なので、アクセスできるようにする。

まず、対象となる Raspberry Pi からアクセスできるように、アクセスを許可する。

# Terminal 1 - RTX1300
$ ssh 192.168.1.100
> administrator
> snmpv2c host 192.168.100.2 public

設定したら、アクセスできるかどうかを確かめる。

# Terminal 2 - Raspberry Pi
$ snmpwalk -v 2c -c public 192.168.100.1 1.3.6.1.2.1.1
iso.3.6.1.2.1.1.1.0 = STRING: "RTX1300 Rev.23.00.13 (Wed Jun 19 09:13:13 2024)"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.1182.1.72
iso.3.6.1.2.1.1.3.0 = Timeticks: (252589583) 29 days, 5:38:15.83
iso.3.6.1.2.1.1.4.0 = ""
iso.3.6.1.2.1.1.5.0 = ""
iso.3.6.1.2.1.1.6.0 = ""
iso.3.6.1.2.1.1.7.0 = INTEGER: 12

帰ってきたのでよさそう。 次に欲しいデータの MIB を取得する。 今回はこんな感じのデータを取得していく。

MIB名 OID データ例
CPU使用率(1 分平均) - CPU 0 yrhMultiCpuUtil1min 1.3.6.1.4.1.1182.2.1.18.1.4.1 0
CPU使用率(1 分平均) - CPU 1 yrhMultiCpuUtil1min 1.3.6.1.4.1.1182.2.1.18.1.4.2 0
CPU使用率(1 分平均) - CPU 2 yrhMultiCpuUtil1min 1.3.6.1.4.1.1182.2.1.18.1.4.3 0
CPU使用率(1 分平均) - CPU 3 yrhMultiCpuUtil1min 1.3.6.1.4.1.1182.2.1.18.1.4.4 0
メインメモリー使用率 yrhMemoryUtil 1.3.6.1.4.1.1182.2.1.4.0 31
受信オクテット数 (WAN) ifInOctets 1.3.6.1.2.1.2.2.1.10.1 3429894881
受信オクテット数 (LAN) ifInOctets 1.3.6.1.2.1.2.2.1.10.2 362031397
送信オクテット数 (WAN) ifOutOctets 1.3.6.1.2.1.2.2.1.16.1 2801298872
送信オクテット数 (LAN) ifOutOctets 1.3.6.1.2.1.2.2.1.16.2 1749469093

これを Mackerel に投げる。 まずはホストを登録する。

# Terminal 2 - Raspberry Pi
$ mkr create --customIdentifier rtx1300 RTX1300

これでホストが作られたので、ここへ投稿していく。

設定はこんな感じ:

[plugin.metrics.rtx1300]
command = ["mackerel-plugin-snmp", "-community", "public", "-host", "192.168.100.1", ".1.3.6.1.4.1.1182.2.1.18.1.4.1:yrhMultiCpuUtil1min.1:0:0:uint32", ".1.3.6.1.4.1.1182.2.1.18.1.4.2:yrhMultiCpuUtil1min.2:0:0:uint32", ".1.3.6.1.4.1.1182.2.1.18.1.4.3:yrhMultiCpuUtil1min.3:0:0:uint32", ".1.3.6.1.4.1.1182.2.1.18.1.4.4:yrhMultiCpuUtil1min.4:0:0:uint32", ".1.3.6.1.4.1.1182.2.1.4.0:yrhMemoryUtil:0:0:uint32", ".1.3.6.1.2.1.2.2.1.10.1:ifInOctets.wan:0:0:uint32", ".1.3.6.1.2.1.2.2.1.10.2:ifInOctets.lan:0:0:uint32", ".1.3.6.1.2.1.2.2.1.16.1:ifOutOctets.wan:0:0:uint32", ".1.3.6.1.2.1.2.2.1.16.2:ifOutOctets.lan:0:0:uint32"]
custom_identifier = "rtx1300"

受信・送信オクテット数は多分差分表示が正しいが、それは GUI から設定するものとする。 最終的にはこういうものができあがる。

よさそう。なのであとは好きにダッシュボードをいじったら完成!よくできました! ということで、設定してみたブログでした。ではでは。

参考: