Prometheus配置azure_sd_configs后无法发现Azure VM实例问题求助
Prometheus Azure VM服务发现故障排查方案
1. Azure服务主体权限校验
- 配置中
client_id对应的服务主体,必须在目标订阅下有至少读取权限,最低要求覆盖Microsoft.Compute/virtualMachines/read、Microsoft.Network/networkInterfaces/read两类操作权限,权限不足会导致Prometheus无法拉取VM清单 - 确认填写的
subscription_id、tenant_id、client_id、client_secret四个参数无拼写错误,尤其是client_secret不要携带多余空格、特殊字符转义错误
2. azure_sd_configs配置补全检查
- 当前配置未指定资源过滤规则,默认会拉取订阅下所有区域的VM,若你的VM仅分布在特定资源组/区域,建议显式配置过滤参数避免拉取范围过大触发超时,参考配置如下:
azure_sd_configs: - subscription_id: "SUB_ID" tenant_id: "tenant_ID" client_id: "Client_id" client_secret: "Secret" port: 9100 # 可选:指定目标资源组,不填则拉取订阅下所有资源组的VM resource_group: "你的资源组名称" # 可选:指定目标区域,不填则拉取所有区域的VM region: "chinaeast2" # 若使用世纪互联运营的国内Azure,必须添加以下参数 environment: AzureChinaCloud
- 若需要按标签过滤VM,可额外添加
tag_filters配置项实现筛选
3. Prometheus运行日志排查
- 查看Prometheus运行日志,搜索
azure_sd关键词定位报错:- 若出现权限拒绝类报错,回到第一步校验服务主体权限
- 若出现网络超时类报错,确认Prometheus所在服务器可以正常访问Azure公共API,无防火墙、代理拦截
- 若出现参数非法类报错,核对配置中四个身份参数的正确性
4. Prometheus服务发现界面校验
- 登录Prometheus Web控制台,进入
Status > Service Discovery页面,查看azure-nodes任务的发现结果:- 若显示0个实例,问题出在服务发现逻辑侧,优先排查权限、配置、网络问题
- 若显示有实例但状态为
DOWN,问题出在指标拉取侧,优先排查VM网络安全组是否开放9100端口、Prometheus与VM之间网络是否连通、Node Exporter是否正常运行
5. 无关配置清理
当前配置的remote_write目标端口为9100,属于Node Exporter的默认端口,不符合Prometheus远程写入接口规范,若无实际远程写入需求可直接注释掉这段配置,避免产生无关报错干扰排查。
内容的提问来源于stack exchange,提问作者dude0786
相关产品推荐
相关产品推荐

