展示・サイネージ用のMacをMackerelで監視する

よくよく展示だかサイネージだかでMacを導入するのですが

立派な一台のサーバーなわけで。安定運用したいのです。
Macが起動しなくなってたら教えてほしいのです。

だけど、サーバーエンジニアがやってるようなちゃんとしたのはめんどくさいな。
作るのそこじゃないから。見積もり増えるし。

って要件で色々調べてたところ、先輩エンジニアが作ってたmackerelがなんか良さそうと。

mackerel.io

  • homebrewでMacにもインストールできる
  • 専用コンソールでステータスを見れる
  • プラグイン形式で独自のステータスを投稿出来る
  • デフォルトで、CPU、メモリ、ディスク空きとかは監視
  • 普通のpostリクエスト形式でも投稿できる
  • コンソールが他のよりおしゃれ
  • slack連携ある

※ 展示用だと5台の範囲に収まるので、無料の範囲でも結構楽しめるけど、
一応有料サービス。このシステム作る工数分かなり浮くので。これの運用費も払ってくれない案件だったら、落ちてもいいってことで使わなくていいんじゃないかな…。

1.homebrew使ってインストール

一番homebrewをつかってインストールするのが簡単そう。
Mackerel で MacBook のバッテリー残量を記録する話 - ちなみに
こちらを参考にすればほぼ大丈夫かと。

2.homebrewも使わないでインストール

展示だとまっさらな状態のMacにしたいことが多いので。バイナリからインストールする場合はこちらを参考に。
mackerel.io

自動起動にするには、

# でLaunchDaemonsに登録
sudo launchctl load -w /Library/LaunchDaemons/job.mackerl.plist

サンプル活用例:Macの温度を マカレルに送る。

例えば、MacのCPU温度を監視するとか。
GitHub - asus4/mackerel-osx-cpu-temp: Outputs current CPU temperature for OSX

mackerel-agent.confに以下を足せばプラグインになります。プラグイン作るのも簡単。

[plugin.metrics.cputemp]
command = "/PATH_TO/mackerel-osx-cpu-temp"

カスタムメトリクスを送る。

Unityとか、oFのアプリからの値をポストも出来ます。
アプリのfps監視して50以下になった時に、自分のslackチャンネルとメールに警告送る。
とか出来ます。

github.com
よく使いそうなoF作りました。

github.com
よく使いそうなUnity作りました。


安定稼働がんばります。