Application Real-Time Monitoring Service (ARMS) のアラート管理を使用して複数のアラートソースをインテグレーションした後、イベント処理フローを設定して、これらのソースからのイベントをフィルターおよび分類できます。このトピックでは、イベント処理フローの作成方法について説明します。
イベント処理フローの作成
にログインします。 ARMSコンソールを使用します。
-
左側メニューで、 を選択します。
-
イベント処理フロー ページで、右上の 処理フローの新規作成 をクリックします。
-
処理フローの新規作成 ページで、基本情報 セクションに処理フローの名前を入力します。
-
フローアクションの設定 セクションで、イベント処理フローを設定します。
-
利用可能なプロセスアクション セクションから イベント処理フロー セクションにアクションをドラッグします。
-
一番右のセクションで、イベント処理フローの各アクションの実行条件を設定します。
説明アクションを設定した後、テストデータ セクションでアラートフィールドをテストして、アクションの設定を検証できます。
アクション
説明
例
トリガー条件
トリガー条件を満たすイベントのみが、現在のイベント処理フローをトリガーします。
[Scenario]
「Container CPU Utilization Alert」という名前のインテグレーションが、現在のイベント処理フローをトリガーします。
設定
条件を
_aliyun_arms_integration_name equals Container CPU Utilization Alertに設定します。イベントのフィルター
フィルター条件を満たすイベントは、現在のイベント処理フローをスキップして次のフローに進みます。フィルターされなかったイベントは、現在のフローの次のアクションに進みます。
説明アラートルールがまだイベントを生成していない場合は、プリセットされた ARMS フィールドの
_aliyun_arms_integration_idと_aliyun_arms_integration_nameのみ設定できます。severityやalertnameなどの他のイベントフィールドを使用する場合は、次のいずれかの方法を使用できます。-
フィールド名を手動で入力します。
-
アラートルールを追加してアラートイベントをトリガーします。イベントが生成されると、そのフィールドを選択できます。
[実行結果]
[実行結果]
[実行結果]
[実行結果]
[実行結果]
[Scenario]
P4 レベルのアラートイベントは、現在のイベント処理フローをトリガーしません。
設定
条件を
severity equals P4に設定します。イベントタイプの識別
選択したイベントフィールドの値に基づき、アルゴリズムがイベントクラスとイベントタイプを識別します。この情報は、イベントとアラートのクエリおよび統計分析に役立ちます。
次のイベントクラスがサポートされています。
-
ネットワーク
-
ストレージ
-
コンピューティング
-
OS
-
アプリケーション
-
データベース
-
変更
次のイベントタイプがサポートされています。
-
可用性
-
レイテンシー
-
容量
-
エラー
-
不明
[Scenario]
alertnameフィールドとmessageフィールドの値に基づいて、イベントクラスとイベントタイプを識別します。設定
[Fields for Type Identification] を
alertnameとmessageに設定します。[実行結果]
システムは識別結果を
classラベルとtypeラベルに書き込みます。たとえば、
alertnameがtcp package error percentageのイベントが処理された後、拡張フィールドの class は network に設定され、type は error に設定されます。イベントレベルの設定
現在のフローで処理されるイベントに特定のイベントレベルを割り当てます。
[Scenario]
コアサービスのネットワーク関連のアラートイベントのイベントレベルを P1 に設定します。
設定
-
[Trigger Condition] アクションを
class equals networkに設定します。 -
[Set Event Level] アクションを P1 に設定します。
[実行結果]
テスト結果では、処理後に severity フィールドが
criticalに設定され、ルールが正常に適用されたことを示しています。ビジネス タグの設定
現在のフローで処理されるイベントにビジネス タグ (ラベル) を追加します。このタグは、イベントとアラートのクエリおよび統計に役立ちます。
-
フィールド:イベントフィールドの値を
labelフィールドの値として使用します。 -
値:
labelフィールドに固定値を設定します。
[Scenario]
アラートレベルをアラート ラベルとして使用して、レベルごとのイベントの統計分析を可能にします。
設定
ビジネス タグを
Field: severityに設定します。[実行結果]
labelフィールドがアラートイベントに追加され、labelフィールドの値はseverityフィールドの値になります。フィールドの削除
イベントから指定したフィールドを削除します。
[Scenario]
アラートイベントには
locationフィールドとregionフィールドの両方が含まれています。locationフィールドにはすでにリージョン情報が含まれているため、regionフィールドを削除します。設定
削除するフィールドを
regionに設定します。コンテンツの抽出
正規表現を使用してイベントフィールドからコンテンツを抽出し、抽出したデータを新しいフィールドに設定します。
[Scenario]
アラートフィールド:
"location":"cn-hangzhou-hz4"locationフィールドからリージョンとデータセンターの情報を抽出し、regionフィールドとdatacenterフィールドに設定します。設定
-
抽出元フィールド:
location -
抽出正規表現:
([a-zA-z]+-[a-zA-z]+)-(.*) -
入力先フィールド:
region、datacenter
region フィールドの抽出結果は
cn-hangzhou、datacenter フィールドの結果はhz4です。照合と更新
指定したイベントフィールドに特定のコンテンツが含まれている場合、システムは設定した値でターゲットフィールドを更新します。
[Scenario]
アラートフィールド:
"message":"ping to i-bp1e42d0ydxf7pstuepz > 100ms"messageフィールドにpingが含まれている場合、これはネットワークイベントであることを示しており、イベントはネットワークタイプとしてマークされます。設定
-
照合するフィールド:
message -
更新条件:
pingを含む場合はnetworkを出力します。説明照合する値は、リテラル文字列または正規表現にすることができます。
-
入力先フィールド:
class
照合と更新アクションをテストした後、イベントの
messageフィールドにpingが含まれている場合、システムはclassフィールドにnetworkを設定します。フィールドのエンリッチ
API を呼び出すか、ローカルの Excel データソースにクエリを実行してイベントデータをエンリッチし、その結果をターゲットフィールドに設定します。
説明データソース機能は現在カナリアリリース中です。この機能を使用するには、DingTalk (ID:
d9j_rg9e4062f) で ARMS のテクニカルサポートにお問い合わせください。[Scenario]
アラートイベントの IP フィールドを使用して、アップロードされた Excel データソースをクエリし、対応するホスト名を取得して、イベントの
hostnameフィールドに設定します。設定
-
データソース: Get Host Data Source-excel
-
照合と更新モード:
ip(Excel ファイルの列名と一致) equalsip(Excel ファイルの列の値と一致) -
入力先フィールド:
$.hostName(Excel クエリ結果の列名) がhostnameに設定されます
コンテンツの置換
リテラル文字列または正規表現を使用して、指定したフィールドのコンテンツを検索および置換します。
[Scenario]
アラートイベントの文字列
d.b.を文字列databaseに置換します。設定
-
置換対象フィールド:
message -
検索:
d\.b\.説明リテラル文字列または正規表現を使用できます。
-
置換後:
database
[Test] をクリックします。処理前、message フィールドの値は
d.b. call timeoutです。処理後、値はdatabase call timeoutに変更され、置換ルールが有効であることを示しています。コンテンツの分割
デリミタでフィールドの値を分割し、その結果を使用して複数のターゲットフィールドに値を設定します。
[Scenario]
アラートフィールド:
"message":"myhostid_myuserid_myruleid"messageフィールドの値を分割し、新しいhostId、userId、およびruleIdフィールドに、結果の各部分をそれぞれ設定します。設定
-
分割対象フィールド:
message -
デリミタ:
_ -
分割結果の入力先フィールド:
hostId、userId、ruleId説明ターゲットフィールドには順次値が設定されます。
テンプレートから入力
テンプレートコンテンツ (例:タイプ
${class}のイベントソースは${source}です) を入力します。変数名はイベントインテグレーションのフィールド名であり、テンプレートがレンダリングされた後、コンテンツがターゲットフィールドに設定されます。[Scenario]
アラートフィールド:
"source":"server", "class":"network"messageフィールドをEvent of type ${class} is from source ${source}に設定し、classフィールドとsourceフィールドの値を参照します。設定
-
テンプレート:
Event of type ${class} is from source ${source} -
入力先フィールド:
message
message フィールドは、テンプレート変数が対応するフィールド値に置き換えられ、
Event of type network is from source serverとしてレンダリングされます。破棄
現在のフローで処理されたイベントを破棄します。このアクションは、イベント処理フローの最後のノードにする必要があり、設定は不要です。
なし
-
-
-
テストデータ セクションで、左側にテストフィールドと値を入力するか、イベントから選択する をクリックして既存のアラートイベントを使用してテストします。その後、クリックしてテスト をクリックします。
-
設定が完了したら、保存 をクリックします。
イベント処理フローが作成されると、システムはフローの順序に基づいて、インテグレーションされたアラートソースからのイベントをフィルターします。フィルターされたイベントはアラートイベント履歴ページで表示できます。詳細については、「アラートイベント履歴の表示」をご参照ください。
イベント処理フローの管理
[Event Processing Flows] ページでそれらを管理できます:
-
フローの順序を変更するには、[Actions] 列の 上に移動 または 下に移動 をクリックします。
-
フローを有効または無効にするには、[Actions] 列の 有効にする または 無効化 をクリックします。
-
フローを更新するには、[Actions] 列の 編集 をクリックします。
-
フローを削除するには、[Actions] 列の 削除 をクリックしてから 確認 をクリックします。
処理済みアラートイベントの表示
左側メニューで、 を選択します。
アラートイベント履歴 ページには、すべてのアラートイベントが表示されます。イベント名をクリックすると、その詳細が表示されます。詳細については、「アラートイベント履歴の表示」をご参照ください。