1. kontotto

    Posted

    kontotto
Changes in title
+Raspberry Piの温度をMackerelで監視し、アラートを飛ばす
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,38 @@
+## やりたいこと
+MackerelにRaspberry Piの温度を測定するカスタムメトリクスを導入し、閾値を超えるとアラートを飛ばすようにする。
+
+![mackerel.png](https://qiita-image-store.s3.amazonaws.com/0/132463/e65469f3-a84e-111a-9e70-bd6e822c4fe6.png)
+
+## 経緯
+先日、自宅にRaspberry Piを導入し、Mackerelで監視を行っている。
+CPUやMemoryなどの基本的なメトリクスは最初から利用できるが、温度に関しては存在しないのでカスタムメトリクスとして作成する。
+
+## カスタムメトリクスの作成
+公式:[ホストのカスタムメトリックを投稿する](https://mackerel.io/ja/docs/entry/advanced/custom-metrics)
+上記公式のページを参照すると、カスタムメトリクスをプラグインとして動作させること、`{metric name}\t{metric value}\t{epoch seconds}`という出力を期待されていることが分かる。
+
+Raspberry Piの温度自体は`vcgencmd measure_temp`で取得できる。
+そこで、シェルスクリプト`temp.sh`を作成し整形してMackerelプラグインのフォーマットに合わせる。
+
+```bash
+#!/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の閾値を設定することで、アラートを飛ばすことができた。