深色模式
Alertmanager 安装部署
摘要:Alertmanager 负责接收 Prometheus 发来的告警,做去重/分组/路由/静默,再转发到邮件、钉钉、Webhook 等接收端。本文带你在单台 Linux 上用二进制方式装好 Alertmanager,并让 Prometheus 把告警转给它。
适用环境
- 一台能联网的 Linux(本文以 x86_64 为例,CentOS 7+/Ubuntu 20.04+ 均可)
- 已部署 Prometheus(能访问其 9090 端口)
- 命令需 root 或具备 sudo 权限
bash
# 查看系统架构,决定下载哪个包
uname -m
# x86_64 对应 amd641
2
3
2
3
操作步骤
1. 下载并解压二进制
bash
cd /tmp
# 到 https://github.com/prometheus/alertmanager/releases 选最新稳定版
VERSION=0.27.0
curl -LO https://github.com/prometheus/alertmanager/releases/download/v${VERSION}/alertmanager-${VERSION}.linux-amd64.tar.gz
tar xzf alertmanager-${VERSION}.linux-amd64.tar.gz1
2
3
4
5
2
3
4
5
DANGER
上面的 VERSION 请到 GitHub Releases 页面核对真实存在的版本号;不要照搬过期版本,避免下载 404。
2. 放到系统目录并建用户
bash
useradd -rs /sbin/nologin alertmanager
mkdir -p /etc/alertmanager /var/lib/alertmanager
cp alertmanager-${VERSION}.linux-amd64/alertmanager /usr/local/bin/
cp alertmanager-${VERSION}.linux-amd64/amtool /usr/local/bin/1
2
3
4
2
3
4
3. 写最小配置
yaml
# /etc/alertmanager/alertmanager.yml
global:
resolve_timeout: 5m
route:
receiver: "default"
group_by: ['alertname']
receivers:
- name: "default"
webhook_configs:
- url: "http://127.0.0.1:5001/webhook"1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
4. 用 systemd 托管
bash
cat > /etc/systemd/system/alertmanager.service <<'EOF'
[Unit]
Description=Alertmanager
After=network.target
[Service]
User=alertmanager
ExecStart=/usr/local/bin/alertmanager \
--config.file=/etc/alertmanager/alertmanager.yml \
--storage.path=/var/lib/alertmanager
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now alertmanager1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
5. 让 Prometheus 指向它
yaml
# prometheus.yml 片段
alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093']1
2
3
4
5
2
3
4
5
验证
bash
# 端口是否监听
ss -ltnp | grep 9093
# 用 amtool 看配置状态
amtool config routes test alertname=Demo team=ops
# 浏览器打开 http://<IP>:9093 看到 Alertmanager UI 即成功1
2
3
4
5
2
3
4
5
常见坑
WARNING
- Prometheus 与 Alertmanager 时间必须一致(NTP 同步),否则告警时间戳错乱、分组异常。
- 9093 端口别被防火墙拦了,云服务器记得放通入站规则。
DANGER
--storage.path 目录属主必须是 alertmanager 用户,否则启动报 permission denied。