TシャツもらったのでMackerel触ってみた

先週はてなセミナー行った際に、懇親会のじゃんけん大会に買って非売品のMackerelのTシャツをゲットしたのだけど、実はMackerel触ったことないとかいう非国民だったので、このTシャツ着るからには入門せざるを得ないということでMackerel触ってみた。

Mackerelとは鯖のことで、はてなが作ってるサーバ監視サービス。もともと社内のツールをサービスとして公開するためにフルスクラッチで作りなおしたのだとか。まぁ何はともあれアカウントを作ろう。
Mackerel: A Revolutionary New Kind of Application Performance Management
Githubアカウントと連携してログインできるようになってるので、Github認証してログイン。プランはFreeプランでよいのだけど、なぜだか最初は1ヶ月トライアルプランしか選べないようなので、トライアルを選択。ホスト5台まではFreeで使えるけど、それ以上はホスト1台あたり月2000円って結構なお値段なのでエンタープライズ用途でも小規模向けっぽい。そもそも大規模だったら自社で監視基盤整備するだろうし、小規模だったら監視サーバ立てたりメール通知作りこんだりめんどいとかそーゆー層を狙ってるのかなぁ。

で、プラン選んだあとは色々初期設定を画面のとおり進める。

  • オーガニゼーションの作成

いきなりオーガニゼーションとか言われても概念が(ryってかんじですが、要するに管理者グループ的なものだと思えばよいっぽい。管理者が一人ではなくて複数の場合もあるので。あとダッシュボードのURLに使用されるのでユニークなものである必要がある。

  • 新規ホストの登録

今回サーバはDebianなので「deb-pkgをインストールする」の説明に従い、コマンドラインをコピペ。

$ curl -fsSL https://mackerel.io/assets/files/scripts/setup-apt.sh | sh
$ sudo apt-get install mackerel-agent

設定ファイル作成も例のコマンドラインをコピペ

sudo sh << SCRIPT
cat >>/etc/mackerel-agent/mackerel-agent.conf <<'EOF';
apikey = "(APIキーxxxxxxxxxxxxxx)"
EOF
SCRIPT

で、エージェントを起動する。

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

エージェントインストールして起動すると自動でWebの管理画面から認識されよう。

  • サービスを作る

「ToDoApp」というサービスを作成。

  • ロールを作る

「db」と「app」というロールを作成。

  • ホストにロールを紐付ける

登録した2台のホストをそれぞれロールに割り当て。

以上で初期登録は完了。
説明が若干雑ですが、画面の説明通り入力すれば特に迷うところないです。

あとは、監視ルールにCPU%で閾値設定して警告とかエラーとか出るか試してみたらちゃんと出た。自動で登録したメールアドレスにメールも飛んだ。ちなみにテスト用にCPU負荷をかける魔法のコマンドはこちらです。

$ yes >> /dev/null

監視ルールに死活監視がないけど死活監視はデフォルトでされてるとヘルプに書いてあった。その他監視はプラグインでいろいろできるっぽいけどまだ調べられてない。なんかプラグイン対応してるミドルのリストが書いてあるのだけど、個人的にはログ監視とかプロセス監視とかもっと汎用的な監視が基本機能としてあってもよいのじゃないかと思う。たぶん、リソース監視のためのツールで、障害監視とはちょっと方向性が違うのかもしれない。小規模なサービスならURLのヘルスチェックとかも需要ありそうなんだけど、push型なのでそもそもpollするという発想がないのかもしれない。

触っててちょっと気になったのは、アラートはほぼリアルタイムなのだけど、グラフが30分ぐらい遅延しててこれだと障害起きても今の状態がWebのUIからすぐに分からないのが致命的なかんじ。一時的な問題なのかもしれないのでそのうち治ってるかもですが。CPU負荷かけてみるとわかるけど、サーバの時刻がずれてるというわけではなくグラフの描画範囲に最新データが入っていないというかんじ。

なんかいろいろ愚痴っぽいことを書いたけど、小規模なサービスの監視をシュッとお手軽に作るのにはよいサービスだと思うので今後に期待。