Từ Code đến System

Linux

Prometheus – Part 3 – Hướng dẫn triển khai Alert Manager trên Ubuntu 20.04

Tổng quan

Alert Manager là giải pháp nguồn mở được phát triển bởi tập đoàn công nghệ SoundCloud vào năm 2015. Sản phẩm là một thành phần thuộc hệ sinh thái Prometheus.

Alert Manager là một công cụ quản lý cảnh báo rất mạnh mẽ và linh hoạt. Sản phẩm cho đơn vị vận hành xử lý các thông tin cảnh báo từ nhiều nguồn khác nhau, như Prometheus, và cũng cung cấp khả năng tùy chỉnh rule cảnh báo dựa trên các tiêu chí như mức độ nghiêm trọng và ưu tiên.

Với Alert Manager có thể gửi thông báo qua email, message tới telegram, slack, hỗ trợ gom nhóm các cảnh báo có liên quan và tránh những thông báo trùng lặp.

Cài đặt

Chuẩn bị

  • Cài đặt Ubuntu version 20.04
  • Cấu hình 2 CPU, 2 GB Ram, 50 GB Disk
  • Trong bài, server prometheus có IP 192.168.0.113, client mình cài node exporter với ip 192.168.0.107

Cài đặt prometheus tham khảo

Cài đặt node exporter tham khảo

Cài đặt Alertmanager

Thực hiện trên server 192.168.0.113

Bước 1: Khởi tạo User

useradd --no-create-home --shell /bin/false alertmanager

Bước 2: Cài đặt bộ cài Alert Manager

cd /opt
wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz

tar xzf alertmanager-0.26.0.linux-amd64.tar.gz

mv alertmanager-0.26.0.linux-amd64/alertmanager /usr/local/bin/
mv alertmanager-0.26.0.linux-amd64/amtool /usr/local/bin/

chown alertmanager:alertmanager /usr/local/bin/alertmanager
chown alertmanager:alertmanager /usr/local/bin/amtool

mkdir /etc/alertmanager
chown alertmanager:alertmanager /etc/alertmanager

Bước 3: Cấu hình Alert Manager

Tạo File cầu hình

vi /etc/alertmanager/alertmanager.yml

Nội dung

global:
  smtp_smarthost: smtp.gmail.com:587
  smtp_from: "[email protected]"
  smtp_auth_identity: "[email protected]"
  smtp_auth_username: "[email protected]"
  smtp_auth_password: "Test2020@"

route:
  group_by: [alertname, datacenter, app]
  receiver: 'group-1'

receivers:
  - name: 'group-1'
    email_configs:
    - to: '[email protected]'
      send_resolved: true

Giải thích:

  • File cấu hình Alert Manager có 3 phần, tại file định dạng yaml “/etc/alertmanager/alertmanager.yml”
  • global: Chứa các biến global thông tin của email dùng để gửi mail cảnh báo
  • Tên email, Username, Password, Máy chủ gửi mail
  • route: định nghĩa các group và nhóm người nhận muốn nhận cảnh báo
  • receivers: định nghĩa một nhóm người nhận group-1, liệt kê các địa chỉ email muốn nhận cảnh báo

Bước 4: Tạo File Systemd

Tạo mới File

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

[Service]
User=alertmanager
Group=alertmanager
Restart=always
Type=simple
WorkingDirectory=/etc/alertmanager/
ExecStart=/usr/local/bin/alertmanager --config.file=/etc/alertmanager/alertmanager.yml --web.external-url http://192.168.0.113:9093

[Install]
WantedBy=multi-user.target

Kiểm tra config Alert-manager

amtool check-config /etc/alertmanager/alertmanager.yml

Bước 5: Khởi tạo dịch vụ

sudo systemctl daemon-reload
sudo systemctl start alertmanager.service
sudo systemctl enable alertmanager.service
sudo systemctl status alertmanager.service

Kiểm tra log Alert manager

journalctl -u alertmanager -f

Kết quả

2. Cấu hình trên Promethus server

Thực hiện trên server 192.168.0.113

Bước 1: Tạo mới File cấu hình

Tạo mới File cấu hình

vi /etc/prometheus/alert.rules.yml

Nội dung

groups:
- name: Instances
  rules:
  - alert: InstanceDown
    expr: up == 0
    for: 10s
    labels:
      severity: page
    annotations:
      description: '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 10 s.'
      summary: 'Instance {{ $labels.instance }} down'

Phân quyền lại File

chown prometheus:prometheus /etc/prometheus/alert.rules.yml

Kiểm tra File cấu hình

promtool check rules /etc/prometheus/alert.rules.yml

Kết quả

root@prometheus01:~# /usr/local/bin/promtool check rules /etc/prometheus/alert.rules.yml
Checking /etc/prometheus/alert.rules.yml
  SUCCESS: 1 rules found

Bước 2: Khai báo service Alert manager với Prometheus

Thêm các dòng dưới đây vào file /etc/prometheus/prometheus.yml trên Prometheus server

vi /etc/prometheus/prometheus.yml

Nội dung

rule_files:
  - alert.rules.yml

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 192.168.0.113:9093

File cấu hình hiện tại

root@prometheus01:~# cat /etc/prometheus/prometheus.yml
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'client01'
    scrape_interval: 5s
    static_configs:
      - targets: ['192.168.0.113:9100', '192.168.0.107:9100']

rule_files:
  - alert.rules.yml

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 192.168.0.113:9093

Khởi động lại Prometheus server

systemctl restart prometheus
systemctl status prometheus

3. Kiểm thử

Kịch bản

  • Tắt 1 client02 192.168.0.107
  • Kiểm tra dashboard http://192.168.0.113:9090/alerts
  • Kiểm tra hòm mail
  • Nếu không thấy log, kiểm tra log journal alert manager và prometheus

Kiểm tra prometheus

Kiểm tra Alert manager

Kết quả

Nguồn

Cài đặt prometheus tham khảo

2 Comments

  1. Tuấn

    Cho mình hỏi có nên tách alert ra thành một con server riêng không hay phải cài trên server prometheus vậy bạn

Leave a Reply