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
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
thanhnb
Nếu với mô hình ít VM và tiết kiệm tài nguyên thì bạn có thể để chung được
Còn khi khi mô hình lớn thì nên tách
Bạn nên căn cứ theo giám sát hệ thống nhé