Cài đặt Prometheus Alertmanager để gửi cảnh báo

Cài đặt Prometheus Alertmanager để gửi cảnh báoCuongquach.com | Tiếp nối Series bài viết về giải pháp giám sát dịch vụ mã nguồn mở Prometheus. Trong bài viết này chúng ta sẽ cùng tìm hiểu cách cài đặt dịch vụ quản lý cảnh báo (alert) cho Prometheus mang tên Alertmanager. Sau bài viết này chúng ta sẽ cùng tìm hiểu cách cấu hình quản lý của Alertmanager ở bài khác.

cai-dat-prometheus-alertmanager-gui-canh-bao

Alertmanager là gì ?

Trang github: https://github.com/prometheus/alertmanager

alertmanager overview
alertmanager overview

Đầu tiên bạn cần lưu ý một vấn đề là, hoạt động cảnh báo trong hệ thống Prometheus chia làm 2 phần :

  • Phần 1: các rule cảnh báo được thiết lập ở Prometheus Server và gửi cảnh báo đó đến Alertmanager.
  • Phần 2: Alertmanager sẽ quản lý các cảnh báo (alert), xử lý nội dung alert nếu có tuỳ biến này và điều hướng đầu tiếp nhận thông tin cảnh báo như email, chat platform, call,…

Vậy bạn đã hiểu Alertmanager làm gì rồi phải không nào !

Mô hình lab cài đặt Alertmanager Prometheus

Vẫn mô hình lab như cũ, dịch vụ AlertmanagerPrometheus sẽ được cài đặt trên cùng 1 máy chủ dịch vụ.

lab cài đặt alertmanager
lab cài đặt alertmanager

Thao tác cài đặt Alertmanager trên Linux

Alertmanager cũng được Prometheus hỗ trợ dạng binary để chạy mà không cần biên dịch source Go của Alertmanager làm gì hết, rất là tiện lợi nên bạn chỉ cần lên trang download của Prometheus mà down thôi : https://prometheus.io/download/

Download và giải nén file chứa binary alertmanager, di chuyển file binary alertmanager đến thư mục chung.

# cd /opt/
# wget https://github.com/prometheus/alertmanager/releases/download/v0.18.0/alertmanager-0.18.0.linux-amd64.tar.gz
# tar -xzvf alertmanager-0.18.0.linux-amd64.tar.gz
# mv alertmanager-0.18.0.linux-amd64/alertmanager /usr/local/bin/
# mv alertmanager-0.18.0.linux-amd64/amtool /usr/local/bin/

Tạo thư mục cấu hình dịch vụ Alertmanager và thư mục chứa data Alertmanager.

# mkdir -p /etc/alertmanager/
# mkdir -p /var/lib/alertmanager/

Kế đến copy file cấu hình mẫu của dịch vụ Alertmanager vào thư mục cấu hình. Ở bài viết này chúng ta sẽ chưa làm chủ công cụ Alertmanager mà chỉ bước qua giai đoạn cài đặt Alertmanager tích hợp với Prometheus. Ở bài kế tiếp chúng ta sẽ sớm tìm hiểu về Alertmanager chi tiết hơn.

# cp alertmanager-0.18.0.linux-amd64/alertmanager.yml /etc/alertmanager/

Kế đến ta tạo user trên hệ thống để chạy dịch vụ Alertmanager và phân quyền các file cùng thư mục liên quan.

# useradd --no-create-home --shell /bin/false alertmanager
# chown alertmanager:alertmanager /usr/local/bin/amtool
# chown alertmanager:alertmanager /usr/local/bin/alertmanager
# chown alertmanager:alertmanager -R /etc/alertmanager/
# chown alertmanager:alertmanager -R /var/lib/alertmanager/

Khởi tạo file khởi động dịch vụ Prometheus Alertmanager trên Linux nền systemd (CentOS 7/Ubuntu 16.04+) nhé.

Bạn cần lưu ý tham số ‘web.external-url‘, khi mà Alertmanager gửi cảnh báo thì nó sẽ kèm theo đường link url của alert đó. Nếu bạn muốn có thể bấm vào đường link cảnh báo đấy đi đến được dịch vụ Alertmanager để coi thông tin alert, thì bạn cần cấu hình giá trị tương ứng domain hoặc địa chỉ IP có thể truy cập Alertmanager.

# vi /etc/systemd/system/alertmanager.service
[Unit]
Description=Alertmanager
Wants=network-online.target
After=network-online.target

