うちのRaspberry Pi2の仕事が増えてきた。もちろん、止まってもそれほど大した被害はないんだけど、「何か問題が起きたらすぐ分かるように監視できればなぁ」という程度にはモニタリングしたくなった。
ちょっと調べてみたら、はてなが提供している監視サービスMackerelに、Freeプランがあるようだ。僕のような趣味ベースのユーザーが試してみるには打ってつけじゃないの。
ということでRaspberry Pi2にMackerelのエージェトを導入して監視を始め、問題があったら家庭で使っているチャットツールSlackに通知してもらうところまで試してみた。
このエントリーはその作業メモで、分からないことは全てググって解決できたので、自分で新たに発見した知見は特にない。
Mackerelの試用開始とエージェントの導入
基本的に、下記のDevelopers.IO記事を参考にしながら、サインアップと導入作業を進めてみた。約1年半前の記事で、今は少し違っている点もあるけれど、基本的な流れは全く変わらない。
アカウント作成
上記記事の通りに進めた。
- Mackerelのサインアップのページでメアドを登録する。
- 登録したメアドにMackerelから「[Mackerel] Please verify your email」というタイトルのメールが送られてくるので、中のリンクをクリックする。
- すると、パスワード設定ページが開くので、パスワードを指定する。これでアカウントは作成できた。
- その後の手順は、全部Mackerelが1ステップずつ導いてくれるので、organizationの設定から一つずつ進めていけばOK。
要注意点:エージェントの導入
ここでは、上記手順の4の中で一カ所だけ躓いた「Mackerelエージェントの導入」について、少し丁寧に書いておく。
Mackerelで監視を行うには、監視対象のサーバに「エージェント」をインストールする必要がある。
まずは、Mackerelのガイダンス通りにダウンロードとインストールを進めてみる。
方法1: apt-get → 失敗
二通りやり方が書いてあるうちの一つ目、apt-get
による導入を試してみた。
ありゃ、対応パッケージが無いらしい。きっと、Raspberry PiのCPUであるARM用のパッケージが用意されてないのね。
方法2: 手作業でダウンロードとインストール → 失敗
ということで、もう一つの方法である「手作業」の手順を踏んでいく。
ここまでは問題無かった。ただ、次の手順でエージェントをstartさせようとすると、失敗した。
ログ/var/log/mackerel-agent.log
の内容を確認してみる。
うーん、手作業でもARM対応のエージェントをインストールできてない、ということかな ?
ARM対応版のファイルを入手して解決!
ググると、すぐに同じ問題について書き残してくれている記事が見つかった。
この記事によると、
この状態だと設定ファイル類は正しく存在するのですが肝心のバイナリが i386 になっていて正常に動作しません。
とのこと。やっぱりか。
解決方法も書いてくれてあったので、それをなぞる。
まずは、GitHubのリポジトリから、Linux用、かつARM用のmackerel-agent_linux_arm.tar.gz
ファイルをダウンロードする。
これを解凍し、file
コマンドでエージェントファイルを確認。
よしよし。これでエージェントファイルを上書きし、startしてみる。
起動に成功した。ログ/var/log/mackerel-agent.log
の内容も再度確認しておく。
よろしいでしょう!
あとは、Mackerelのガイダンス通りに進めていけば、ノートラブルでモニタリングを開始できた。
監視対象のサーバがどういうものなのか、についてもこのダッシュボードから参照できる。
うん、このスペックは、まさにうちのRaspberry Pi2であります!
Slackへの通知設定
Mackerelデフォルトの通知先は、アカウント作成時に登録したメールアドレスになっている。
サービス運営からの「お知らせ」はメールで受け取りたいけど、問題が起きたときの通知(アラート)はSlackの方で受け取りたい…と思ったので、その設定をしてみた。
といっても方法は簡単で、Mackerelのヘルプに丁寧な説明が用意されているので、その手順をなぞっただけ。
家庭内チャットツールとして使っているSlackの中で、僕だけが開発用に読み書きしている#dev
チャネルにメッセージを送ってもらうように設定してみた。
テストしてみると…
できた!
サーバをわざと落としてみる
あとは、何かトラブルが起きるのを待つのみ?自分でRaspberry PiへのUSB給電を引っこ抜いてみるか?(^^;;)
いきなり引っこ抜くのはさすがに乱暴なので、おとなしくシャットダウンしてから電源を断ったら…
Slackに通知キタ━━━━(゜∀゜)━━━━━!!!
しかも、なんかサーバを見失うまでのグラフまで付いてる。(笑)
それから、USB給電を復活させた。すると、すぐに「復活しました」通知も来た。
いいね!ちゃんと機能してるじゃないの。
まとめ
デフォルトのパッケージにはARM用のエージェントが入っておらず、それをGitHubからダウンロードするところだけ躓いたけど、それを除けばスムーズに監視を開始できた。良くできているなぁ。
うちのRaspberry Piがどういう状況なのか、これまで可視化はおろか確認もしたことがなかったので、今後はMackerelのダッシュボードで時々チェックしてみようと思う。楽しみ!(^^)/
Comments