時間相対アラートの設定

時間相対アラートを使用して、システムの異常な動作を自動的に検出します。 アラートは、一定の比率が過去の時間枠と比較して設定されたしきい値に達したときにトリガーされる。

前提条件

  • アラートについてはIBM Cloud Logsを参照してください。 詳細については、アラート を参照してください。
  • Event Notificationsインスタンスが IBM Cloud Logsインスタンスと同じアカウントにあり、Event Notificationsインスタンスにリソースを設定する権限があることを確認してください。
  • IBM Cloud LogsインスタンスとEvent Notificationsインスタンス間のアウトバウンド統合が構成されていることを確認する。 詳細については、接続するアウトバウンドインテグレーションを設定する を参照してください。

起動アラート管理

以下のステップを実行します。

  1. コンソールで、 ナビゲーション・メニュー・アイコン Navigation Menu icon > Resource list をクリックする。
  2. IBM Cloud Logs のインスタンスを選択します。
  3. IBM Cloud Logsナビゲーションで、アラートアイコン >アラー管理をトクリックします。
  4. 新しいアラートをクリックします。

設定するアラートの種類を選択する

以下のステップを実行します。

  1. アラートの種類を選択します。 詳細については、 「アラートの種類」 を参照してください。

  2. Details セクションで、以下のステップを完了する:

    1. 名前を入力します。

      • 名前の最大長は4096文字。
    2. [オプション]説明文を入力します。

      • 説明文の最大長は4096文字です。
    3. [オプション] 1つ以上のラベルを追加する。

      ラベルは、後で簡単に検索するために使用できるキーと値のペアです。

フィルタリング基準に照らして分析されるログを指定します

フィルタリング基準に照らして分析するログを指定するには、以下の手順を実行します:

  1. アラートの一部として返されるログを指定するために、 Lucene 検索クエリを指定します。

    フリー・テキスト文字列に基づいてフィルタリングするクエリを定義できます。 例えば、リターンコードが403のPOSTリクエストが識別されたときにアラートをトリガーするには、検索クエリーとして "POST 403" を入力します。 クエリーは、値 403POST を含むログを探す。

    特定のフィールドがクエリの値と一致するログをフィルタリングするクエリを定義できます。 例えば、environmentフィールドのproductionという値を検索するクエリを定義することができます: environment:"production"

    特定のフィールドが数値の範囲に一致するログをフィルタリングするクエリを、[START_VALUE TO END_VALUE] という書式を使って定義することができます。 例えば、フィールド RC に対して 2xx ステータスコードを持つログを検索するには、クエリーを使用することができる: rc.numeric:[400 TO 499]

    特定のフィールドが正規表現RegEx)に一致するログをフィルタリングするクエリを定義できます。 RegEx式を / で囲む。 たとえば、フィールド領域で west-europe-1, west-europe-2, west-us-1 のような異なる領域を検索するクエリを定義することができます:region:/west-(europe|us)-[12]/

    ブール演算子 ANDORNOT を使用する複雑なクエリーを定義することができます。 たとえば、次のようなクエリーを定義できます environment:"production" AND status.numeric:[400 TO 499] NOT region:/west-(europe|us)-[12]/

  2. 1つ以上のアプリケーションを選択して、ログのフィルタリングを追加します。

  3. 1つ以上のサブシステムを選択して、ログのフィルタリングを追加する。

  4. 1つ以上のログの厳しさを選択して、ログのフィルタリングを追加します。

    有効な値は、DebugVerboseInfoWarningError、および Critical です。

トリガー条件の指定

このアラートの分析に含まれるデータに対して評価されるトリガー条件を指定します。

Conditions(条件) セクションでは、 Alert if ratio isと Group byのフィールドを設定する必要があります。

Alert if ratio isでは、クエリが定義された時間ウィンドウ内で設定された回数以上マッチした場合にアラートがトリガーされるかどうかを選択する必要があります。

  • More than threshold を選択し、2つの時間帯の比率が選択したしきい値を超えた場合に通知を受ける。

  • 2つの期間間の比率が選択したしきい値より小さい場合に通知を受けるには、 Less than threshold を選択する。

次の表は、設定可能なタイム・ウィンドウです:

時間ウインドウの条件
時間枠 定義
Previous hour 前の時間と現在の時間のクエリー結果を比較する
Same hour yesterday 現在の時間帯のクエリー結果と、昨日(24時間前)の同じ時間帯の結果を比較する
Same hour last week 現在の時間帯のクエリー結果と、先週(7日前)の同じ日の同じ時間帯の結果を比較する
Yesterday 現在の日(24時間)と前日(24時間)のクエリー結果を比較する
Same day last week 現在の日(24時間)と先週の同じ日(7日前)のクエリー結果を比較する
Same day last month 当日のクエリー結果と前月の同じ日の結果を比較する

