Saturday, January 18, 2025

[Prometheus – Alerting] – Phần 7: Quản lý Alertmanager thông qua API

-

1. Mở đầu.

Alertmanager là một phần quan trọng trong hệ thống giám sát Prometheus, và để đảm bảo hoạt động hiệu quả của nó, chúng ta cần có cách để quản lý và tích hợp nó vào quy trình tự động hóa của mình. Đó là lý do tại sao Alertmanager cung cấp một bộ API quản lý mạnh mẽ.

Trong bài viết này, chúng ta sẽ tìm hiểu về các endpoint API quản lý của Alertmanager và cách chúng có thể giúp bạn tối ưu hóa quá trình quản lý cảnh báo.

2. Management API.

Alertmanager cung cấp một tập hợp API quản lý để giúp tự động hóa và tích hợp dễ dàng hơn. Dưới đây là một số endpoint quan trọng:

Kiểm Tra Sức Khỏe (Health Check) thông qua API.

Để Health Check của Alertmanager thông qua API, bạn có thể sử dụng yêu cầu HTTP GET hoặc HEAD đến địa chỉ /-/healthy. API endpoint này luôn trả về mã trạng thái HTTP 200 khi Alertmanager đang hoạt động bình thường.

GET /-/healthy
HEAD /-/healthy

Dưới đây là ví dụ về cách thực hiện kiểm tra Health Check bằng cách sử dụng API:

GET http://192.168.13.191:9090/-/healthy
HEAD http://192.168.13.191:9090/-/healthy

Khi bạn gửi yêu cầu API đến endpoint này và nhận được mã trạng thái 200, điều này đảm bảo rằng Alertmanager đang hoạt động một cách bình thường và có thể tiếp tục xử lý cảnh báo.

Bạn có thể sử dụng Postman, ví dụ:

Kiểm tra sẵn sàng (Readiness Check) thông qua API.

Endpoint này trả về mã trạng thái 200 khi Alertmanager đã sẵn sàng phục vụ lưu lượng. Điều này đặc biệt quan trọng khi bạn muốn đảm bảo rằng Alertmanager có thể phản hồi các yêu cầu một cách hiệu quả.

GET /-/ready
HEAD /-/ready

Ví dụ.

GET http://192.168.13.191:9090/-/ready
HEAD http://192.168.13.191:9090/-/ready

Bạn có thể sử dụng Postman, ví dụ:

Tải lại cấu hình (Reload) thông qua API.

Endpoint này kích hoạt việc tải lại tệp cấu hình của Alertmanager. Điều này cho phép bạn áp dụng các thay đổi mới trong cấu hình mà không cần khởi động lại dịch vụ. Endpoint này giúp bạn duy trì tính linh hoạt trong việc quản lý cấu hình.

POST /-/reload

Ví dụ.

POST http://192.168.13.191:9090/-/reload

Nếu bạn gặp lỗi Lifecycle API is not enabled. như dưới, hãy thực hiện như sau.

Lỗi “Lifecycle API is not enabled” xuất hiện khi bạn thực hiện yêu cầu POST tới endpoint /-/reload của Alertmanager, nhưng API quản lý không được kích hoạt. Để sử dụng tính năng này, bạn cần cấu hình Alertmanager để cho phép API quản lý.

Mở file cấu hình Alertmanager, thường là/etc/alertmanager/alertmanager.yml để chỉnh sửa cấu hình. Thêm cấu hình API quản lý vào tệp cấu hình, đảm bảo rằng bạn đặt giá trị lifecycle thành enabled như sau:

global:
  # Cấu hình khác của Alertmanager...

  # Kích hoạt API quản lý
  lifecycle:
    enable: true

Ví dụ.

global:
  lifecycle:
    enable: true

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 1h
  receiver: 'web.hook'
receivers:
  - name: 'web.hook'
    webhook_configs:
      - url: 'http://127.0.0.1:5001/'
inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'dev', 'instance']

Lưu file cấu hình và khởi động lại dịch vụ Alertmanager để áp dụng các thay đổi cấu hình mới.

Sau khi bạn đã kích hoạt API quản lý và khởi động lại Alertmanager, hãy thử lại yêu cầu POST tới endpoint /-/reload. Bạn nên không còn gặp lỗi “Lifecycle API is not enabled” và Alertmanager sẽ thực hiện việc nạp cấu hình khi nhận được yêu cầu này.

Ngoài ra, bạn cũng có thể kích hoạt tải lại cấu hình bằng cách gửi một tín hiệu SIGHUP đến quá trình Alertmanager. Điều này giúp bạn điều chỉnh cấu hình Alertmanager trong thời gian thực mà không cần dừng dịch vụ.

Kết luận.

API quản lý của Alertmanager là một phần quan trọng trong việc tự động hóa và tích hợp trong môi trường giám sát. Chúng giúp bạn kiểm tra sức khỏe của Alertmanager, đảm bảo sự sẵn sàng của nó và cập nhật cấu hình một cách thuận tiện. Sử dụng API này, bạn có thể tối ưu hóa quá trình quản lý cảnh báo và đảm bảo rằng hệ thống của bạn luôn hoạt động ổn định.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories