Elasticsearch(20) — 設置 Connector、告警、告警規則

Tako
Sep 22, 2024

--

這篇用來記錄怎麼設定告警規則,但因為是免費版的,所以先記到 log 裡,付費版理論上就可以用寄信、webhook 的功能就是了

  • Connector

這個算是指要連接到哪個服務,付費版會有 webhook, smtp …等,但免費版只能寫到 log 或是寫入 Elasticsearch 的 index 裡

在 Stack management > connectors > create connector,建立 connector

然後我要選擇寫到 index 裡,這會跟後續的告警相關

寫入 connector 的名稱,以及寫入 index 的名稱,之後儲存

這樣就建好了,用播放鍵可以模擬 connetor 行為

裡面大概長這樣,有告警的 rule,還有connector,可以在這裡測試

  • Rule

接著要來設定 rule,也就是告警的條件

在 Stack management > rules > create rule,建立規則

然後選擇告警條件,這樣我選集群健康告警

然後進入 Create rule 介面開始設置,首先是告警名稱

然後設定觸發頻率,我只是要測試,所以選 1 分鐘

然後在 actions 的地方,選剛剛建立相同類型的 connector

會跳出介面,先選擇剛剛建的 connector,這裡的 check 我選只要達到告警條件就持續告警

然後編輯規則,這個就要自己寫了,然後也可以寫中文

當然 {{ }} 之間的變數要寫啥,可以從紅框進入看怎麼設定,裡面有解釋

現在告警規則設定好了,要測試就只要把 ES node 關掉就行了

由於告警會寫入 index,所以去 elasticsearch > indice 中確認,index 名稱是 unhealth

看起來告警規則有寫入,但這裡的時間跟我想的不太一樣

後來確認了 Elasticsearch 寫入會是 UTC 的,要怎麼改還要確認一下

我的本機設定的是 CST
  • Alert

在 Stack management > alert 可以看到告警內容,基本上恢復正常會寫 recovered,所以 ES cluster 恢復正常了

最近同事在用 elastalert,要寫 yaml 設定規則,感覺寫些 shellscript 用API打入 ES 看 index 的 document 數量判斷,然後 crontab 指定去定時打,這樣可能還可以用 webhook 或 smtp 吧,反正也可以再研究看看,雖然會一堆 shellscript 肯定不好維護就是了,畢竟是免費仔

--

--