alertmanager郵件告警
這篇文章是基於之前部落格進行開展的:關於計畫任務的乙個小需求(
利用了prometheus 下 process-exporter對crond計畫任務程序監控的, grafana內建的監控報警有點醜,如下圖:
而且配置不夠靈活,沒有分組,靜默等東西配置。所以就有了這個alertmanager的玩意研究了。之前搞k8s的監控接觸過,但是理解不深,沒搞清楚整個過程怎麼報警起來的。
老實說,因為改用alertmanager,預設是不支援釘釘告警的,我還沒弄出來 = =(會單獨寫一篇文章);這點grafana做的好,直接配置機械人token的就能發,省事好多。
先從簡單入手,測了個alertmanager的郵件告警(k8s也是這麼弄的),大致有個印象。配置告警規則讓prometheus讀 ——》 alertmanager配置告警處理方式。。。
用了nodefilesystemusage,根目錄/ 磁碟分割槽使用率超過30%就告警,一直沒發(用163郵箱作為傳送方發給我的qq郵箱),我當時還自我良好,看到下面這個圖不以為意。
老實說,你不裝node_exporter(監控伺服器的基礎資源,如:記憶體、cpu、網路等資源),怎麼可能會有返回值呢
所以第乙個事,乖乖裝好,才能通過符合promql的語法查詢出值來的
第乙個體會是:監控+告警整個流程梳理。
實際上整個流程,簡單概括:
(1)元件採集資料(像node_exporter,process_exporter等)
(2)暴露類似這樣的url:http//本機ip:埠/metrics(curl localhost:9100/metrics 會有值的!!!這裡埠是node_exporter預設監聽埠)
(3)prometheus通過拉取方式讀資料,最終給grafana展示
(4)alertmanager告警
第二個用alertmanager的體會是:靜默設定。
靜默規則設定參考這個的:
讓它2個小時內不要發(都知道有這麼一回事了)。我特別說下圖上的matchers的name和value怎麼填。是配置給prometheus讀的告警規則那裡來的,相當於做了個匹配規則,把serverity為warning的告警全部關掉2小時(注意時間 +8小時,剛好跟我下午2點的時間一致的)
如果想關掉靜默設定,可以直接讓它expire,當然也可以根據需要繼續edit 靜默規則,寫出更符合當前監控告警需求的
第三個用alertmanager的體會是:自定義告警模板
賊難看 = =。
做法是這樣的:
(1)配置告警規則
(2)編寫郵件模板檔案:email.tmpl ——》新增
[root@ljy alertmanager]#cat /usr/local/src/monitor/alertmanager/template_alert/email.tmpl}} }
*****===start**********告警程式: prometheus_alert
告警級別: }
告警型別: }
故障主機: }
告警主題: }
告警詳情: }
"2019-12-14 16:01:01"}}
*****===end**********
}(3)alertmanager配置檔案,新增自定義告警模板,配置傳送人
(4)重啟alertmanager,效果圖如下:
Alertmanager配置檔案詳解
重點 apiversion v1 kind configmap metadata name alert config namespace kube ops data config.yml global 在沒有報警的情況下宣告為已解決的時間 resolve timeout 5m 配置郵件傳送資訊 sm...
Alertmanager告警規則編寫案例(十二)
首先要將一些類似的監控項規劃到乙個分組,在定義表示式 告警級別 告警詳細內容,在告警詳細內容中一定要熟練使用監控項自身的標籤,這樣就可以在告警內容中讓管理員一眼知道什麼觸發了告警 expr指定表示式,在使用邏輯符號匹配閾值 告警內容中要熟練運用各種標籤,標籤都是監控項中自帶的,value標籤就是當前...
監控和安全運維 1 7 nagios配置郵件告警
8.配置郵件告警 服務端vim etc nagios objects contacts.cfg 增加 define contact define contact define contactgroup 然後在要需要告警的服務裡面加上contactgroup vim etc nagios conf.d...