すべてのプロダクト
Search
ドキュメントセンター

:Log ServiceにAlertmanagerアラートを取り込む

最終更新日:Jan 03, 2025

Alertmanagerは、アラートの処理に使用できるサービスです。 このサービスは、オープンソースの監視システムであるPrometheusによって提供されます。 Log Serviceのアラート取り込みシステムをAlertmanagerで受信者として設定すると、AlertmanagerはアラートをLog Serviceに送信します。

前提条件

プロトコルAlertmanagerであるアラート取り込みアプリケーションが作成されます。 詳細については、「アラート取り込み用のwebhook URLの設定」をご参照ください。

Alertmanagerの設定

Alertmanagerの設定ファイルで、routeにカスタムレシーバーを追加します。 次に、カスタムレシーバーの設定をレシーバーに追加します。 設定テンプレート:
route:
  receiver: '{RECIEVER_NAME}'
  ...
  
...

受信機:
-name: '{RECIEVER_NAME}'
  webhook_configs:
  -url: 'http://{ALIYUN_SLS_ENDPOINT}/event/webhook/RAMAK_{ACCESS_KEY_ID}/{WEBHOOK_APP_ID}'
  
-name: ... 
パラメーター説明
receiverカスタム receiver 名。
nameカスタム receiver 名。 この名前は、receiverパラメーターに指定した名前と同じである必要があります。
urlカスタムレシーバーのURL。 Log serviceのアラート取り込みシステムでアラート取り込みサービスとアラート取り込みアプリケーションを作成した後に生成されるwebhook URLの完全なURLを入力します。 詳細については、「Webhook URL の取得」をご参照ください。
説明 AlertmanagerサーバーがElastic Compute Service (ECS) インスタンスにデプロイされている場合、ECSインスタンスが存在するリージョンを選択し、リージョン情報を設定するときにLANまたは仮想プライベートクラウド (VPC) 経由でアクセス可能な内部エンドポイントを使用することを推奨します。 AlertmanagerサーバーがECSインスタンスにデプロイされていない場合は、リージョンを選択し、インターネット経由でアクセスできるパブリックエンドポイントを使用できます。

Alertmanagerアラート

次のサンプルコードは、Alertmanagerアラートの例を示しています。
説明 alertsフィールドに複数のアラートが含まれている場合、各アラートはLog Serviceアラートに変換されます。 アラートフィールドでは、各アラートは括弧 {} の別々のペアで囲まれています。
{
  "version": "4" 、
  "groupKey": "alertname、job" 、
  "truncatedAlerts": 0、
  "status": "firing" 、
  "receiver": "webhook" 、
  "groupLabels": {
    "alertname": "アラート" 、
    "job": "promethueus"
  },
  "commonLabels": {
    "instance": "localhost:9090"
  },
  "commonAnnotations": {}、
  "externalURL": " http://example.com/#/alerts " 、
  "alerts": [
    {
      "annotations": {
        "description": "description info" 、
        "summary": "高いリクエスト遅延"
      },
      "endsAt": "2020-10-28T12:28:52.710Z" 、
      "startsAt": "2020-10-28T12:23:37.710Z" 、
      "generatorURL": "" 、
      "labels": {
        "alertname": "アラート" 、
        "instance": "localhost:9090" 、
        "仕事": "プロメテウス" 、
        "重大度": "ページ"
      }
    },
    ...
  ]
}

フィールドマッピング

AlertmanagerアラートがLog Serviceに取り込まれると、フィールドマッピングに基づいてアラートがLog Serviceアラートに変換されます。 以下に、Log Service アラートのサンプルコードを示します。

