您可以在Loki中,將Log Service開放警示系統配置為一個Alertmanager組件。配置完成後,Loki會將警示訊息發送到Log Service警示系統中,由Log Service警示系統完成警示降噪、通知等處理。
前提條件
已建立協議為Loki的開放警示應用。具體操作,請參見配置開放警示對外介面。背景資訊
Loki是水平可擴充、高可用、多租戶的日誌彙總系統。您可以將Loki警示直接接入Log Service警示系統,也可以通過Grafana或Alertmanager,間接將Loki警示接入Log Service警示系統。- 通過Grafana接入Loki警示的操作步驟,請參見接入Grafana警示(Grafana 8.0以下版本)。
- 通過Alertmanager接入Loki警示的操作步驟,請參見接入Alertmanager警示。
Loki配置
在Loki設定檔的ruler配置項中添加alertmanager_url配置。其中,設定alertmanager_url為您在Log Service中建立開放警示服務和應用後產生的介面資訊(完整URL)。如何擷取,請參見擷取介面資訊。
ruler:
alertmanager_url: {ALIYUN_SLS_ENDPOINT}/event/webhook/RAMAK_{ACCESS_KEY_ID}/{WEBHOOK_APP_ID}
...Loki警示訊息
Loki警示訊息內容樣本如下:
[
{
"annotations": {
"description": "description info",
"summary": "High request latency"
},
"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",
"job": "prometheus",
"severity": "page"
}
}
]欄位對應
Loki警示訊息被接入到Log Service後,映射為Log Service警示內容。樣本如下:
{
"aliuid": "{開放警示應用所屬的阿里雲帳號ID}",
"alert_instance_id": "{自動產生}",
"project": "{警示中心所屬的Project}",
"region": "{警示中心Project所在地區}",
"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",
"job": "prometheus"
},
"annotations": {
"__pub_alert_region__": "{接收警示訊息的網路介面對應的地區}",
"__config_app__": "sls_pub_alert",
"__pub_alert_service__": "{開放警示服務ID}",
"__pub_alert_app__": "{開放警示應用ID}",
"__pub_alert_protocol__": "loki",
"severity": "page"
},
"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欄位 | Loki欄位 | 說明 |
| aliuid | 無 | 用於接入警示的開放警示應用所屬的阿里雲帳號ID。 |
| alert_id | alertname | 警示監控規則ID。 |
| alert_type | 無 | 警示類型,固定為sls_pub。 |
| alert_name | alertname | 警示監控規則名稱。 |
| status | 無 | 警示狀態,包括firing和resolved。
|
| next_eval_interval | 無 | 警示評估時間間隔。如果當前警示狀態為firing,則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欄位將被添加Log Service警示的annotations欄位中。 |
| annotations | annotations | Loki警示被接入到Log Service後,Log Service警示的annotations欄位中將添加如下額外欄位。
|
| severity | severity | 警示嚴重度。更多資訊,請參見警示嚴重程度。 |
| policy | 無 | 您在開放警示應用中配置的警示策略。更多資訊,請參見Policy結構。 |
| project | 無 | 警示中心所屬的Project。更多資訊,請參見專案(Project)。 |
| drill_down_query | generatorURL | 展示Loki警示訊息中generatorURL欄位的值。 |