本機能では、ロール内異常検知によるホストの監視を行ないます。
機械学習を用いた異常検知について
システム管理者がサーバー監視に詳しい場合、監視機能を用いてサーバーのメトリックに対する静的な監視ルール(例: loadavg5が1を越えたらWarningのアラートを発報する)を設定できます。しかし、個々のメトリックに対して監視ルールを設定するのは相応の手間が必要で、定期的に調整を行なわなければ不適切なアラートが発報されてしまいます。機械学習による監視を使うと、監視ルールを作ったりメンテナンスするコストを下げられます。また、サーバー監視に詳しくない場合でも、異常検知による監視が有効です。異常検知機能では機械学習を用いて過去のデータからどういったメトリックが正常/異常か学習し、新たに送られてきたメトリックが異常か自動的に判定します。異常と判定した場合にアラートを発報できます。
異常検知機能では機械学習(具体的には混合ガウス分布)を用いてメトリックが異常かどうか判定を行ないます。混合ガウス分布では複数のガウス分布を考慮することにより、サーバー負荷に多峰性があるようなケース(例: 平日/週末あるいは昼間/夜間でサーバーの負荷傾向が大きく異なる)でも対応できます。
ロール内異常検知によるアラートでは、該当ホストで普段と最も様子が異なるメトリックのグラフを表示します。各種通知でもこのグラフが表示されるので、障害の初期対応に活用できます(必ずしも障害の根本原因を表わしているというわけではありません)。
ロール内異常検知による監視を設定する
画面左側メニューの監視ルールより監視ルールを追加のボタンをクリックします。 「ロール内異常検知」のタブをクリックすると、以下の項目が表示されますので、 各項目に値・名称を記述して作成ボタンをクリックします。
- 対象のロール: 監視したいサービスおよびロールを選択してください
- Sensitivity: sensitiveのほうが小さな変化に反応しやすくなります。大きな変化のみアラートを発報したい場合、insensitiveを設定してください
- 監視ルール名:本監視ルールの名前を記述してください
- 監視ルールのメモ:本監視ルールのメモを記述できます
- 通知の再送間隔:アラートの状態が、指定された時間を超えても変化がない場合、再度通知します
- 異常検知モデルの学習期間: 異常検知モデルは過去(数十日程度)のメトリックから傾向を学習します。デプロイなどでメトリックの傾向が変わった場合(例: パフォーマンス改善を行なったため、CPU使用率が下がった)、学習期間を変更すると誤検知を減らせる場合があります。学習期間は以下の3つから選択できます
- デフォルトの学習期間(数十日間)
- 以前に指定した時点以降
- Sensitivityを変更するのみで学習の開始時点を変更したくない場合はこちらを選択してください
- 指定時刻以降
- 直近のデプロイから大きく傾向が変わった場合などはこちらを選択してください
ロール内異常検知による監視の仕様について
- 以下に該当する種類のホストがロール内異常検知の対象となります
- mackerel-agentが動作しているLinuxホスト
- mackerel-agentが動作しているWindowsホスト(実験的機能)
- 学習・判定にはmackerel-agentから収集するシステムメトリック(参照)を使用しています。カスタムメトリックやサービスメトリックは使用されません
- ロール内に対象外のホストが含まれる場合、学習が失敗する場合があります
- ロール内に複数の種類のホストが含まれる場合、学習および判定はいずれかの種類のホストのみが対象となります
- 複数の種類のホストを対象にロール内異常検知を利用する場合は、ホストの種類ごとにロールを割り当てることを推奨します
- 同一のロールに対して異常検知による監視を複数指定することはできません
- 学習が完了するまでは監視は行なわれません
- Trialプラン及び有料プランでのみご利用いただけます
- 監視対象となっている5ホスト単位でスタンダードホスト1台分としてカウントします
- 同一のホストが複数のロールを通して監視されている場合、重複してカウントします
- 監視対象ホスト1台から利用料金が発生します
- Windowsホストに対するロール内異常検知は、実験的機能として提供しています
- 実験的機能としての提供期間中は、Windowsホストは上記の利用数のカウントからは除外され、料金は発生しません