# [KB] alertmanager 服务无法启动: Failed to get final advertise address: No private IP address found, and explicit IP not provided

## Key Words

alertmanager, 无法启动, prometheus, monitoring

## Issue

alertmanager 节点无法启动，`tiup cluster display ${clustername}` 查看，集群中其他节点状态都正常，只有 alertmanger 的 status 显示 down.

手工启动 run_alertmanager.sh 报错如下：

```
level=warn ts=xxxx caller=cluster.go:154 component=cluster err="couldn't deduce an advertise address: no private IP found, explicit advertise addr not provided"
level=error ts=xxxx caller=main.go:165 msg="unable to initialize gossip mesh" err="create memberlist: Failed to get final advertise address: No private IP address found, and explicit IP not provided"
```

## Root Cause

由于 Alertmanager 的 [https://github.com/prometheus/alertmanager/issues/2284](https://github.com/prometheus/alertmanager/issues/2284) 和 [https://github.com/prometheus/alertmanager/issues/1271](https://github.com/prometheus/alertmanager/issues/1271) 问题，TiUP 在生成 Alertmanager 启动配置参数时无法获取 ClusterListenAddr  
GitHub issue: [https://github.com/pingcap/tiup/issues/2155](https://github.com/pingcap/tiup/issues/2155) 
因此在部署完成后启动 Alertmanager 会失败。

## Diagnostic Steps

1、检查集群配置文件中，各节点 ip 及 port 配置是否正确 `tiup cluster edit-config ${clustername}`  
2、检查 prometheus 服务是否正常启动  
3、检查 altermanager 服务端口是否被占用 `lsof -i:${port}`  
4、直接执行 run_alertmanager.sh 脚本，看是否出现以上报错  
5、手工在 run_alertmanager.sh 脚本最后一行加上 `--cluster.advertise-address="${alertmanager-ip}:${alertmanager-port}"` 后，再次启动脚本，看能否正常启动服务  

## Resolution

Bugfix PR: [https://github.com/pingcap/tiup/pull/2200](https://github.com/pingcap/tiup/pull/2200)

## Workaround

1、修改 tiup 启动模版中的 run_alertmanager 脚本

```
vi ~/.tiup/storage/cluster/clusters/tidb-cluster/config-cache/run_alertmanager_${alertmanager-ip}_${alertmanager-port}.sh  
在最后一行加上  
--cluster.advertise-address="${alertmanager-ip}:${alertmanager-port}"  
```

2、重新 reload 并启动 alertmanager 服务  
`tiup cluster reload ${clustername} -N ${alertmanager-ip}:${alertmanager-port}`  
