アラートルールエンジン:変換
Splunk On-Call のアラートルールエンジンの変換について。
要件
このインテグレーションは以下のバージョンのSplunk On-Callと互換性があります:
-
エンタープライズ
すべてのユーザーは、Splunk On-Callサポートにいつでも質問することができます。
ライブチャット:Splunk On-Callインスタンスにログインしている場合、Splunk On-Callサポートチームとライブチャットを行うことができます。
アラートルール変換は、VictorOps タイムラインに到着する前にアラートデータを変更する方法です。ルールエンジンの [alert field] ボックスに既存のフィールドの名前を入力すると、そのフィールドを選択した新しい値で上書きできます。
変換アクションは、アラートに全く新しいフィールドを追加することもできます。これは、[alert field] セクションに希望するフィールド名を入力し、値を割り当てることで実現できます。
変革の用途
ルーティングキーの変更
特定のアラートセットのルーティングキーを変更できます。すべてのアラートを Database チームに送信するようにインテグレーションを設定したが、特定のホスト(db03)に関連するインシデントの特定のサブセットをDevelopmentチーム(routing_key =devs)に送信したい場合は、以下を試してください。
-
When
entity_idmatchesdb03usingWildcard Match
-
Set
routing_keytodevs
新しいアラートフィールドの追加
アラートに新しいフィールドを追加するには、まずマッチング条件を作成する必要があります。例えば、あるモニタリングツールがアラートを送信するたびに新しいフィールドを追加したい場合、次のようなマッチング条件を作成します:When monitoring_tool matches your_tool using Wildcard Match.
new_field_name(または任意の名前)を設定することで、アラートに新しい一意のフィールドを追加します。これにより、新しいフィールドが自動的に作成されます。新しいフィールドの値は、任意に設定できます。次のようになります。Set new_field_name to <value of new field>.
新しいフィールドの値に既存のフィールドの内容を動的に取り込みたい場合は、この構文を使います:${{current_field_name}}.
耳障りなアラートをミュートする
一部のアラートはアカウントに不要なページングを引き起こし、邪魔になることがあります。message_type フィールドを INFO に変換することで、耳障りなアラートをミュートできます。耳障りなアラートに共通する任意のフィールドに対してマッチング条件を作成できます。たとえば、state_message に spam という単語が含まれるたびに、message_type を INFO にしたい場合は、次のルールを作成します。
When
state_messagematchesspamusingWildcard matchSet
message_typetoINFO
タイムスタンプベースのミューティング
タイムスタンプを利用してアラートをミュートまたは調整するには、正規表現メソッドやチェーンされたルールを使用します。特定の routing_key または monitoring_tool のアラートにのみ影響を与えるように、チェーンを使用してルールの範囲を指定することをお勧めします。
次の例は、木曜日、土曜日、日曜日のUTCに、teamA routing_keyへのアラートをINFOタイプに変換します。
ルール1:
When
routing_keymatchesteamAusingWildcardSet
teamAto a new value${{Alert_received_week_time_utc}}
ルール2:
When
teamAmatches\d*-W\d*-[467].*usingRegExSet
message_typeto new valueINFO
alert_received_week_time_utc フィールドは、ISO8601 の週日付形式のタイムスタンプです。たとえば、2020-W10-3TT17:38:32Z は YEAR-WEEK-DAY-TIME の形式であり、月曜日から日曜日までの曜日は 1 ~ 7 で表されます。UTC とのタイムゾーンの違いを考慮して、正規表現の例を増やす必要がある場合があります。
以下は、年、週、曜日、分に関係なく、午前 8 時から午後 12 時(UTC)の間に発生したアラートのみをキャプチャするルールの例です。以下のケースでは、午前 8 時から午後 12 時(UTC)の間のアラートのみをキャプチャするため、ルールを以下のように分解します。
When
Alert_received_time_utcmatches.*T(0[8-9]|1[0-1]):.*Set
message_typetoINFO
インシデントと通知の外観を変更する
変数の展開と変換を使用して、アラート フィールドを変更できます。たとえば、アラートカードの表示名を変更することができます。表示名フィールドは、 entity_display_nameと呼ばれます。このフィールドを変更して別のフィールドを表示する場合は、次のようなルールを設定します。
When
entity_display_namematches*usingWildcardSet
entity_display_nameto${{field_you_choose}}
複数の異なるアラートを 1 つのインシデントにまとめる
複数のアラートを 1 つのインシデントに集約するには、まず複数の異なるインシデントを関連付けてマッチングする値を見つけます。次に、 entity_id フィールドを設定値に変換します。 entity_idを事前に設定することで、VictorOps はアラートを自動的に集約します。
When
entity_idmatchesdisk*usingWildcard MatchSet
entity_idtoDisk Problems
このルールは、disk で始まるentity_idを持つすべてのアラートを受け取り、entity_id を Disk Problems に変換します。
RegExでフィールドを変換または作成する
テキストを処理する場合、RegEx キャプチャグループを介して抽出する情報がある場合があります。RegEx キャプチャグループ(カッコ ( ) で囲まれている)を使用して、新しいアラートフィールドを追加したり、既存のフィールドを変換したりできます。これは、ワイルドカードマッチングを使用するのと似ています。
この例では、RegEx を使って件名フィールドで error または ERROR を探し、上記のように message_type を INFO に設定して、耳障りなアラートをミュートしています。
When
subjectmatches^((?!error|ERROR).)*$usingRegExSet
message_typetoINFO
アラートに注釈を付ける方法については「ルールエンジンの注釈」を参照してください。
AND/OR 論理のヘルプについては「ルールエンジンのマッチング条件」を参照してください。