ロール内異常検知による監視を行なう

本機能では、ロール内異常検知によるホストの監視を行ないます。当機能は、正式リリース前の実験的機能となっています。

機械学習を用いた異常検知について

システム管理者がサーバー監視に詳しい場合、監視機能を用いてサーバーのメトリックに対する静的な監視ルール(例: loadavg5が1を越えたらWarningのアラートを発報する)を設定できます。しかし、個々のメトリックに対して監視ルールを設定するのは相応の手間が必要で、定期的に調整を行なわなければ不適切なアラートが発報されてしまいます。機械学習による監視を使うと、監視ルールを作ったりメンテナンスするコストを下げることができます。また、サーバー監視に詳しくない場合でも、異常検知による監視が有効です。異常検知機能では機械学習を用いて過去のデータからどういったメトリックが正常/異常か学習し、新たに送られてきたメトリックが異常か自動的に判定します。異常と判定した場合、アラートを発報することができます。

異常検知機能では機械学習(具体的には混合ガウス分布)を用いてメトリックが異常かどうか判定を行ないます。混合ガウス分布では複数のガウス分布を考慮することにより、サーバー負荷に多峰性があるようなケース(例: 平日/週末あるいは昼間/夜間でサーバーの負荷傾向が大きく異なる)でも対応できます。

ロール内異常検知によるアラートでは、該当ホストで普段と最も様子が異なるメトリックのグラフを表示します。各種通知でもこのグラフが表示されるので、障害の初期対応に活用できます(本機能は実験的機能であり、必ず障害の根本原因を表わしているというわけではありません)。

ロール内異常検知による監視を設定する

画面左側メニューのMonitorsより監視ルールを追加のボタンをクリックします。 「ロール内異常検知」のタブをクリックすると、以下の項目が表示されますので、 各項目に値・名称を記述して作成ボタンをクリックします。

  • 対象のロール: 監視したいサービスおよびロールを選択してください
  • Sensitivity: sensitiveのほうが小さな変化に反応しやすくなります。大きな変化のみアラートを発報したい場合、insensitiveを設定してください
  • 監視ルール名:本監視ルールの名前を記述してください
  • 監視ルールのメモ:本監視ルールのメモを記述することができます
  • 通知の再送間隔:アラートの状態が、指定された時間を超えても変化がない場合、再度通知します
  • 異常検知モデルの学習期間: 異常検知モデルは過去(数十日程度)のメトリックから傾向を学習します。デプロイなどでメトリックの傾向が変わった場合(例: パフォーマンス改善を行なったため、CPU使用率が下がった)、学習期間を変更すると誤検知を減らせる場合があります。学習期間は以下の3つから選択できます
    • デフォルトの学習期間(数十日間)
    • 以前に指定した時点以降
      • Sensitivityを変更するのみで学習の開始時点を変更したくない場合はこちらを選択してください
    • 指定時刻以降
      • 直近のデプロイから大きく傾向が変わった場合などはこちらを選択してください

ロール内異常検知による監視の仕様について

  • 対象となるホストはmackerel-agentが動作しているLinuxホストのみになります
    • ロール内に対象外のホストを含む場合、学習が失敗する場合があります
    • mackerel-agentから収集するシステムメトリック(参照)を使用しています。カスタムメトリックやサービスメトリックは判定には使われません
  • 異常検知の学習が完了するまでは監視は行なわれません
  • 同一のロールに対して異常検知による監視を複数指定することはできません
  • Trialプラン及び有料プランでのみご利用いただけます