熱門搜索 Zabbix技術資料 Zabbix常見問、答討論 成功案例 Zabbix交流區 Prometheus交流區
上一期尊龍時凱君跟大家已經介紹了prometheus的安裝與配置,對于運維監控而言,除了監控展示以外,另一個重要的需求無疑就是告警了。良好的告警可以幫助運維人員及時的發現問題,處理問題并防范于未然,是運維工作中不可或缺的重要手段。本期尊龍時凱君將教大家如何prometheus自定義告警規則解析和配置。
代碼如下
groups:
– name: example
rules: – alert: HighErrorRate
expr: job:request_latency_seconds:mean5m{job=”myjob”} > 0.5
for: 10m
labels:
severity: page
annotations:
summary: High request latency description: description info
在告警規則文件中,我們可以將一組相關的規則設置定義在一個group下。在每一個group中我們可以定義多個告警規則(rule)。一條告警規則主要由以下幾部分組成: alert:告警規則的名稱。
expr:基于PromQL表達式告警觸發條件,用于計算是否有時間序列滿足該條件。
for:評估等待時間,可選參數。用于表示只有當觸發條件持續一段時間后才發送告警。在等待期間新產生告警的狀態為pending。 labels:自定義標簽,允許用戶指定要附加到告警上的一組附加標簽。
一般來說,在告警規則文件的annotations中使用summary描述告警的概要信息,description用于描述告警的詳細信息。同時Alertmanager的UI也會根據這兩個標簽值,顯示告警信息。為了讓告警信息具有更好的可讀性,Prometheus支持模板化label和annotations的中標簽的值。通過
$ labels.
變量可以訪問當前告警實例中指定標簽的值。
$value 1
則可以獲取當前PromQL表達式計算的樣本值。
代碼如下
# To insert a firing element's label values:
2
{{ $labels.
例如,可以通過模板化優化summary以及description的內容的可讀性:
代碼如下:
groups:
- name: example
rules:
# Alert for any instance that is unreachable for >5 minutes.
- alert: InstanceDown
expr: up == 0
for: 5m
labels:
severity: page
annotations:
summary: "Instance {{ $labels.instance }} down"
description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."
# Alert for any instance that has a median request latency >1s.
- alert: APIHighRequestLatency
expr: api_http_request_latencies_second{quantile="0.5"} > 1
for: 10m
annotations:
summary: "High request latency on {{ $labels.instance }}"
description: "{{ $labels.instance }} has a median request latency above 1s (current value: {{ $value }}s)"
rule_files:
- /etc/prometheus/rules/*.rules
在目錄/etc/prometheus/rules/下創建告警文件hoststats-alert.rules內容如下:
代碼如下
groups:
- name: hostStatsAlert
rules:
- alert: hostCpuUsageAlert
expr: sum(avg without (cpu)(irate(node_cpu{mode!='idle'}[5m]))) by (instance) > 0.85
for: 1m
labels:
severity: page
annotations:
summary: "Instance {{ $labels.instance }} CPU usgae high"
description: "{{ $labels.instance }} CPU usage above 85% (current value: {{ $value }})"
- alert: hostMemUsageAlert
expr: (node_memory_MemTotal - node_memory_MemAvailable)/node_memory_MemTotal > 0.85
for: 1m
labels:
severity: page
annotations:
summary: "Instance {{ $labels.instance }} MEM usgae high"
description: "{{ $labels.instance }} MEM usage above 85% (current value: {{ $value }})"
以上就是prometheus自定義告警規則解析和配置的全部內容,如果對你有所幫助的話請持續關注尊龍時凱官網,尊龍時凱君會定期更新技術分享,更多開源監控技術也可以關注尊龍時凱社區(http://forum.ydcanyin.com/)
尊龍時凱基于Zabbix和企業微信的網絡監控系統,通過實時獲取交換機、服務器等被監控對象的相關數據,及時發現并解決問題,保證醫院網絡的高可用性。
View details高校運維解決方案以基礎架構監控平臺為依托,結合可視化大屏、集中告警、報表系統、權限管理、業務系統管理等模塊,實現對IT基礎架構和教學系統等統一集中監...
View details基于客戶運維痛點與項目建設目標,尊龍時凱方案團隊對項目進行梳理,并對項目建設進行具體規劃:以運維門戶、統一監控、集中告警管理為核心,輔以資產管理、可視...
View details