全部產品
Search
文件中心

:接入Zabbix警示(Zabbix 4.4及以上版本)

更新時間:Jan 13, 2025

Zabbix作為常用的開源監控系統,提供了豐富的警示規則用於系統監控,同時支援多種警示通知渠道。您可以將Log Service警示系統設為Zabbix的一個通知渠道,由Log Service警示系統完成警示降噪、通知等處理。本文適用於Zabbix 4.4及以上版本。

前提條件

Zabbix配置

  1. 登入Zabbix控制台。
  2. 可選:配置全域變數ZABBIX.SERVER.URL
    配置後,全域變數ZABBIX.SERVER.URL將作為警示內容的一部分發送給Log Service。你可以在Log Service的警示通知中,單擊對應的資訊,跳轉至Zabbix控制台,查看更多資訊。

    如果您不設定全域變數ZABBIX.SERVER.URL的值,則在警示訊息中顯示預設值127.0.0.1。

    1. 在左側導覽列中,選擇Administration > General > Macros
    2. Macros頁面中,單擊Add
    3. 添加全域變數ZABBIX.SERVER.URL,值為Zabbix控制台的訪問地址。
      Zabbix警示
    4. 單擊Update
  3. 添加Alibaba Cloud SLS (Log Service)通知渠道。
    1. 在左側導覽列中,選擇Administration > Media types
    2. Media types頁面的右上方,單擊Import
    3. Import對話方塊中,選擇您已下載的alibaba_cloud_sls.yml檔案,選中Update existing,然後單擊Import
      匯入alibaba_cloud_sls.yml
    4. Media types頁面中,單擊Alibaba Cloud SLS (Log Service)
    5. Parameters配置項中,修改hook_url欄位的值,然後單擊Update
      hook_url欄位的值修改為您在Log Service中建立開放警示服務和應用後產生的介面資訊(完整URL)。如何擷取,請參見擷取介面資訊
      說明 如果您的Zabbix運行在阿里雲ECS上,則建議您在選擇Zabbix警示訊息接入地區時,選擇ECS所在地區,並使用區域網路或VPC網域名稱。否則您選擇任一地區的公網介面即可。
      hook_url
  4. 為目標使用者佈建通知渠道。
    1. 在左側導覽列中,選擇Administration > Users
    2. 在使用者列表中,單擊目標使用者。
      您也可以單擊Create user,建立一個新使用者。
    3. Media頁簽中,單擊其中一個Media對應的Edit
      您也可以單擊Add,建立一個新的Media。
    4. Media面板中,選擇TypeAlibaba Cloud SLS (Log Service),然後單擊Update
      通知渠道
    5. 單擊Update
  5. 配置觸發器。
    1. 在左側導覽列中,選擇Configuration > Actions > Trigger actions
    2. Trigger actions頁面中,單擊您已建立的觸發器。
    3. Operations頁簽中,單擊Operations地區中的Add
      您也可以單擊目標Operation對應的Editoperation
    4. Operation details對話方塊中,選擇您的目標使用者或使用者組,以及配置Send only toAlibaba Cloud SLS (Log Service),然後單擊Add
      添加operation
    5. 單擊Update

警示訊息解析

Zabbix警示訊息中包含100多種變數。更多資訊,請參見Zabbix官方文檔。Log Service只選取其中幾十個訊息變數組成警示訊息。Zabbix警示訊息內容樣本如下:

Zabbix Macro名稱樣本值
{TRIGGER.ID}19006
{TRIGGER.NAME}test used
{EVENT.UPDATE.STATUS}0
{EVENT.VALUE}1
{DATE}2021.06.10
{TIME}12:44:23
{EVENT.DATE}2021.06.10
{EVENT.TIME}19:23:01
{EVENT.RECOVERY.DATE}""
{EVENT.RECOVERY.TIME}""
{HOST.NAME}zabbix-agent
{HOST.IP}192.0.2.0
{TRIGGER.HOSTGROUP.NAME}Linux servers
{EVENT.DURATION}20h 1m 31s
{TRIGGER.DESCRIPTION}The system is running out of free memory.
{EVENT.OPDATA}73.22 %
{EVENT.TAGS}Application:Memory
{NSEVERITY}2
{EVENT.ID}1036

欄位對應

Log Service警示內容中的欄位與Zabbix側的映射關係如下:

表 1. 欄位對應
Log ServiceZabbix說明
aliuid用於接入警示的開放警示應用所屬的阿里雲帳號ID
alert_id{TRIGGER.ID}警示監控規則ID
alert_type警示類型,固定為sls_pub。
alert_name{TRIGGER.NAME}警示監控規則名稱
status{EVENT.UPDATE.STATUS}{EVENT.VALUE}警示狀態。

如果Zabbix中的{EVENT.UPDATE.STATUS}值和{EVENT.VALUE}值都為0,則表示resolved(警示恢複)。其餘值都表示firing(觸發警示)。

next_eval_interval警示評估時間間隔,固定為0。
alert_time警示本次評估時間。

通過計算{DATE}{TIME}所得。

fire_time警示首次觸發時間。

通過計算{EVENT.DATE}{EVENT.TIME}所得。

resolve_time警示恢復。
  • 如果警示狀態是firing,則值為0。
  • 如果警示狀態為resolved,則值為具體恢復。通過計算{EVENT.RECOVERY.DATE}{EVENT.RECOVERY.TIME}所得。
labels{HOST.NAME}警示標籤資訊。
如果您在建立開放警示應用時 ,在資訊加工中添加了標籤資訊,則此標籤資訊將被添加到labels欄位中。
說明 當您在資訊加工中配置的標籤的Key與Zabbix警示訊息的tags欄位中的子欄位重複時,映射結果以您在資訊加工中配置的為準。
annotations{EVENT.TAGS}Zabbix警示被接入到Log Service後,Log Service會將{EVENT.TAGS}欄位展開為多個索引值對,添加到annotations欄位中。
  • {HOST.IP}映射為__host_ip__
  • {TRIGGER.HOSTGROUP.NAME}映射為__host_group_name__
  • {EVENT.DURATION}映射為event_duration
  • {EVENT.NAME}映射為title
  • {TRIGGER.DESCRIPTION}映射為desc
  • {EVENT.OPDATA}映射為event_opdata
除以上欄位外,還會額外添加如下欄位。
  • __config_app__: "sls_pub_alert"
  • __pub_alert_service__: {開放警示服務id}
  • __pub_alert_app__: {開放警示應用id}
  • __pub_alert_protocol__: "zabbix"
  • __pub_alert_region__: {接收警示訊息的網路介面對應的地區}

如果您在建立開放警示應用時 ,在資訊加工中添加了標註資訊,則此標註資訊將被添加到annotations欄位中。

severity{NSEVERITY}警示嚴重度。更多資訊,請參見警示嚴重度說明
policy您在開放警示應用中配置的警示策略。更多資訊,請參見Policy結構
project警示中心所屬的Project。更多資訊,請參見專案(Project)
drill_down_query{$ZABBIX.SERVER.URL}{TRIGGER.ID}{EVENT.ID}連結形式,單擊後可跳轉到Zabbix的警示訊息管理頁面。
表 2. 警示嚴重度說明
Severity(Zabbix)Severity(Log Service)
Not Classifiedreport
Informationlow
Warningmedium
Averagemedium
Highhigh
Disastercritical

常見問題

如何查看動作記錄?

  1. 登入Zabbix控制台。
  2. 在左側導覽列中,選擇Reports > Action log
  3. 查看動作記錄。
    動作記錄