mackerel-agent + snmpで RTX1200 のメトリクス取得
検索すると Lua スクリプトを RTX にいれる方法もあるみたいだが、別途プロキシが必要みたいなので LAN 内の raspberrypi から SNMP で取得して投げるほうを選んでみた。raspberrypi には既に mackerel-agent が入れてあるので、追加の設定をするだけ。
mackerel-agent-plugins
mackerel-agent は arm 版もリリースされているが、プラグインはリリースされていない。自分でビルドする必要がある。
mackerel-plugin-snmp だけあればいいので、mackerel-plugin-snmp のディレクトリで
env GOOS=linux GOARCH=arm GOARM=5 go build
するだけでバイナリができる。できたバイナリを raspberrypi の /usr/local/bin とかにコピーしておく。
設定
SNMP で取得するが、 mackerel の custom_identifier でホスト分けて表示する。
まず mkr create でホストをつくる
mkr --customIdentifier router1 router1
ここで指定した customIdentifier をプラグインの設定に書くとこちらのホストに投稿したことになる。
[plugin.metrics.snmp-router] command = "mackerel-plugin-snmp -community='public' -host='192.168.0.1' .1.3.6.1.2.1.2.2.1.16.1:ifOutOctets.2 .1.3.6.1.2.1.2.2.1.10.1:ifInOctets.2 .1.3.6.1.4.1.1182.2.1.15.0:temp.yrhInboxTemperature .1.3.6.1.4.1.1182.2.1.4.0:memory.yrhMemoryUtil .1.3.6.1.4.1.1182.2.1.5.0:cpu.yrhCpuUtil5sec .1.3.6.1.4.1.1182.2.1.6.0:cpu.yrhCpuUtil1min .1.3.6.1.4.1.1182.2.1.7.0:cpu.yrhCpuUtil5min" custom_identifier = "router1"
SNMP の OID を調べるのがめちゃくちゃ面倒くさいがだいたい上記ぐらいでいいだろう。
この方法の欠点
- cpu やメモリのメトリクスは mackerel で特別扱いされているが、この方法だとすべて snmp.* のメトリクスになってしまう
関連エントリー
- h2o の status/json を mackerel に送る mackerel にメトリクスとして送る mackerel-plugin-h2o みたいなのは今のところないっぽい? ので、status/j...
- RTX1200 prometheus exporter Lua スクリプト RTX1200 から直接 prometheus 形式でメトリクスを取得できる Lua スクリプトを書いた。 prometheus + gra...
- capacitor で Android 向けに minifyEnabled true Android では、アプリのサイズをできるだけ減らしたりするために、リリース前にアプリ全体のコードの最適化 (いわゆるツリーシェイキング)...
- Raspberry Pi から HDMI-CEC コントロール サイネージ HDMI CEC 連携 カレンダーを表示するおうちサイネージ というのを作っていたがモニタの置き場がなくなってしまったので、テレ...
- Prometheus から VictoriaMetrics への移行(Ubuntu, systemd) 自宅ラズパイのメトリクスとかセンサー類を VPS 上の prometheus に溜めているけど、1年分で12GBぐらいと、用途の割にかなり大...