您可以在內容範本中選擇合適的變數(labels、annotations、fire_results或results),用於在警示通知中引用日誌內容。
Log Service支援在警示通知中展示觸發警示的詳細資料,協助您在接收到警示通知後,瞭解警示詳情。針對該功能,需要您在建立警示監控規則時,配置合理的參數,並在內容範本中添加labels、annotations、fire_results或results等變數。更多資訊,請參見內容範本變數說明(新版)。
labels:警示標籤。
annotations:警示標註。
fire_results:觸發警示的資料。
results:查詢參數和中間結果。
例如在監控Nginx訪問時,您可以使用如下查詢和分析語句擷取狀態代碼、報錯機器的IP地址、錯誤次數等資訊,然後針對該結果建立警示監控規則,並在內容範本中引用該結果。當訪問出錯(status >=400)時,Log Service會給您發送警示通知,並在警示通知中展示狀態代碼、報錯機器的IP地址、錯誤次數等資訊。
查詢和分析語句
status >=400 | SELECT status, __source__ AS ip, count(*) AS cnt GROUP BY status,ip
查詢和分析結果
使用labels變數
您可以在內容範本中使用labels變數,用於在警示通知中引用日誌內容。
警示監控規則
您可以在配置警示規則時添加標籤或者設定分組評估。觸發警示後,警示訊息中將產生labels資訊。
例如您要在警示訊息中添加日誌來源、所屬環境、狀態代碼等資訊,則您可以添加標籤
app:nginx
和env:prod
以及設定分組評估欄位為status。警示訊息
觸發警示後,將產生如下警示訊息。
{ "labels": { "app": "nginx", "env": "prod", "status": "404" } }
內容範本
您可以在內容範本中添加labels變數,則警示通知中將引用您所設定的日誌內容。如何設定內容範本,請參見建立內容範本。
使用annotations變數
您可以在內容範本中使用annotations變數,用於在警示通知中引用日誌內容。
警示監控規則
您可以在配置警示規則時手動添加標註資訊或使用自動添加標註功能。觸發警示後,警示訊息中將產生annotations資訊。更多資訊,請參見標註。
說明Log Service預設提供兩個標註。
例如您要在警示訊息中添加狀態代碼、機器IP地址、錯誤次數等資訊,則您可以添加
status:${status}
、ip:${ip}
、cnt:${cnt}
等標註資訊。手動添加標註
使用自動添加標註功能
警示訊息
觸發警示後,將產生如下警示訊息。
{ "annotations": { "title": "Nginx訪問錯誤警示觸發", "desc": "狀態代碼400錯誤發生了15次" "status": "400" "ip": "127.0.0.1" "cnt": "15" "__count__": "1" } }
內容範本
您可以在內容範本中添加annotations變數,則警示通知中將引用您所設定的日誌內容。如何設定內容範本,請參見建立內容範本。
使用fire_results變數
您可以在內容範本中使用fire_results變數,用於在警示通知中引用日誌內容。
警示監控規則
Log Service會根據您設定的監控規則,產生警示訊息。
警示訊息
觸發警示後,將產生如下警示訊息。包括狀態代碼、機器IP地址,發生的錯誤數。
{ "fire_results": [ { "status": "401", "ip": "127.0.0.1", "cnt": "3" }, { "status": "400", "ip": "127.0.0.1", "cnt": "7" }, { "status": "501", "ip": "127.0.0.1", "cnt": "4" }, { "status": "404", "ip": "127.0.0.1", "cnt": "4" }, { "status": "402", "ip": "127.0.0.1", "cnt": "6" }, { "status": "403", "ip": "127.0.0.1", "cnt": "8" } ] }
內容範本
您可以在內容範本中添加fire_results變數,則警示通知中將引用您所設定的日誌內容。如何設定內容範本,請參見建立內容範本。
使用results變數
您可以在內容範本中使用results變數,用於在警示通知中引用日誌內容。
警示監控規則
Log Service會根據您設定的監控規則,產生警示訊息。
警示訊息
觸發警示後,將產生如下警示訊息。包括狀態代碼、機器IP地址,發生的錯誤數。
說明如果一個警示監控規則中有多個查詢統計,那麼results數組將包含多項,每項對應一個查詢統計。
{ "results": [{ "store_type": "log", "region": "cn-hangzhou", "project": "test-alert", "store": "nginx-access-log", "query": "status >= 400 | select status, __source__ as ip, count(*) as cnt group by status, ip", "start_time": 1640006894, "end_time": 1640007014, "dashboard_id": "", "raw_results": [ { "status": "401", "ip": "127.0.0.1", "cnt": "3" }, { "status": "400", "ip": "127.0.0.1", "cnt": "7" }, { "status": "501", "ip": "127.0.0.1", "cnt": "4" }, { "status": "404", "ip": "127.0.0.1", "cnt": "4" }, { "status": "402", "ip": "127.0.0.1", "cnt": "6" }, { "status": "403", "ip": "127.0.0.1", "cnt": "8" } ], "raw_result_count": 6, "fire_result": { "status": "401", "ip": "127.0.0.1", "cnt": "3" }, "has_sql": true, "truncated": false, "role_arn": "" }] }
內容範本
您可以在內容範本中添加results變數,則警示通知中將引用您所設定的日誌內容。如何設定內容範本,請參見建立內容範本。
模板變數說明
{%- for result in alert.fire_results %}
- status: {{ result.status }}, count: {{ result.cnt }}
{%- endfor %}
Log Service還支援通過內建函數格式化通知內容。更多資訊,請參見內容範本文法(新版)和內建模板函數。