Prometheus告警[極簡-入門]

安裝alertmanager

安裝包下載:
地址1:https://prometheus.io/download/
地址2:https://github.com/prometheus/alertmanager/releases

步驟:
1.部署alertmanager
2.在alertmanager.yml配置文件中配置郵箱服務(wù)器,路由數(shù),接收人。
3.配置Prometheus與Alertmanager通信
4.在Prometheus中創(chuàng)建告警規(guī)則

1.部署
下載二進(jìn)制包后解壓

tar zxvf alertmanager-xxxx.tar.gz
mv alertmanager-xxxx    alertmanager

注冊系統(tǒng)服務(wù)(啟動后端口默認(rèn)·為9093)

[Unit]
Description=alertmanager
[Service]
ExecStart=/usr/local/monitor/alertmanager/alertmanager --config.file=/usr/local/monitor/alertmanager/alertmanager.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
  1. alertmanager.yml配置
#全局設(shè)置
global:
  resolve_timeout: 5m
  # 郵箱服務(wù)器
  smtp_smarthost: 'smtp.qq.com:25'
  smtp_from: '發(fā)送人郵箱'
  smtp_auth_username: '發(fā)送人郵箱'
  smtp_auth_password: '授權(quán)碼'
  smtp_require_tls: false

# 配置路由樹
route:
  group_by: ['jiankong'] # 根據(jù)告警規(guī)則組名進(jìn)行分組
  group_wait: 30s # 分組內(nèi)第一個告警等待時間,30s內(nèi)如有第二個告警會合并一個告警
  group_interval: 10s # 發(fā)送新告警間隔時間,控制告警組的發(fā)送頻率,一條告警消息發(fā)送后,等待3分鐘,發(fā)送第二組告警
  repeat_interval: 30m # 重復(fù)告警間隔發(fā)送時間,如果一條告警已經(jīng)發(fā)送成功,后續(xù)相同的告警間隔6分鐘發(fā)送
  receiver: 'java_linux'  #接收人

# 接收人
receivers:
 - name: 'java_linux'
   email_configs:
   - to: 'tianye@lzad.cc'

3.配置Prometheus與Alertmanager通信


image.png

vim prometheus.yml

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
       - 127.0.0.1:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
   - "rules/*.yml"
  # - "second_rules.yml"

配置了所有告警規(guī)則都匹配 普羅米修斯目錄下rules目錄下的所有yml文件,所以要新建一個目錄rules

vim rules/node.yml

groups:
- name: jiankong   #告警規(guī)則組名稱
  rules:
#文件系統(tǒng)使用率超過70%就告警
  - alert: DiskFilesUsage    #告警規(guī)則名稱
    expr: 100 - (node_filesystem_free_bytes{fstype=~"xfs|ext4"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"} * 100) > 70 #ProQL表達(dá)式作為觸發(fā)條件閥值
    for: 2m    #等待評估時間
    labels:    #自定義標(biāo)簽,定義一個level標(biāo)簽,標(biāo)記這個告警規(guī)則是警告級別
      level: warning
    annotations:   #指定附加信息(郵件標(biāo)題文本)
      summary: "{{ $labels.instance }}: {{ $labels.mountpoint }}分區(qū)使用過高"
      description: "{{$labels.instance}}: {{$labels.mountpoint }} 分區(qū)使用大于 80% (當(dāng)前值: {{ $value }})"
  
  - alert: MemUsage
    expr: 100 - (node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100 >80
    for: 2m
    labels:
      level: warning
    annotations:
      summary: "{{ $labels.instance }}: 內(nèi)存使用過高"
      description: "{{$labels.instance}}:  內(nèi)存使用大于 80% (當(dāng)前值: {{ $value }})"

  - alert: CpuUsage
    expr: 100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100) > 80
    for: 2m
    labels:
      level: warning
    annotations:
      summary: "{{ $labels.instance }}: CPU使用過高"
      description: "{{$labels.instance}}:  CPU使用大于 80% (當(dāng)前值: {{ $value }})"

重新加載服務(wù)


image.png

這里告警規(guī)則已經(jīng)應(yīng)用上了

測試:
當(dāng)分區(qū)1.111機器的跟分區(qū)使用率大于70%


image.png

開始檢測到指標(biāo)觸發(fā)閥值,回到評估狀態(tài),過了評估時間就會發(fā)郵件

image.png

Prometheus 告警狀態(tài)了解

一旦這些警報存儲在Alertmanager,它們可能處于以下任何狀態(tài):

  • · Inactive:這里什么都沒有發(fā)生。
  • · Pending:已觸發(fā)閾值,但未滿足告警持續(xù)時間(即rule中的for字段)
  • · Firing:已觸發(fā)閾值且滿足告警持續(xù)時間。警報發(fā)送到Notification Pipeline,經(jīng)過處理,發(fā)送給接受者這樣目的是多次判斷失敗才發(fā)告警,減少郵件。

image

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容