Grafana は、アラート機能を使用できる GUI を提供します。Grafana でコンタクトポイントを追加すると、Grafana は Log Service のアラートシステムにアラートを送信できます。その後、アラートシステムは、アラートのノイズ除去やアラート通知の送信などの処理を行います。ご利用の Grafana のバージョンが 8.0 以降の場合は、このトピックの手順に従ってください。
前提条件
アラート取り込みアプリケーションが作成済みであること。詳細については、「アラート取り込み用の Webhook URL の設定」をご参照ください。Grafana の設定
- Grafana コンソールにログインします。
- コンタクトポイントを作成します。
- 左側のナビゲーションウィンドウで、 を選択し、[New contact point] をクリックします。
- [Create contact point] ページで、次のパラメーターを設定します。
パラメーター 説明 Name コンタクトポイントの名前。 Contact point type コンタクトポイントのタイプ。[webhook] を選択します。 Url コンタクトポイントの URL。この例では、Log Service のアラート取り込みシステムでアラート取り込みサービスとアラート取り込みアプリケーションを作成した後に生成される Webhook URL の完全な URL を入力します。詳細については、「Webhook URL の取得」をご参照ください。 - [Save contact point] をクリックします。
- コンタクトポイントを通知ポリシーに追加します。
コンタクトポイントは、ルート通知ポリシーに追加するか、ルートを作成してそのルートに追加することができます。この例では、コンタクトポイントをルート通知ポリシーに追加します。
- [Notification policies] をクリックします。
- [Root policy - default for all alerts] セクションで、[Edit] をクリックします。
- [Default contact point] リストから、ステップ 2 で作成したコンタクトポイントを選択します。
- [Save] をクリックします。
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] (test)",
"state": "alerting",
"message": "**Firing**\n\nValue: [ metric='go_threads{instance=\"prometheus\", job=\"prometheus\"}' labels={__name__=go_threads, instance=prometheus, job=prometheus} value=15 ]\nLabels:\n - alertname = test\nAnnotations:\n - description = test alert\nSource: http://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 | 説明 |
| aliuid | N/A | アラート取り込みアプリケーションに関連付けられている Alibaba Cloud アカウント ID。 |
| alert_id | alertname | アラートルール ID。 Grafana アラートメッセージの labels フィールドに alertname フィールドが含まれている場合、alert_id の値は alertname フィールドの値になります。それ以外の場合は空です。 |
| alert_type | N/A | アラートタイプ。値は sls_pub に固定されます。 |
| alert_name | alertname | アラートルール名。 Grafana アラートメッセージの labels フィールドに alertname フィールドが含まれている場合、alert_name は alertname フィールドの値に設定され、元のフィールドは削除されます。それ以外の場合は空です。 |
| status | status | アラートステータス。 |
| next_eval_interval | N/A | アラート評価間隔。値は 0 に固定されます。 |
| alert_time | N/A | Log Service が Grafana アラートを受信したときのタイムスタンプ。 |
| fire_time | startsAt | アラートがトリガーされた時間。 |
| resolve_time | endsAt | アラートが解決された時間。 Grafana アラートメッセージの status が firing の場合、resolve_time の値は 0 です。それ以外の場合、値は endsAt に対応するタイムスタンプです。 |
| labels | labels | アラートラベル。 アラート取り込みアプリケーションの作成時に 情報処理 でタグ情報を追加すると、このタグ情報が labels フィールドに追加されます。 |
| annotations | annotations | annotations は保持され、次のフィールドが追加されます:
アラート取り込みアプリケーションの作成時に 情報処理 でアノテーションを追加すると、そのアノテーションが annotations フィールドに追加されます。 |
| severity | severity | アラートの重大度。 説明 アノテーションlabelsseverity フィールドの値を Log Service のアラート重大度レベルにマッピングします。どちらの場所にも フィールドが見つからない場合、アラートの重大度はデフォルトで「中」になります。詳細については、「アラート重大度」をご参照ください。 |
| policy | N/A | アラート取り込みアプリケーションで設定されたアラートポリシー。詳細については、「ポリシー構造」をご参照ください。 |
| project | N/A | アラートセンターを含む Log Service プロジェクト。詳細については、「プロジェクト」をご参照ください。 |
| drill_down_query |
|
Grafana でアラートをドリルダウンするための URL。
この URL をクリックすると、Grafana のアラート管理ページに移動し、groupLabels フィールドの内容に一致するアラートメッセージが自動的に表示されます。 |