9094 端口是什么
9094 是 Prometheus Alertmanager 高可用部署中实例之间通信的默认端口。多个实例靠它互相交换状态,完成告警去重与同步,而对外提供界面的端口是 9093。9094 不通的典型表现是同一告警从多个实例重复发出,值班群里被连环轰炸却看不出是谁发的。
基本信息
| 服务 | Alertmanager 集群通信(默认 9094,界面 9093) |
|---|---|
| 协议 | TCP |
| 用途 | 高可用实例间的告警去重与状态同步 |
| 启动参数 | --cluster.listen-address 与 --cluster.peer |
| 依赖 | 实例之间需要双向可达 |
| 安全等级 | 仅监控集群内网 |
去重依赖实例之间互信
多个实例各自收到相同的告警后,通过集群通道协商由谁负责发送。通道断开后每个实例都会认为自己是唯一发送者,于是同一条告警被重复推送。这不是告警规则的问题,而是集群通信链路的问题。
典型使用场景
- 重复告警排查:先确认实例之间 9094 是否互通,再看告警规则。
- 高可用部署核对:确认每个实例的集群监听地址与对端参数配置正确。
- 网络策略调整:容器或主机安全策略变更后验证集群通道是否仍可用。
- 静默与抑制验证:确认静默状态在实例之间正确同步,避免一部分实例照常发送。
- 实例扩容:新增实例前确认其地址已加入其它实例的对端列表。
核对
核对
ss -lntp | grep -E '909[34]' # 确认两个端口都在监听
# 启动参数示例:--cluster.listen-address=:9094 --cluster.peer=am02:9094
curl -s http://am01:9093/api/v2/status | head -c 300 # 查看集群状态
for h in am01 am02 am03; do nc -zv $h 9094; done # 批量连通性核对输出逐列读法
| 列 | 含义 | 判读 |
|---|---|---|
| State | 套接字状态 | 监听属正常;对端连接数少于实例数说明有实例未纳入集群 |
| Local Address:Port | 监听地址 | 应绑定实例之间可互访的地址,绑定回环会导致其它实例连不上 |
| 集群状态字段 | 同步状况 | 对端列表与实例数不一致时,先去修配置或网络策略 |
单实例部署不需要集群通道。一旦扩容为多实例,端口与对端参数必须同时补齐,只加实例不改配置会让去重完全失效。
容器环境中若把监听地址绑定到回环,其它实例无法连接。这类配置错误在单机测试时不会暴露,上线后才表现为重复告警。