Cấu hình Alertmanager và quy tắc cảnh báo trong Prometheus

1 Alertmanager là gì?

1.1 Tác dụng của Alertmanager

Alertmanager là một thành phần quan trọng trong hệ sinh thái Prometheus, dùng để xử lý các cảnh báo (Alerts) từ Prometheus.

Nó cung cấp các chức năng như nhóm cảnh báo, loại bỏ trùng lặp, chặn đứng, định tuyến và thông báo cảnh báo. Điều này giúp người quản trị có thể phản ứng nhanh chóng và thực hiện các biện pháp cần thiết khi gặp sự cố.

1.2 Sơ đồ quy trình cảnh báo

2 Quy tắc cảnh báo trong Prometheus

2.1 Tệp cấu hình cảnh báo
[root@server01 rule]# cat /data/alertmanager/rule/thong_bao.yml
nhom:
  - ten: ThongTinMayChu
    quy_tac:
      - canh_bao: MayChuMatKetNoi
        dieu_kien: lenh_lenh == 0
        sau_thoi_gian: 60s
        nhan: 
          muc_do: nguy_cap
        mo_ta:
          tom_tat: "{{ $labels.instance }} Máy chủ mất kết nối, hãy xử lý ngay"
          chi_tiet: "{{ $labels.instance }} đã mất kết nối hơn 1 phút. Vui lòng kiểm tra trạng thái dịch vụ."
nhom:Nhóm
  - ten:Tên nhóm cảnh báo trong tệp
    quy_tac:Các quy tắc cảnh báo
      - canh_bao:Tên cảnh báo
        dieu_kien:Điều kiện kích hoạt cảnh báo
        sau_thoi_gian:Thời gian chờ trước khi kích hoạt cảnh báo
        nhan:Nhãn cảnh báo, dùng để so khớp quy tắc
        mo_ta:Mô tả chi tiết về cảnh báo

3 Cấu hình Alertmanager alertmanager.yml

3.1 Các chức năng chính của Alertmanager

Nhóm cảnh báo(Grouping):Gộp các cảnh báo tương tự lại với nhau để giảm số lượng cảnh báo.

Loại bỏ trùng lặp(Deduplication):Nếu cùng một cảnh báo được kích hoạt nhiều lần trong thời gian ngắn, Alertmanager chỉ gửi một thông báo.

Chặn đứng(Inhibition):Khi một cảnh báo ưu tiên cao được kích hoạt, các cảnh báo ưu tiên thấp liên quan sẽ bị chặn.

Định tuyến(Routing):Gửi các loại cảnh báo khác nhau đến những người nhận khác nhau (ví dụ: email, Slack, Webhook).

Thông báo(Notification):Hỗ trợ nhiều phương thức thông báo như email, Slack, PagerDuty, Webhook, v.v.

3.2 Giải thích chi tiết cấu hình Alertmanager
toan_cuc:
  thoi_gian_giai_quyet: 5m  
  smtp_smarthost: 'smtp.duongdan.com:587'
  smtp_tu: 'alert@duongdan.com'
  smtp_auth_ten_dang_nhap: 'user@duongdan.com'
  smtp_auth_mat_khau: 'matkhau'
  smtp_hello: "tenmien.com"
  smtp_yeu_cau_tls: false

duong_di:
  nguoi_nhan_mac_dinh: 'macdinh'
  danh_sach_theo_doi: ['canhbao', 'cummay', 'dichvu']  # Dựa vào để phân nhóm
  thoi_gian_cho_truoc_khi_gui: 30s  # Thời gian chờ trước khi gửi cảnh báo đầu tiên
  khoang_cach_gui_moi_canh_bao: 5m  # Khoảng cách giữa việc gửi các cảnh báo mới trong cùng một nhóm
  khoang_cach_lap_lai: 3h  # Khoảng cách giữa việc gửi lại cùng một cảnh báo
  duong_di_con:
    - dieu_kien_phu_hop:
        muc_do: nguy_cap
      nguoi_nhan: 'email'
      tiep_tuc: true # Tiếp tục tìm kiếm các quy tắc tiếp theo
    - dieu_kien_phu_hop:
        muc_do: canh_bao
      nguoi_nhan: 'slack'
    - dieu_kien_phu_hop:
        canhbao: MayChuMatKetNoi
      nguoi_nhan: 'webhook'

