大量の鯖をMackerelで簡単に監視しよう!
コロナの移動制限が解除されて、福井県までドライブをしてへしこを買いに行きたい前野です。こんにちは。
へしこは、福井から舞鶴の辺りで作られ、秋に若狭湾で取れた油が乗った新鮮な鯖を1年ほど糠漬けにした郷土料理です。
食べる時には糠をよく洗って取り、焼いてご飯に乗せて食べたり、そのまま酒のつまみにするのも良し、個人的には塩辛さを和らげるため、よくお茶漬けにして食べています。
味は・・・うーん・・・奈良漬けに近いでしょうか・・・?
さて、そんなへしこではなく・・・鯖=サーバについて、今日は紹介したいと思います。
インフラ業務をやっている身分としては、色々なプロジェクトが並行し、プロジェクトの立ち上げごとに数台のサーバーが新たに増えるのですが、気付いたら物凄い数になっていることに・・・!
そんなサーバーですが、魚の鯖に通じることがありやはり鮮度が命です!
魚もサーバーも同じ生き物のように扱い、元気にしているかどうか(死活監視)、順調に育っているかどうか(リソースの監視)、ストレスを与えすぎてないかどうか(ロードアベレージ)など、多岐に渡る項目を日々監視しなければなりません。
そこでMackerelの登場
そこでおすすめなのが監視ツールで定番の「Mackerel(マカレル)」です。
和製ツールではてな社が開発しており、インターフェースは英語と日本語に対応していて、気になるところに手が届くツールです。
監視ツールは結構似たようなツールが乱立していて、有名なのだとZabbixやCloudWatchがあり、ダッシュボードもZabbix Screenとか、CloudWatch Dashboardとかと被るので、色々あるけど正直どれが良いの?ってよく聞かれますが、ホントここは好みの次元なので、学習コストを抑えたいならMackerel使っとけってと言う感じで勧めています。
インストール方法もコマンド一発、ダッシュボードへの描画もすぐで、特にカスタマイズしなくても監視できちゃうのがおすすめなポイントですが、他のツールでもできないわけじゃないので、ここからはおすすめポイントを紹介していきます。
おすすめポイント(デフォルト値がそれなりに優秀)
通信が取れなくなったら通知するのはもちろんのことですが、
ファイルシステムやメモリの使用量が80%を超えたらWarning(注意)、90%を超えたらCritical(警告)として通知など、特に細かい設定をしなくてもそれなりに使える点です。
上の図は今実際に動いているサービスですが、リソースは監視したいけど、通知を受けたくないサーバーとはボタンでポチポチとステータスをstandbyにすることで、通知は受けないけどリソースは監視できる対象とすることができます。
カスタマイズすればキリがないのですが、カスタマイズもそれなりに時間も取られるので、会員登録後、デフォルト値として準備されている情報でも実用的なのがおすすめできるポイントです。
おすすめポイント(色々なミドルウェアに対応)
設定ファイルでコメントアウトされた場所でコメントアウトを外したり、ユーザー名を指定したりなど若干修正する必要はありますが、メジャーなミドルウェア(Apache、Redis、PostgreSQL、Memcachedなど)を網羅しています。
クエリ数、キャッシュヒット数など初期値で普通に必要とされる項目を監視できるのがおすすめポイントです。
おすすめポイント(豊富な外部連携)
やはりマウスでポチポチ操作して簡単に連携先を追加できる=知識があまり要らないって意味では、豊富な外部連携がお気に入りです。
残念ながらMackerelはアプリ版が存在しないので、Mackrel単体ではプッシュ通知自体はできず、メールでの通知のみになりますが、外部サービスと連携することで、メール以外の通知方法として、Line Notifyと連携したりはできるので、サーバーが落ちたらLineで通知が届くって言う組みわせも可能です。
また頻度は高いけど、事象が起こる前段階の通知として残したい場合もあるので、
重要度が低いもの ・・・ メール
重要度が中くらいのレベル ・・・・ Line Notify経由でプッシュ通知
重要度が高いもの ・・・ 即座に対応したいのでTwilioと連携して電話で通知
と言った使い分けも便利かもしれません。
SlackやLine Notifyなど大手サービスだけでなく、自前のプログラムと連携したいってことならWebhook連携が使えるので、フォーマットに合わせて通知を受けて、自分の指定した条件で発動させるような使い方もできますし、IFTTTと組み合わせれば結構できる幅は広がると思います。
・・・ちなみに先ほどオウンメディアのサイト(ruby + postgresql)で久々に設定を変更していたら、設定内容を間違えてしまい、Mattermostでこんな通知も受けることができました。orz