時間枠の比較は、1時間ごとの比較 (Previous hour, Same hour yesterday, Same hour last week) では5分ごと、1日ごとの比較 (Yesterday, Same day last week, Same day last month) では10分ごとに行われる。

例えば、過去1時間に180件のエラーログを返した場合。 前の時間のクエリーは60のエラーログを返した。 この場合、2時間の比率は3である。 アラートが設定されている場合、前の時間との比率が1以上の場合、アラートはトリガーされます。

しきい値未満の条件を使用している場合、未検出の値を管理するオプションがあります。

未検出値は、 閾値未満アラートの順列が送信されなくなり、(送信されなかった時間枠ごとに)複数のアラート・トリガーを引き起こす場合に発生する。

未検出の値を含むアラートを表示する場合、これらの値を手動で消去するか、または未検出の値が自動的に消去される期間を選択するオプションがあります。 また、未検出値のトリガーを無効にして、未検出値が発生したときにアラートの送信を即座に停止することもできます。

無限大でアラートをトリガー

2つ目のクエリー結果がゼロ値を返した場合、計算された比率は無限大となる。

この条件でアラートをトリガーするかどうかは、 Do not tigger on Infinityを選択または選択解除することで指定できます。

Group By では、最大2つのJSONフィールドを設定でき、その値が集計され、アラートがトリガーされるタイミングを決定します。

  • 集計された値のいずれかが、指定された時間枠内にフィルタリング条件セクションで設定されたしきい値を超えて表示された場合、アラートがトリガーされます。

  • アラートは、指定された時間枠内で特定の集計値について条件しきい値を満たした場合にトリガーされます。

  • 2つの値を設定すると、一致するログはまず親フィールドで集計され、次に子フィールドで集計されます。 アラートは、しきい値が親と子の両方のユニークな組み合わせを満たしたときに発せられる。

通知の詳細を設定する

以下のステップを実行します。

  1. Notify every を設定して、アラートがトリガーされた後のイベント取得頻度を定義します。 デフォルトでは0時間10分に設定されている。

  2. Resolve automaticallyを有効にすると、イベントが解決されたときにイベントを取得します。

    アラートの条件がイベントのトリガーとならなくなった場合、最初にトリガーされたイベントは「解決済み」としてマークされます。

  3. Enableファントムモードを有効にして、このアラートがファントムアラートであることを示す。

    ファントムアラートは、フローアラートのビルディングブロックとして機能する。

    ファントムアラートは、独立したイベント通知をトリガーしない。

    このオプションを有効にすると、アラート定義から通知セクションが削除されます。

  4. 統合を追加する。

    統合を追加するには、送信統合が定義されている必要があります。 詳細については、Event Notificationsサービスとの統合を設定する を参照してください。

スケジュールと含めるログの内容を設定する

以下のステップを実行します。

  1. *スケジュール]*セクションで、このアラートを有効にするタイミングを制御するスケジュールを設定します。 特定の曜日と時間を選ぶことができる。

  2. *Notification Content(通知内容)*セクションでは、トリガーされたイベントにログ行のサンプルを含めるか、一部のフィールドのみを含めるかを定義します。

    アラート通知に含める特定のJSONキーを選択するか、アラートメッセージにログテキスト全体を含めるには空白のままにします:

    • オプション1:アラートのフィルタリング条件に一致するログ行を1行含めるには、空白のままにします。

    • オプション2:JSONキーを指定し、key:valueのペアの形式で選択したフィールドを含める。 フィールドを追加するには、ログ記録がJSON形式でなければならないことに注意してください。

      名前に . を含む JSON キーは、選択フィールドとして使用できません。

    • オプション3:フィルターとしてJSONパスを指定する。

アラートがトリガーされると、イベントに含まれるデータ量には制限がある。 これらの制限の詳細については、データサイズ を参照。

アラート設定を保存する

以下のステップを実行します。

  1. 警告を確認する。

    Verify(検証)」をクリックしてデータを評価し、過去24時間にアラートが何回条件に一致したかを調べます。

    Verifyは優先順位の洞察パイプラインのデータのみを評価する。 アラートが分析とアラートパイプラインで利用可能なデータでトリガーされるように構成されている場合、この機能は利用できないことに注意してください。

  2. **「アラートの作成」**をクリックします。

アラートの確認

アラートを作動させる。 アラートがトリガーされ処理されると、システムは、電子メール、Slack、SMS、または統合されたインシデント管理プラットフォームなどのさまざまなチャネルを通じて、指定されたユーザーまたはチームに通知を送信します。 その後、*「インシデント」*ページに移動し、トリガーされたアラートに関する情報を見ることができます。 詳細については、IBM Cloud Logsのトリガーされたアラートの管理 を参照してください。