Prometheus与Alertmanager安全通信需启用TLS加密+可选身份认证;高敏感场景应配置双向TLS;辅以网络策略限制访问源,并可通过反向代理统一处理TLS终止与访问控制。

Prometheus 与 Alertmanager 安全通信,核心是防止告警数据在传输过程中被窃听、篡改或伪造。默认的 HTTP 连接(如 http://127.0.0.1:9093)不加密、无身份校验,仅适用于可信内网环境。若部署在公网、多租户环境或需满足安全合规要求(如等保、ISO 27001),必须启用 TLS 加密 + 可选的身份认证。
启用 TLS 加密通信
Alertmanager 支持 HTTPS(即 TLS)监听,Prometheus 需通过 https:// 地址推送告警,并验证服务器证书。
- 为 Alertmanager 生成或配置有效的 TLS 证书(推荐使用 Let’s Encrypt 或组织内签发的 CA 证书),避免自签名证书带来的信任问题
- 启动 Alertmanager 时启用 HTTPS 端口(如
--web.listen-address=:9093 --web.tls-cert-file=/path/to/cert.pem --web.tls-key-file=/path/to/key.pem) - 修改 Prometheus 的
prometheus.yml,将alertmanagers目标改为 HTTPS 地址:alerting:alertmanagers:- static_configs:- targets: ["https://alertmanager.example.com:9093"] - Prometheus 默认会校验证书域名和有效期;若用自签名证书且无法改造 CA 信任链,可临时加
--web.enable-admin-api并配合tls_config关闭验证(仅测试用,生产禁用)
配置双向 TLS(mTLS)增强认证
在高敏感场景(如金融、政企核心系统),建议启用客户端证书认证,确保只有合法的 Prometheus 实例能向 Alertmanager 发送告警。
- 为 Prometheus 生成专用客户端证书,并由同一 CA 签发
- Alertmanager 启动时指定 CA 证书用于校验客户端:
--web.tls-client-ca-file=/path/to/ca.pem - Prometheus 配置中添加 TLS 客户端凭证:
alerting:alertmanagers:- static_configs:- targets: ["https://alertmanager.example.com:9093"]tls_config:ca_file: /etc/prometheus/tls/ca.pemcert_file: /etc/prometheus/tls/client.crtkey_file: /etc/prometheus/tls/client.key
网络层与访问控制加固
TLS 解决传输加密,还需配合网络策略限制通信来源。
- 防火墙或安全组只放行 Prometheus 服务器 IP 到 Alertmanager 的 9093(HTTPS)端口,禁止其他地址访问
- 若共用 Kubernetes 集群,可用 NetworkPolicy 限定
prometheusServiceAccount 的 Pod 访问alertmanagerPod - 避免将 Alertmanager Web UI(
/#/alerts)直接暴露公网;确需远程查看,应通过反向代理 + 身份认证(如 OAuth2 Proxy 或 Nginx Basic Auth)前置保护
替代方案:使用反向代理统一入口
若 Alertmanager 原生 TLS 配置复杂,也可用 Nginx / Traefik 作为反向代理,集中处理 TLS 终止、证书管理与访问控制。
- Nginx 监听 443,配置证书,后端转发至 Alertmanager 的 HTTP 地址(
http://localhost:9093) - Prometheus 配置目标为
https://alertmanager.example.com(Nginx 域名),由 Nginx 负责证书校验与 ACL - 此方式便于灰度发布、日志审计、速率限制,也利于后续接入 WAF


















