この記事は、Mackerel アドベントカレンダー(全部CRE)の20日目の記事です。
みなさんはアラートグループは利用したことはありますか? 今日はアラートグループの設定方法や通知方法についてまとめてみます。
アラートグループとは
アラートグループとは、サービスやロールごとに同じ時間帯に発生したアラートをグループとしてまとめる機能です。
ユースケース
たとえばゲームシステムなどwebサーバーを何台も横並びにして負荷分散しているような環境をイメージしてください。 webという同じロールに200台などのサーバーが登録されています。かつそのwebサーバー群は同じデータベースサーバーに接続にいっているとします。 そのような状況で、データベースサーバーに障害が発生したとしたら、200台からデータベースへの接続エラーのアラートが一斉に送信されてしまいます。
アラートが大量に発生してしまうと以下のような弊害があります。
- 大量のアラートを確認するために時間を割いてしまう
- データベース接続エラー以外の重要なアラートが埋もれてしまう
また、このようなことが頻発すると、アラートを見ると人がアラートに慣れてしまって、重要性だという感覚が鈍ってしまう、という弊害もあります。
このような大量アラートをうまく管理するための機能としてアラートグループが開発されました。
思わぬ効能
アラートグループはこのように、同じロールに大量のサーバーが登録されているようなケースを想定して開発されました。では、ロールに登録されているサーバーが少ない場合や、そもそもサービスに登録されているサーバーが少ないような環境では意味をなさないか、というとそうでもありません。 各サーバーが共有するネットワークやストレージなどに障害があった際や、データベースサーバーに限らずDNSサーバーやログサーバーなど各サーバーが共有する機能に障害がおこったときも200台とはいわずとも、たくさんのアラートが発報されます。 または、サーバーの処理量が増加して、リソース監視の閾値ギリギリをふらつくような事象がおきたときに、同時にアプリケーションログにエラーが出力されているような場合もあるかもしれません。 このような時にも、アラートグループは同時間帯に起きたアラートの可読性がよいので便利です。
アラートグループの設定方法
アラートグループは、アラート一覧画面から設定します。 右上の[アラートグループ設定]をクリックします。
アラートグループ設定画面が表示されます。 右上の[新規アラートグループ設定を作成]をクリックします。
新規アラートグループ設定を作成画面が表示されます。
アラートグループはサービス、ロール単位で設定することができます。
アラートグループの通知設定
アラートグループの通知設定は通知チャンネルに設定できます。 通知チャンネルの編集画面を開くと、[通知するイベント]としてアラートグループを選択することができます。 デフォルトではオフになっています。
この設定を変更すれば、運用の仕方に合わせて通知方法を選択することができます。
- 通常の個別のアラートとアラートグループを両方通知する
- 個別のアラートの通知をオフし、アラートグループのみを通知する
- アラートグループは通知せず、GUIから参照するだけ
- アラートグループ用の通知チャンネルを別途追加して、アラートグループだけ専用の通知先に分けて通知する
などなど
まずはアラートグループを有効にして様子を見ながら通知をどうするか、適切なものを選んでいくとよいと思います。
可読性のよいGUI
これはイメージですが、このような形で表示されます。 CPU使用率の中に一見だけアクセスログのエラーが混ざっているのもひと目でわかりやすくなっています。
アラートグループをうまく使いこなして、大掛かりな障害にもスムーズに対応できるとよいですね。