nguoi_nhan:
  - ten: 'macdinh'
    webhook_configs:
      - dia_chi: 'http://webhook.duongdan.com/thongbao'

  - ten: 'email'
    email_configs:
      - den: 'quantri@duongdan.com'
        tu: 'alert@duongdan.com'
        smarthost: 'smtp.duongdan.com:587'
        auth_username: 'user@duongdan.com'
        auth_password: 'matkhau'
        gui_khi_giai_quyet: true # Gửi thông báo khi cảnh báo được giải quyết

  - ten: 'slack'
    slack_configs:
      - kenh: '#canhbao'
        gui_khi_giai_quyet: true
        api_url: 'https://hooks.slack.com/services/XXX/YYY/ZZZ'
        tieu_de: '{{ .CommonAnnotations.tom_tat }}'
        noi_dung: '{{ .CommonAnnotations.chi_tiet }}'

  - ten: 'webhook'
    webhook_configs:
      - dia_chi: 'http://xulycanhbaolocal/notify'

quy_tac_chan_dung:
  - nguon_phu_hop:
      muc_do: 'nguy_cap'
    dich_phu_hop:
      muc_do: 'canh_bao'
    bang_nhau: ['instance']
3.3 Cấu hình toan_cuc

Cấu hình toàn cục, các tùy chọn cấu hình dưới khối toan_cuc có hiệu lực trên toàn bộ tệp cấu hình nhưng có thể bị ghi đè bởi các cấu hình con ở vị trí khác trong tệp.

toan_cuc:
  thoi_gian_giai_quyet: 5m  # Chờ 5 phút sau khi cảnh báo được giải quyết trước khi đánh dấu là đã giải quyết
  smtp_smarthost: 'smtp.duongdan.com:587'  # Địa chỉ máy chủ email
  smtp_tu: 'xxx@duongdan.com'  # Địa chỉ email gửi cảnh báo
  smtp_auth_ten_dang_nhap: 'xxx@duongdan.com'  # Tên đăng nhập máy chủ SMTP
  smtp_auth_mat_khau: 'matkhau'  # Mật khẩu máy chủ SMTP
3.4 Cấu hình duong_di

Cấu hình định tuyến cảnh báo, dùng để định tuyến và phân nhóm cảnh báo, cho phép gửi các nhóm cảnh báo khác nhau đến những người nhận khác nhau.

duong_di:
  nguoi_nhan_mac_dinh: 'macdinh' 
  danh_sach_theo_doi: ['canhbao', 'cummay', 'dichvu']  
  thoi_gian_cho_truoc_khi_gui: 30s  
  khoang_cach_gui_moi_canh_bao: 5m 
  khoang_cach_lap_lai: 3h 
3.5 Cấu hình duong_di_con

Cấu hình con của duong_di, có độ ưu tiên cao hơn và cấu hình tương tự duong_di.

  duong_di_con:
    - dieu_kien_phu_hop:
        muc_do: nguy_cap
      nguoi_nhan: 'email'
      tiep_tuc: true
    - dieu_kien_phu_hop:
        muc_do: canh_bao
      nguoi_nhan: 'slack'
    - dieu_kien_phu_hop:
        canhbao: MayChuMatKetNoi
      nguoi_nhan: 'webhook'
3.6 Cấu hình nguoi_nhan

Cấu hình người nhận cảnh báo, mỗi receiver đều có tên riêng, sau khi định tuyến qua duong_di cần chỉ định một receiver, có thể cấu hình nhiều kiểu người nhận khác nhau.

nguoi_nhan:
  - ten: 'macdinh'
    webhook_configs:
      - dia_chi: 'http://webhook.duongdan.com/thongbao'
3.7 Cấu hình quy_tac_chan_dung

Quy tắc chặn đứng cảnh báo, nhằm giảm số lượng cảnh báo và ngăn chặn tình trạng "bão cảnh báo".

quy_tac_chan_dung:
  - nguon_phu_hop:
      muc_do: 'nguy_cap'
    dich_phu_hop:
      muc_do: 'canh_bao'
    bang_nhau: ['instance']

Thẻ: prometheus alertmanager cảnh báo định tuyến Nhóm cảnh báo

Đăng vào ngày 7 tháng 10 lúc 00:36