Log Serviceのアラート取り込みシステムをLokiのAlertmanagerコンポーネントとして設定できます。 設定が完了すると、LokiはLog Serviceのアラートシステムにアラートを送信します。 次いで、アラートシステムは、アラートをノイズ除去し、アラート通知を送信する。
前提条件
アラート取り込みアプリケーションが作成されている必要があります。 アラート取り込みアプリケーションのProtocolパラメーターがLokiに設定されています。 詳細については、「アラート取り込み用のwebhook URLの設定」をご参照ください。背景情報
Lokiは、水平方向にスケーラブルで可用性の高いマルチテナントログ集約システムです。 Log ServiceのアラートシステムにLokiアラートを取り込むことができます。 GrafanaまたはAlertmanagerを使用して、Log ServiceのアラートシステムにLokiアラートを取り込むこともできます。- Grafanaを使用してLokiアラートをLog Serviceに取り込む方法の詳細については、「GrafanaアラートをLog Serviceに取り込む (8.0より前のGrafanaバージョン) 」をご参照ください。
- Alertmanagerを使用してLokiアラートをLog Serviceに取り込む方法の詳細については、「AlertmanagerアラートをLog Serviceに取り込む」をご参照ください。
Lokiの設定
Lokiの設定ファイルで、alertmanager_urlパラメーターをrulerパラメーターに追加します。 alertmanager_urlパラメーターを、アラート取り込みサービスとアラート取り込みアプリケーションの作成後に生成されるwebhook URLの完全なURLに設定します。 詳細については、「webhook URLの取得」をご参照ください。
定規:
alertmanager_url: {ALIYUN_SLS_ENDPOINT}/event/webhook/RAMAK_{ACCESS_KEY_ID}/{WEBHOOK_APP_ID}
...ロキアラート
次の例は、Lokiアラートの内容を示しています。
{
"annotations": {
"description": "description info" 、
"summary": "高いリクエスト遅延"
},
"endsAt": "2020-10-28T12:28:52.710Z" 、
"startsAt": "2020-10-28T12:23:37.710Z" 、
"generatorURL": "http:// 127.0.0.1:9090/graph?g0.expr=go_threads % 7Binstance % 3D % 22localhost % 3A9090% 22% 2Cjob % 3D % 22prometheus % 22% 7D + % 3E + 0\\u0026g0.tab=1" 、
"labels": {
"alertname": "HighErrorRate" 、
"instance": "localhost:9090" 、
"仕事": "プロメテウス" 、
"重大度": "ページ"
}
}
]フィールドマッピング
LokiアラートをLog Serviceに取り込むと、LokiのアラートフィールドはLog Serviceのアラートフィールドに変換されます。 次の例は、Log Serviceアラートのフィールドを示しています。
"aliuid": "{アラート取り込みアプリケーションが属するAlibaba CloudアカウントのID}" 、
"alert_instance_id": "{自動生成されるアラートインスタンスID}" 、
"project": "{アラートセンターが属するプロジェクト}" 、
"region": "{プロジェクトが属するリージョン}" 、
"alert_id": "HighErrorRate" 、
"alert_type": "sls_pub" 、
"alert_name": "HighErrorRate" 、
"next_eval_interval": 78、
"alert_time": 1603859020、
"fire_time": 1603859017、
"resolve_time": 0,
"status": "firing" 、
"labels": {
"alertname": "HighErrorRate" 、
"instance": "localhost:9090" 、
"仕事": "プロメテウス"
},
"annotations": {
"__pub_alert_region__": "{アラートの送信先のエンドポイントのリージョン}" 、
"__config_app__": "sls_pub_alert" 、
"__pub_alert_service__": "{アラート取り込みサービスのID}" 、
"__pub_alert_app__": "{アラート取り込みアプリケーションのID}" 、
"__pub_alert_protocol__": "loki" 、
"重大度": "ページ"
},
"severity": 2、
"policy": {
"alert_policy_id": "{アラート取り込みアプリケーションに指定されたアラートポリシー}" 、
"action_policy_id": "{アラート取り込みアプリケーションに指定されているアクションポリシー}" 、
"repeat_interval": "{アラート取り込みアプリケーションに指定されたサイクル}"
},
"drill_down_query": "http:// 127.0.0.1:9090/graph?g0.expr=go_threads % 7Binstance % 3D % 22localhost % 3A9090% 22% 2Cjob % 3D % 22prometheus % 22% 7D + % 3E + 0\\u0026g0.tab=1"
} 次の表に、Log ServiceのアラートフィールドとLokiのアラートフィールドの間のマッピングを示します。
| Log Serviceのアラートフィールド | ロキのアラートフィールド | 説明 |
| aliuid | なし | アラート取り込みアプリケーションが属する Alibaba Cloud アカウントの ID。 |
| alert_id | alertname | アラートモニタリングルールの ID。 |
| alert_type | なし | アラートのタイプ。 有効な値は、sls_pub です。 |
| alert_name | alertname | アラートモニタリングルールの ID。 |
| status | なし | アラートのステータス。 有効な値は、firing と resolved です。
|
| next_eval_interval | なし | アラートが評価される間隔。 アラートの現在のステータスが発生している場合、next_eval_intervalフィールドの値は、次の式を使用して計算されます。評価間隔= (endsAt-alert_time )/4。 |
| alert_time | なし | Log ServiceがLokiアラートを受信した時刻。 |
| fire_time | startsAt | Log ServiceがLokiアラートを受信した時刻。 |
| resolve_time | なし | アラートの解除日時。
|
| labels | labels | アラートのラベル。 Lokiアラートのlabelsフィールドにseverityフィールドが存在する場合、アラートがLog Serviceに取り込まれた後、severityフィールドがannotationsフィールドに追加されます。 |
| annotations | annotations | LokiアラートがLog Serviceに取り込まれると、対応するLog Serviceアラートのannotationsフィールドに次のフィールドが追加されます。
|
| severity | severity | アラートの重大度。 詳細については、「重大度レベル」をご参照ください。 |
| policy | なし | アラート取り込みアプリケーションに指定されているアラートポリシー。 詳細については、「ポリシー変数の説明」をご参照ください。 |
| project | なし | アラートセンターが属するプロジェクト。 詳細は、「プロジェクト」をご参照ください。 |
| drill_down_query | generatorURL | LokiアラートのgeneratorURLフィールドの値が表示されます。 |