MackerelでRaspberryPiの監視

投稿日: カテゴリー IoT

先日届いたRaspberryPiだけど、昨日WiFiのIPアドレス設定まで完了したので、今日からはSSHで接続ができるようになった。

色々やるのに、Slackへの通知だったり、Mackerelへのグラフ表示は必須かなと思い、RaspberryPiへMackerel-agentをインストールすることにした。
RaspberryPiはARMのCPUなので、そのままMackerelのヘルプに書いてある通りにインストールしても動かない。

実行ファイルを変えてやるだけで動くらしく、手順については下記サイトを参考にさせてもらった。

実際に実行するコマンドは下記でいける。

$ curl -LO https://mackerel.io/file/agent/deb/mackerel-agent_latest.all.deb
$ sudo dpkg -i mackerel-agent_latest.all.deb
$ curl -LO https://github.com/mackerelio/mackerel-agent/releases/download/v0.17.1/mackerel-agent_linux_arm.tar.gz
$ tar xfvz mackerel-agent_linux_arm.tar.gz
$ sudo mv mackerel-agent_linux_arm/mackerel-agent /usr/bin/
$ sudo vim /etc/mackerel-agent/mackere-agent.conf
apikey = "<YOUR_API_KEY>"
※apikeyはMackerelのオーガニゼーションから確認できる。

$ sudo /etc/init.d/mackerel-agent start

これで、標準監視はできるようなったと思う。

これだけだとつまらないので、CPUの温度とかカスタムメトリックで取れるようにしたいなと思い、雑に下記のようなスクリプトを作った。

#!/bin/bash

name="procs.count.measure_temp"
monitor_time=`date +%s`
count=`vcgencmd measure_temp | awk -F"=" '{print $2}' | sed "s/'C//g" `
echo -e "${name}\t${count}\t${monitor_time}"

Mackerel的にはタブ区切りで、上記情報が得られれば良いらしい。細かい仕様についてはMackerelのサイトで確認してほしい。

[plugin.metrics.measure_temp]
command = "/usr/local/bin/measure_temp.sh"

こんな感じで、Mackerelのconfに書いてあげて、agentをrestartしてあげればOK。

measure_temp

こんな感じでメトリクスが取れるようになった。
負荷かけてるわけではないので、54℃ちょいで推移していたけど、試しにddしたら、温度が1℃あがった笑

これからセンサーとか買って、色々試していきたい。