ラボ 18 - コンテキスト付きアラートの作成
静的しきい値に基づく単純なカウント値でアラートを生成すると、偽陽性が生じる危険があります (図 1 参照)。そこでこのラボでは、全体的なトラフィックよりも速いレート (図 2 参照) でエラーが増加したときにアラートを生成するようにクエリを作成します。 詳しい説明は、意味のあるアラートの作成に関するこのブログ記事を参照してください。
図 1 と図 2
-
Labs/Apache/Access のデータからステータス コードが 200 または 404 のメッセージのみを検索します。404 メッセージはエラーであり、200 メッセージは全体的なトラフィックの測定に使用します。
-
200 メッセージは成功、404 メッセージはエラーとしてカウントします。
-
タイムスライスごとに成功とエラーの数を合計して、経時的な傾向を特定します。
-
成功に対するエラーの比率を計算します。
-
outlier operator を使用して、この比率の異常値を検出します。
_sourceCategory=Labs/Apache/Access (status_code=200 or status_code=404)
| timeslice 1m
| if (status_code="200", 1, 0) as successes
| if (status_code="404", 1, 0) as fails
| sum(successes) as success_cnt, sum(fails) as fail_cnt by _timeslice
| fail_cnt/success_cnt as failure_rate
| sort _timeslice desc
| outlier failure_rate window=5, threshold=3, consecutive=1, direction=+
-
次の where 句を追加して、外れ値 (比率が通常よりも高い値) のみを除外します。自分のメール アドレスを使用して、このクエリに結果が返された時点でアラートを生成する Scheduled Search を作成します。
| where failure_rate_violation > 0