Posted at

Raspberry Pi を Mackerel で監視する

More than 1 year has passed since last update.

最近 Raspberry Pi をよく使うので監視が欲しくなり、手軽に導入できる Mackerel を採用しました。

Raspberry Pi でなくても Linux + ARM のコンピュータなら、この方法で導入出来ると思います。

※ Raspberry Pi Zero, Raspberry Pi 3 で動作確認済み。


インストール

GitHub で release されているバイナリを配置します。

https://github.com/mackerelio/mackerel-agent/releases


ダウンロードと展開


v0.37.1の場合

curl -sL https://github.com/mackerelio/mackerel-agent/releases/download/v0.37.1/mackerel-agent_linux_arm.tar.gz | tar xz



バイナリと設定ファイルの配置

sudo mkdir -p /usr/local/bin /etc/mackerel-agent

sudo cp mackerel-agent_linux_arm/mackerel-agent /usr/local/bin
sudo cp mackerel-agent_linux_arm/mackerel-agent.conf /etc/mackerel-agent


API Key の設定

API Key は オーガニゼーションのページ に記載されています。

sudo mackerel-agent init -apikey="YOUR API KEY"


Service として登録

そのまま起動しても良いのですが、最新の Raspbian なら systemd が使えるので service として登録しましょう。


/lib/systemd/system/mackerel-agent.service

[Unit]

Description=mackerel-agent
After=network.target network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mackerel-agent
ExecReload=/bin/kill -HUP $MAINPID
KillMode=control-group
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=mackerel-agent.service



自動起動の有効化と起動

sudo systemctl enable mackerel-agent

sudo systemctl start mackerel-agent


カスタムメトリックの追加

Raspberry Pi が熱暴走しないか監視したいので、 CPU 温度をカスタムメトリックとして投稿できるようにします。


CPU 温度を取得する shell script

実行するために bc が必要なのでインストールしておきます。

sudo apt install bc


temp.sh

#!/bin/bash

# ref: https://github.com/ymyzk/mackerel-plugins/blob/master/raspberrypi/temp.sh
SECONDS=`date '+%s'`

NAME='temperature.cpu'
TEMP=`cat /sys/class/thermal/thermal_zone0/temp`
VALUE=`echo "scale=3; ${TEMP} / 1000" | bc`
echo -e "${NAME}\t${VALUE}\t${SECONDS}"



設定ファイルに追記


/etc/mackerel-agent/mackerel-agent.conf

[plugin.metrics.temp]

command = "/path/to/temp.sh"


参考