やりたいこと
MackerelにRaspberry Piの温度を測定するカスタムメトリクスを導入し、閾値を超えるとアラートを飛ばすようにする。
経緯
先日、自宅にRaspberry Piを導入し、Mackerelで監視を行っている。
CPUやMemoryなどの基本的なメトリクスは最初から利用できるが、温度に関しては存在しないのでカスタムメトリクスとして作成する。
カスタムメトリクスの作成
公式:ホストのカスタムメトリックを投稿する
上記公式のページを参照すると、カスタムメトリクスをプラグインとして動作させること、{metric name}\t{metric value}\t{epoch seconds}
という出力を期待されていることが分かる。
Raspberry Piの温度自体はvcgencmd measure_temp
で取得できる。
そこで、シェルスクリプトtemp.sh
を作成し整形してMackerelプラグインのフォーマットに合わせる。
#!/bin/bash
SECONDS=$(date '+%s')
NAME='temperature.cpu'
VALUE=$(vcgencmd measure_temp | grep -o -e "[0-9]\+\.[0-9]\+")
echo -e "${NAME}\t${VALUE}\t${SECONDS}"
作成したプラグインをmackerel-agent.conf
に追記することで、メトリクスを送信するようになる。
再起動が必要なので忘れずに
~~
[plugin.metrics.temp]
command = "/path/to/temp.sh"
モニターへの追加
Monitors → metric monitor → 作成したメトリクスを選択
warning、criticalの閾値を設定することで、アラートを飛ばすことができた。