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 - Part 1
Cài đặt node exporter tham khảo - Part 4
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 alertmanagerBướ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/alertmanagerBước 3: Cấu hình Alert Manager
Tạo File cầu hình
vi /etc/alertmanager/alertmanager.ymlNội dung
global:
smtp_smarthost: smtp.gmail.com:587
smtp_from: "portal.test.test1@gmail.com"
smtp_auth_identity: "portal.test.test1@gmail.com"
smtp_auth_username: "portal.test.test1@gmail.com"
smtp_auth_password: "Test2020@"
route:
group_by: [alertname, datacenter, app]
receiver: 'group-1'
receivers:
- name: 'group-1'
email_configs:
- to: 'bathanhtlu@gmail.com'
send_resolved: trueGiả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
- Enable 2SV on gmail account: https://support.google.com/accounts/answer/185839
- Create app password: https://support.google.com/accounts/answer/185833
- Điền mật khẩu vào file .yml ở trên. (Lưu ý: xóa khoảng trống). Ví dụ: rckntauuxnzyftyu
sudo systemctl restart alertmanager.serviceBướ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.targetKiể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.serviceKiểm tra log Alert manager
journalctl -u alertmanager -fKế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.ymlNộ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.ymlKiểm tra File cấu hình
promtool check rules /etc/prometheus/alert.rules.ymlKết quả
root@prometheus01:~# /usr/local/bin/promtool check rules /etc/prometheus/alert.rules.yml
Checking /etc/prometheus/alert.rules.yml
SUCCESS: 1 rules foundBướ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.ymlNội dung
rule_files:
- alert.rules.yml
alerting:
alertmanagers:
- static_configs:
- targets:
- 192.168.0.113:9093File 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 prometheus3. 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
