Alertmanager 安装部署
Alertmanager 默认使用 9093 提供 API 和 UI。生产部署应持久化状态目录、固定镜像版本、保护 UI/API、通过 Secret 管理 Receiver 凭据,并验证 Prometheus 到 Alertmanager 和 Alertmanager 到接收器的网络链路。
1. 环境准备
为 Alertmanager 创建独立用户、配置目录、模板目录和状态目录。状态目录保存静默与通知状态,丢失后可能重复通知或中断维护窗口。
sudo useradd --system --no-create-home --shell /usr/sbin/nologin alertmanager
sudo install -d -o alertmanager -g alertmanager /etc/alertmanager /var/lib/alertmanager
2. 二进制安装
从 Alertmanager 官方 Releases 下载与 uname -m 对应的 Linux 发行包和 sha256sums.txt。下面以 amd64 为例,版本应替换为预发验证过的目标版本:
# 只在当前终端定义版本;升级前阅读该版本发布说明
ALERTMANAGER_VERSION=0.28.1
ALERTMANAGER_ARCH=amd64
下载同一版本的发行包和校验文件:
# 下载发行包和官方校验文件,校验失败时不要继续安装
curl -fLO "https://github.com/prometheus/alertmanager/releases/download/v${ALERTMANAGER_VERSION}/alertmanager-${ALERTMANAGER_VERSION}.linux-${ALERTMANAGER_ARCH}.tar.gz"
curl -fLO "https://github.com/prometheus/alertmanager/releases/download/v${ALERTMANAGER_VERSION}/sha256sums.txt"
先校验,再解压并安装工具:
# 校验发布包完整性;失败说明下载错误或文件来源不可信
grep "alertmanager-${ALERTMANAGER_VERSION}.linux-${ALERTMANAGER_ARCH}.tar.gz" sha256sums.txt | sha256sum --check
# 解压后安装服务端与配置检查工具 amtool
tar -xzf "alertmanager-${ALERTMANAGER_VERSION}.linux-${ALERTMANAGER_ARCH}.tar.gz"
sudo install -m 0755 "alertmanager-${ALERTMANAGER_VERSION}.linux-${ALERTMANAGER_ARCH}/alertmanager" /usr/local/bin/alertmanager
sudo install -m 0755 "alertmanager-${ALERTMANAGER_VERSION}.linux-${ALERTMANAGER_ARCH}/amtool" /usr/local/bin/amtool
3. Systemd 部署
创建 alertmanager.yml 后,先执行 amtool check-config /etc/alertmanager/alertmanager.yml。下面的 systemd 单元将服务限制为本机访问,生产环境再由 HTTPS 反向代理或内网入口提供访问:
/etc/systemd/system/alertmanager.service
[Service]
# 以不可登录的专用用户运行,减少配置和状态目录的权限范围
User=alertmanager
Group=alertmanager
# 显式指定配置、静默/通知状态目录和监听地址
ExecStart=/usr/local/bin/alertmanager \
--config.file=/etc/alertmanager/alertmanager.yml \
--storage.path=/var/lib/alertmanager \
--web.listen-address=127.0.0.1:9093
Restart=on-failure
# 重新加载 systemd 配置后设置开机启动并启动服务
sudo systemctl daemon-reload
sudo systemctl enable --now alertmanager
再独立确认配置和服务日志:
# 校验配置语法;若启动失败,再查看最近服务日志
amtool check-config /etc/alertmanager/alertmanager.yml
sudo journalctl -u alertmanager -n 100 --no-pager
4. Docker 部署
docker-compose.yml
services:
alertmanager:
image: prom/alertmanager:v0.28.1
restart: unless-stopped
ports:
- "127.0.0.1:9093:9093"
volumes:
- ./alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
- alertmanager-data:/alertmanager
command:
- --config.file=/etc/alertmanager/alertmanager.yml
- --storage.path=/alertmanager
volumes:
alertmanager-data:
5. Kubernetes 部署
Kubernetes 推荐使用 Prometheus Operator 或 kube-prometheus-stack 管理 Alertmanager CR、副本、存储、Secret 和配置选择器。生产 values 文件要明确副本数、持久卷、反亲和、Ingress/SSO、NetworkPolicy、Receiver Secret 和升级策略。详见 Alertmanager Kubernetes 实践。