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

:GrafanaアラートをLog Serviceに取り込む (Grafana 8.0以降)

最終更新日:Jan 03, 2025

Grafana は、アラート機能を使用するための GUI を備えています。 Grafanaに連絡先を追加して、GrafanaがLog Serviceのアラートシステムにアラートを送信できるようにすることができます。 アラートシステムは、受信したアラートのノイズ除去やアラート通知の送信など、アラートの処理を行います。 Grafanaバージョンが8.0以降の場合は、このトピックの指示に従うことができます。

前提条件

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

Grafana の設定

  1. Grafanaコンソールにログインします。
  2. 連絡先を作成します。
    1. 左側のナビゲーションウィンドウで、[アラート] > [連絡先] を選択し、[新しい連絡先] をクリックします。
    2. [連絡先の作成] ページで、次のパラメーターを設定します。
      Create contact point
      パラメーター説明
      名前連絡先の名前。
      接点タイプ接点のタイプ。 この例では、[webhook] を選択しています。
      Url連絡先のURL。 この例では、Log Service のアラート取り込みシステムでアラート取り込みサービスとアラート取り込みアプリケーションを作成すると生成される Webhook URL の完全な URL を入力しています。 詳細については、「Webhook URL の取得」をご参照ください。
    3. [連絡先の保存] をクリックします。
  3. 連絡先を通知ポリシーに追加します。
    連絡先をルート通知ポリシーに追加するか、ルートを作成して連絡先をルートに追加することができます。 この例では、連絡先をルート通知ポリシーに追加します。
    1. [通知ポリシー] をクリックします。
    2. [すべてのアラートのルートポリシー-デフォルト] セクションで、[編集] をクリックします。
    3. [デフォルトの連絡先] ドロップダウンリストで、ステップ2で作成した連絡先を選択します。
      Notification policies
    4. [保存] をクリックします。

Grafana アラート

次のサンプルコードは、Grafanaアラートの例を示しています。

{
    "receiver": "http" 、
    "status": "firing" 、
    "alerts":
    [
        {
            "status": "firing" 、
            "labels":
            {
                "alertname": "test"
            },
            "annotations":
            {
                "description": "test alert" 、
            },
            "startsAt": "2022-02-17T21:44:07.106902 + 08:00" 、
            "endsAt": "0001-01-01T00:00:00Z" 、
            "generatorURL": "http:// localhost:3000/alerting/abcd/edit" 、
            "fingerprint": "65d7bbdb01ce6c93" 、
            "silenceURL": "http:// localhost:3000/alerting/silence/new?alertmanager=grafana&matchers=alertname % 3Dtest" 、
            "dashboardURL": "" 、
            "panelURL": "" 、
            "valueString": "[ metric='go_threads{instance=\" prometheus\", job=\" prometheus\"}'labels ={__ name __= go_threads, instance=prometheus, job=prometheus} value=15 ]"
        }
    ],
    "groupLabels":
    {},
    "commonLabels":
    {
        "alertname": "test"
    },
    "commonAnnotations":
    {
        "description": "test alert" 、
    },
    "externalURL": "http:// localhost:3000/" 、
    "version": "1" 、
    "groupKey": "{}/{alertname=\" test\"}:{}" 、
    "truncatedAlerts": 0、
    "orgId": 1、
    "title": "[FIRING:1] (テスト)" 、
    "state": "アラート" 、
    "message": "** Firing **\n\nValue: [ metric='go_threads{instance=\" prometheus\", job=\" prometheus\"}'labels ={__ name __= go_threads, instance=prometheus, job=prometheus} value=15 \nLabels:\n // localhost:3000/alerting/abcd/edit\nSilence: http:// localhost:3000/alerting/silence/new?alertmanager=grafana&matchers=alertname % 3Dtest\n"
} 

フィールドマッピング

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

{
    "aliuid": "{アラート取り込みアプリケーションが属するAlibaba CloudアカウントのID}" 、
    "alert_instance_id": "{自動生成されるアラートインスタンスID}" 、
    "alert_id": "test" 、
    "alert_type": "sls_pub" 、
    "alert_name": "test" 、
    "region": "{アラートセンターが属するプロジェクトのリージョン}" 、
    "project": "{アラートセンターが属するプロジェクト}" 、
    "project_id": 0、
    "next_eval_interval": 0、
    "alert_time": 1645607565、
    "fire_time": 1645105447、
    "fire_results": null,
    "fire_results_count": 0、
    "resolve_time": 0,
    "status": "firing" 、
    "results": null,
    "labels":
    {},
    "annotations":
    {
        "__config_app__": "sls_pub_alert" 、
        "__pub_alert_app__": "{アラート取り込みアプリケーションのID}" 、
        "__pub_alert_protocol__": "grafana8" 、
        "__pub_alert_region__": "{アラートの送信先のエンドポイントのリージョン}" 、
        "__pub_alert_service__": "{アラート取り込みサービスのID}" 、
        "desc": "test alert" 、
        "fingerprint": "65d7bbdb01ce6c93" 、
        "silenceURL": "http:// localhost:3000/alerting/silence/new?alertmanager=grafana&matchers=alertname % 3Dtest" 、
        "valueString": "[ metric='go_threads{instance=\" prometheus\", job=\" prometheus\"}'labels ={__ name __= go_threads, instance=prometheus, job=prometheus} value=15 ]"
    },
    "severity": 6、
    "policy":
    {
        "alert_policy_id": "{アラート取り込みアプリケーションに指定されたアラートポリシー}" 、
        "action_policy_id": "{アラート取り込みアプリケーションに指定されているアクションポリシー}" 、
        "use_default": false,
        "repeat_interval": "{アラート取り込みアプリケーションに指定された繰り返し間隔}"
    },
    "template": null,
    "drill_down_query": "http:// localhost:3000/alerting/abcd/edit" 、} 
下表に、Log Service と Grafana 間のフィールドマッピングを示します。
Log ServiceフィールドGrafanaフィールド説明
aliuidなしアラート取り込みアプリケーションが属する Alibaba Cloud アカウントの ID。
alert_idalertnameアラートモニタリングルールの ID。

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

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

Grafanaアラートのlabelsフィールドにalertnameフィールドが含まれている場合、alert_nameフィールドの値はalertnameフィールドの値と同じです。 さらに、Grafanaアラートのalertnameフィールドは、変換後に削除されます。 値が異なる場合、alert_nameフィールドは空です。

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

Grafanaアラートの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:

    Grafanaアラートのannotationsフィールドにdescフィールド、descriptionフィールド、summaryフィールド、またはこれらのフィールドの組み合わせが含まれている場合、Log Serviceアラートのdescフィールドの値は、Grafanaアラートのdescフィールド、descriptionフィールド、summaryフィールド、またはこれらのフィールドの値の組み合わせです。 desc、description、およびsummaryフィールドは、優先度の高い順になっています。 さらに、Grafanaアラートのdesc、description、およびsummaryフィールドは、変換後に削除されます。

  • fingerprint: Grafanaアラートのannotationsフィールドのfingerprintフィールド
  • silenceURL: Grafanaアラートの注釈フィールドのsilenceURLフィールド
  • dashboardURL: Grafanaアラートの注釈フィールドのdashboardURLフィールド
  • panelURL: Grafanaアラートの注釈フィールドのpanelURLフィールド
  • valueString: Grafanaアラートの注釈フィールドのvalueStringフィールド

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

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

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