[Service]
User=alertmanager
Group=alertmanager
Type=simple
ExecStart=/usr/local/bin/alertmanager \
--config.file /etc/alertmanager/alertmanager.yml \
--storage.path /var/lib/alertmanager/ \
--web.external-url http://10.0.253.179:9093
Restart=always

[Install]
WantedBy=default.target

Khởi động dịch vụ Alertmanager nào.

# systemctl daemon-reload
# systemctl enable alertmanager
# systemctl start alertmanager
# systemctl status alertmanager
● alertmanager.service - Alertmanager
Loaded: loaded (/etc/systemd/system/alertmanager.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2019-08-22 15:33:56 +07; 1s ago
Main PID: 35664 (alertmanager)
CGroup: /system.slice/alertmanager.service
└─35664 /usr/local/bin/alertmanager --config.file /etc/alertmanager/alertmanager.yml --storage.path /var/lib/alertmanager/data

Aug 22 15:33:56 gtd-ibe-ntp-02 systemd[1]: Started Alertmanager.
Aug 22 15:33:56 gtd-ibe-ntp-02 alertmanager[35664]: level=info ts=2019-08-22T08:33:56.764Z caller=main.go:197 msg="Starting Alertmanager" version="(version=0.18.0, branch=HEAD...6039858ca)"
Aug 22 15:33:56 gtd-ibe-ntp-02 alertmanager[35664]: level=info ts=2019-08-22T08:33:56.764Z caller=main.go:198 build_context="(go=go1.12.6, user=root@868685ed3ed0, date=20190708-14:31:49)"
Aug 22 15:33:56 gtd-ibe-ntp-02 alertmanager[35664]: level=info ts=2019-08-22T08:33:56.765Z caller=cluster.go:161 component=cluster msg="setting advertise address explicitly" a...9 port=9094
Aug 22 15:33:56 gtd-ibe-ntp-02 alertmanager[35664]: level=info ts=2019-08-22T08:33:56.805Z caller=coordinator.go:119 component=configuration msg="Loading configuration file" f...manager.yml
Aug 22 15:33:56 gtd-ibe-ntp-02 alertmanager[35664]: level=info ts=2019-08-22T08:33:56.806Z caller=coordinator.go:131 component=configuration msg="Completed loading of configur...manager.yml
Aug 22 15:33:56 gtd-ibe-ntp-02 alertmanager[35664]: level=info ts=2019-08-22T08:33:56.809Z caller=cluster.go:623 component=cluster msg="Waiting for gossip to settle..." interval=2s
Aug 22 15:33:56 gtd-ibe-ntp-02 alertmanager[35664]: level=info ts=2019-08-22T08:33:56.809Z caller=main.go:429 msg=Listening address=:9093
Hint: Some lines were ellipsized, use -l to show in full.

Kiểm tra port Alertmanager đang lắng nghe, mặc định là TCP 9093.

# netstat -natlp | grep 9093
tcp6 0 0 :::9093 :::* LISTEN 35664/alertmanager

Nếu bạn có sử dụng firewall trên Linux, thì nên mở rule cho port TCP 9093. Ví dụ với iptables.

# iptables -I INPUT -p tcp --dport 9093 -j ACCEPT

Kế đến bạn truy cập máy chủ Prometheus để thay đổi cấu hình khởi động dịch vụ Prometheus. Mục đích thay đổi cấu hình là khai báo cho Prometheus biết dịch vụ dùng để cảnh bảo sẽ là dịch vụ Alertmanager. Nếu dịch vụ Alertmanager nằm trên cùng 1 máy chủ Prometheus thì khai báo localhost cũng được, còn nếu nằm ở máy chủ khác thì điền địa chỉ IP máy chủ đó vào phần cấu hình dưới.

+ Node Prometheus Server

# vi /etc/prometheus/prometheus.yml
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - localhost:9093

Khởi động lại dịch vụ Prometheus để nhận cấu hình mới.

# systemctl restart prometheus

Giờ bạn truy cập dịch vụ web quản lý Alertmanager thử xem nào. Ví dụ : http://10.0.253.179:9093/

alertmanager admin
alertmanager admin

Tổng kết

Như vậy bạn đã có thể cài đặt dịch vụ Alertmanager dùng để gửi cảnh báo và cấu hình Prometheus liên kết Alertmanager làm kênh gửi cảnh báo từ hệ thống giám sát dịch vụ. Ở phần kế tiếp chúng ta sẽ tiến hành giai đoạn làm chủ công cụ Alertmanager này nhé.

Nguồn: https://cuongquach.com/

Previous articleGiám sát máy chủ Linux với Prometheus Node Exporter
Next articleEbook Giáo trình Bảo mật Wifi – Athena
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !