全部產品
Search
文件中心

:接入Loki警示

更新時間:Jan 14, 2025

您可以在Loki中,將Log Service開放警示系統配置為一個Alertmanager組件。配置完成後,Loki會將警示訊息發送到Log Service警示系統中,由Log Service警示系統完成警示降噪、通知等處理。

前提條件

已建立協議Loki的開放警示應用。具體操作,請參見配置開放警示對外介面

背景資訊

Loki是水平可擴充、高可用、多租戶的日誌彙總系統。您可以將Loki警示直接接入Log Service警示系統,也可以通過Grafana或Alertmanager,間接將Loki警示接入Log Service警示系統。

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_idalertname警示監控規則ID。
alert_type警示類型,固定為sls_pub。
alert_namealertname警示監控規則名稱。
status警示狀態,包括firing和resolved。
  • 如果Loki警示訊息中的endsAt欄位的值大於alert_time欄位的值,則status的值為firing。
  • 如果Loki警示訊息中的endsAt欄位的值小於alert_time欄位的值,則status的值為resolved。
next_eval_interval警示評估時間間隔。如果當前警示狀態為firing,則next_eval_interval欄位的值為(endsAt-alert_time)/4。
alert_timeLog Service接收到Loki警示訊息的時間。
fire_timestartsAtLog Service接收到Loki警示訊息的時間。
resolve_time警示恢復,詳細說明如下:
  • 如果Loki警示訊息中的endsAt欄位的值大於alert_time欄位的值,則resolve_time的值為0。
  • 如果Loki警示訊息中的endsAt欄位的值小於alert_time欄位的值,則resolve_time的值為endsAt欄位值對應的時間戳記。
labelslabels警示標籤資訊。

如果Loki警示訊息的labels欄位中存在severity欄位,則被接入到Log Service後,severity欄位將被添加Log Service警示的annotations欄位中。

annotationsannotationsLoki警示被接入到Log Service後,Log Service警示的annotations欄位中將添加如下額外欄位。
  • __config_app__: "sls_pub_alert"
  • __pub_alert_service__: {開放警示服務ID}
  • __pub_alert_app__: {開放警示應用ID}
  • __pub_alert_protocol__: "loki"
  • __pub_alert_region__: {接收警示訊息的網路介面對應的地區}
severityseverity警示嚴重度。更多資訊,請參見警示嚴重程度
policy您在開放警示應用中配置的警示策略。更多資訊,請參見Policy結構
project警示中心所屬的Project。更多資訊,請參見專案(Project)
drill_down_querygeneratorURL展示Loki警示訊息中generatorURL欄位的值。