{
  "aliuid": "{アラート取り込みアプリケーションが属するAlibaba CloudアカウントのID}" 、
  "alert_instance_id": "{自動生成}" 、
  "project": "{アラートセンターが属するプロジェクト}" 、
  "region": "{アラートセンターが属するプロジェクトのリージョン}" 、
  "alert_id": "アラート" 、
  "alert_type": "sls_pub" 、
  "alert_name": "アラート" 、
  "next_eval_interval": 0、
  "alert_time": 1603859020、
  "fire_time": 1603859017、
  "resolve_time": 0,
  "status": "firing" 、
  "labels": {
    "instance": "localhost:9090" 、
    "仕事": "プロメテウス"
  },
  "annotations": {
    "__pub_alert_region__": "{アラートの送信先のエンドポイントのリージョン}" 、
    "__config_app__": "sls_pub_alert" 、
    "__pub_alert_service__": "{アラート取り込みサービスのID}" 、
    "__pub_alert_app__": "{アラート取り込みアプリケーションのID}" 、
    "__pub_alert_protocol__": "alert_manager" 、
    "desc": "description info" 、
    "summary": "高いリクエスト遅延"
  },
  "severity": 2、
  "policy": {
    "alert_policy_id": "{アラート取り込みアプリケーションに指定されているアラートポリシーのID}" 、
    "action_policy_id": "{アラート取り込みアプリケーションに指定されているアクションポリシーのID}" 、
    "repeat_interval": "{アラート取り込みアプリケーションに指定されたサイクル}"
  },
...
次の表に、Log ServiceとAlertmanagerアラート間のフィールドマッピングを示します。
Log ServiceAlertmanager説明
aliuidなしアラート取り込みアプリケーションが属する Alibaba Cloud アカウントの ID。
alert_idalertnameアラートモニタリングルールの ID。

Alertmanagerアラートのlabelsフィールドにalertnameフィールドが含まれている場合、alert_idフィールドの値はalertnameフィールドの値と同じです。 それ以外の場合、alert_idフィールドは空です。

alert_typeなしアラートのタイプ。 値は sls_pub に固定されています。
alert_namealertnameアラートモニタリングルールのルール名。

Alertmanagerアラートのlabelsフィールドにalertnameフィールドが含まれている場合、alert_nameフィールドの値はalertnameフィールドの値と同じです。 それ以外の場合、alert_nameフィールドは空です。

statusstatusアラートのステータス。
next_eval_intervalなしアラートが評価される間隔。 値は 0 に固定されています。
alert_timeなしアラートがトリガーされた時刻。 時間は、Log ServiceがAlertmanagerアラートを受信したことを示します。
fire_timestartsAtアラートルールが最初にトリガーされた時刻。
resolve_timeendsAtアラートが作成された時刻。

Alertmanagerアラートのstatusフィールドの値がfiringの場合、resolt_timeフィールドの値は0です。 それ以外の場合、resolve_timeフィールドの値は、endsAtフィールドによって示されるタイムスタンプである。

labelslabelsアラートのラベル。

アラート取り込みアプリケーションの作成時に [エンリッチメント] タブでラベルを追加すると、ラベルは labels フィールドに追加されます。

annotationsannotationsアラートの注釈。 Log Serviceアラートのannotationsフィールドに次のフィールドが追加されます。
  • __config_app __: "sls_pub_alert"
  • __pub_alert_service __: {アラート取り込みサービスのID}
  • __pub_alert_app __: {アラート取り込みアプリケーションのID}
  • __pub_alert_protocol ___: "alert manager"
  • __pub_alert_region __: {アラートの送信先のエンドポイントのリージョン}
  • desc:

    Alertmanagerアラートのannotationsフィールドにdescdescription、およびsummaryフィールドが含まれている場合、Log Serviceアラートのdescフィールドの値は3つのフィールドの値の組み合わせです。

アラート取り込みアプリケーションの作成時に [エンリッチメント] タブで注釈を追加した場合、注釈は annotations フィールドに追加されます。

severityseverityアラートの重大度。
説明 Alertmanagerアラートに重大度フィールドが含まれている場合、Log Serviceは、アラートがLog Serviceに取り込まれた後、このフィールドの値を対応する重大度にマップします。 Alertmanagerアラートに重大度フィールドが含まれていない場合、Log Serviceはアラートに中程度の重大度を使用します。 詳細については、「重大度レベル」をご参照ください。
policyなしアラート取り込みアプリケーションに指定されているアラートポリシー。 詳細については、「ポリシー変数の説明」をご参照ください。
projectなしアラートセンターが属するプロジェクト。 詳細は、「プロジェクト」をご参照ください。
drill_down_query
  • generatorURL
  • externalURL および groupLabels
AlertmanagerアラートのURL。
  • AlertmanagerアラートにgeneratorURLフィールドが含まれている場合、drill_down_queryフィールドの値はgeneratorURLフィールドの値と同じです。
  • AlertmanagerアラートにgeneratorURLフィールドが含まれておらず、groupLabelsフィールドが空の場合、drill_down_queryフィールドの値はexternalURLフィールドの値と同じになります。
  • AlertmanagerアラートにgeneratorURLフィールドが含まれておらず、groupLabelsフィールドが空でない場合、drill_down_queryフィールドの値は、externalURLフィールドとgroupLabelsフィールドの値の組み合わせです。

URLをクリックすると、Alertmanagerのアラート管理ページにリダイレクトされます。 このページで、AlertmanagerはgroupLabelsフィールドの内容に一致するアラートを自動的に表示します。