アラートグループを設定してみる

この記事は、Mackerel アドベントカレンダー(全部CRE)20日目の記事です。

みなさんはアラートグループは利用したことはありますか? 今日はアラートグループの設定方法や通知方法についてまとめてみます。

アラートグループとは

アラートグループとは、サービスやロールごとに同じ時間帯に発生したアラートをグループとしてまとめる機能です。

ユースケース

たとえばゲームシステムなどwebサーバーを何台も横並びにして負荷分散しているような環境をイメージしてください。 webという同じロールに200台などのサーバーが登録されています。かつそのwebサーバー群は同じデータベースサーバーに接続にいっているとします。 そのような状況で、データベースサーバーに障害が発生したとしたら、200台からデータベースへの接続エラーのアラートが一斉に送信されてしまいます。

アラートが大量に発生してしまうと以下のような弊害があります。

  • 大量のアラートを確認するために時間を割いてしまう
  • データベース接続エラー以外の重要なアラートが埋もれてしまう

また、このようなことが頻発すると、アラートを見ると人がアラートに慣れてしまって、重要性だという感覚が鈍ってしまう、という弊害もあります。

このような大量アラートをうまく管理するための機能としてアラートグループが開発されました。

思わぬ効能

アラートグループはこのように、同じロールに大量のサーバーが登録されているようなケースを想定して開発されました。では、ロールに登録されているサーバーが少ない場合や、そもそもサービスに登録されているサーバーが少ないような環境では意味をなさないか、というとそうでもありません。 各サーバーが共有するネットワークやストレージなどに障害があった際や、データベースサーバーに限らずDNSサーバーやログサーバーなど各サーバーが共有する機能に障害がおこったときも200台とはいわずとも、たくさんのアラートが発報されます。 または、サーバーの処理量が増加して、リソース監視の閾値ギリギリをふらつくような事象がおきたときに、同時にアプリケーションログにエラーが出力されているような場合もあるかもしれません。 このような時にも、アラートグループは同時間帯に起きたアラートの可読性がよいので便利です。

アラートグループの設定方法

アラートグループは、アラート一覧画面から設定します。 右上の[アラートグループ設定]をクリックします。

f:id:missasan:20181216172425p:plain

アラートグループ設定画面が表示されます。 右上の[新規アラートグループ設定を作成]をクリックします。

f:id:missasan:20181216172826p:plain

新規アラートグループ設定を作成画面が表示されます。

f:id:missasan:20181216172934p:plain:w450

アラートグループはサービス、ロール単位で設定することができます。

f:id:missasan:20181216173052p:plain:w450

アラートグループの通知設定

アラートグループの通知設定は通知チャンネルに設定できます。 通知チャンネルの編集画面を開くと、[通知するイベント]としてアラートグループを選択することができます。 デフォルトではオフになっています。

f:id:missasan:20181216174642p:plain:w450

この設定を変更すれば、運用の仕方に合わせて通知方法を選択することができます。

  • 通常の個別のアラートとアラートグループを両方通知する
  • 個別のアラートの通知をオフし、アラートグループのみを通知する
  • アラートグループは通知せず、GUIから参照するだけ
  • アラートグループ用の通知チャンネルを別途追加して、アラートグループだけ専用の通知先に分けて通知する

などなど

まずはアラートグループを有効にして様子を見ながら通知をどうするか、適切なものを選んでいくとよいと思います。

可読性のよいGUI

これはイメージですが、このような形で表示されます。 CPU使用率の中に一見だけアクセスログのエラーが混ざっているのもひと目でわかりやすくなっています。

f:id:missasan:20181216175615p:plain

アラートグループをうまく使いこなして、大掛かりな障害にもスムーズに対応できるとよいですね。