Mac 上安装与部署 Alertmanager

Mac 不支持 brew 部署 Alertmanager,改为用 Docker 部署 Alertmanager,这是最简洁、隔离性最好的方式之一。

下面是完整可用的命令、挂载配置和与 Prometheus 的联动示例。

🧩 一、准备工作

在你的 macOS 上确保:

docker --version

输出版本信息即可。

创建配置目录:

mkdir -p ~/alertmanager
cd ~/alertmanager

手动下载 Alertmanager(macOS 手动方式)所需要的配置文件:

cd ~/Downloads
curl -LO https://github.com/prometheus/alertmanager/releases/latest/download/alertmanager-0.29.0-rc.1.darwin-amd64.tar.gz
tar -xvf alertmanager-0.29.0-rc.1.darwin-amd64.tar.gz
mv alertmanager-0.29.0-rc.1.darwin-amd64 ~/alertmanager
cd ~/alertmanager

这样 ~/alertmanager 目录下就有了对应的配置

~/alertmanager/alertmanager
~/alertmanager/amtool
~/alertmanager/alertmanager.yml (模板配置)

如果 curl 下载失败,可以使用代理模式:

export https_proxy=http://127.0.0.1:8118
export http_proxy=http://127.0.0.1:8118

⚙️ 二、创建配置文件 alertmanager.yml

vim 修改~/alertmanager/alertmanager.yml:

global:
  smtp_smarthost: 'smtp.qiye.aliyun.com:465'
  # smtp_smarthost: 'smtp.mxhichina.com:465'    # 阿里邮箱SMTP服务器
  smtp_from: 'you.chang@antank.com'           # 发信邮箱
  smtp_auth_username: 'you.chang@xxx.com'  # 登录用户名
  smtp_auth_password: 'xxxxxxx'            # 登录密码(见下方说明)
  smtp_require_tls: false                     # 若使用465端口(SSL),需关闭TLS,否则报错

route:
  receiver: 'email-alert'

receivers:
  - name: 'email-alert'
    email_configs:
      - to: 'changyou0730@163.com'
        send_resolved: true

# 若想先测试,可以改成简单日志输出版本:
# receivers:
#   - name: "default-receiver"
#     webhook_configs:
#       - url: "http://127.0.0.1:5001"

🚀 三、启动 Alertmanager 容器

删除旧容器(推荐)

docker stop alertmanager
docker rm alertmanager

重新运行命令:

docker run -d \
  --name alertmanager \
  -p 9093:9093 \
  -v ~/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml \
  prom/alertmanager:latest

说明:

  • -d 后台运行
  • -p 9093:9093 映射本地端口
  • -v 挂载配置文件
  • prom/alertmanager:latest 是官方镜像(Prometheus 官方维护)

🌐 四、访问 Web UI

浏览器打开:

http://localhost:9093

如果显示 Alertmanager 界面(空白列表),说明启动成功 ✅


🔗 五、与 Prometheus 联动

prometheus.yml 中添加:

alerting:
  alertmanagers:
    - static_configs:
        - targets:
            - "host.docker.internal:9093"

💡 macOS 上用 Docker 时,
Prometheus 若运行在宿主机,访问容器时使用 host.docker.internal
若 Prometheus 也运行在 Docker 内,可用容器名 alertmanager:9093

🧠 六、(可选)定义测试告警规则

例如在 alert_rules.yml

groups:
  - name: test_rules
    rules:
      - alert: TestAlert
        expr: vector(1)
        for: 30s
        labels:
          severity: warning
        annotations:
          summary: "测试告警"
          description: "Prometheus 触发测试告警"

Prometheus 启动后 30 秒内就会触发一个测试告警,
Alertmanager 页面就能看到。

或者,手动测试一下:

curl -XPOST http://localhost:9093/api/v2/alerts \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "labels": {
        "alertname": "EmailTest",
        "severity": "critical"
      },
      "annotations": {
        "summary": "This is a test alert from Alertmanager Docker"
      },
      "startsAt": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"
    }
  ]'

📊 七、查看日志

docker logs -f alertmanager

可以看到告警接收、抑制、发送的详细日志。

🧩 八、常见问题

问题 解决方法
修改配置不生效 重新加载配置:docker exec alertmanager kill -HUP 1 或重启容器
宿主机 Prometheus 无法连接容器 使用 host.docker.internal 而非 localhost
Web 页面无告警 确认 Prometheus 已触发告警并正确配置 alertmanagers 目标

✅ 总结

目标 命令
启动 Alertmanager docker run -d -p 9093:9093 -v ~/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml prom/alertmanager
查看 Web UI http://localhost:9093
查看日志 docker logs -f alertmanager
停止容器 docker stop alertmanager && docker rm alertmanager
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容