阿里云ARMS做了PROMETHEUS之后,刚开始还是数据,之后就没有了,这个是什么原因?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用阿里云ARMS Prometheus监控时,如果刚开始有数据但随后数据消失,可能是由以下几个原因导致的。以下是详细的原因分析及排查步骤:
如果监控的是Nginx Ingress网关或其他自定义服务,可能是因为日志输出格式与Prometheus下发的解析规则不一致,导致数据无法正确解析和展示。
解决方法: - 检查“Prometheus 实例” -> “大盘列表” -> “Vector Self Monitor Dashboard” 中的“日志解析错误趋势”是否有数据。 - 如果有数据,则说明日志解析规则需要调整: 1. 进入“Prometheus 实例” -> “集成中心” -> “Nginx Ingress 网关监控” -> “Exporter”。 2. 编辑“日志解析规则”字段,确保其符合实际的日志输出格式。
对于注册集群类型,数据需要通过公网或专有网络上报。如果授权或网络配置有问题,可能导致数据中断。
排查步骤: 1. 检查上报数据授权: - 确认是否已按照文档完成授权操作。 2. 检查Arms Prometheus Agent安装参数: - 在集群内执行以下命令,确认mode=public
是否正确设置: bash kubectl get deployment -n arms-prom arms-prometheus-ack-arms-prometheus -o yaml | grep mode
- 如果未设置为public
,请修改配置以允许公网上报数据。 3. 抓取数据上报日志: - 如果上述配置无误,但仍无数据,请抓取集群内的数据上报报错日志,定位具体问题。
ECS实例的安全组或防火墙规则可能阻止了Prometheus采集数据所需的端口访问。
解决方法: - 确保ECS的安全组在入方向允许以下网段对node-exporter
和process-exporter
端口的访问权限: - 100.64.0.0/10
- 192.168.0.0/18
- 默认端口为9100
(node-exporter)和9256
(process-exporter),具体端口需根据实际配置确认。 - 如果未启用自动配置安全组,请手动添加规则,允许指定监控端口的访问。
Node-Exporter或Process-exporter可能因某些原因停止运行,导致数据采集失败。
排查步骤: 1. 检查Exporter是否正常运行: - 使用以下命令查询Exporter暴露的指标页面,确认是否可以正常返回数据: bash curl http://<ECS-IP>:<PORT>/metrics
- 如果无法返回数据,请检查Exporter的日志,定位问题。 2. 验证Node-Exporter是否成功安装: - 访问http://<ECS-IP>:<PORT>/metrics
,查看是否有指标数据输出。如果有数据,则表明安装成功。
如果您将Prometheus数据投递至自建Prometheus实例,可能存在投递任务配置错误或网络不通的问题。
排查步骤: 1. 确认投递任务是否正确创建: - 登录ARMS控制台,进入“Prometheus监控” -> “数据投递”页面,检查任务状态。 2. 检查网络连通性: - 如果Prometheus实例所在VPC与目标VPC不在同一个,确保目标VPC内的vSwitch IP已加入Prometheus实例的白名单中。
process-exporter
的默认端口9256
在安全组中被允许,并注意资源消耗对系统性能的影响。根据上述分析,您可以按照以下顺序逐步排查问题: 1. 检查日志解析规则是否匹配。 2. 确认上报数据授权和网络配置是否正确。 3. 检查安全组或防火墙规则是否放通相关端口。 4. 验证Node-Exporter和Process-exporter是否正常运行。 5. 检查数据投递任务配置和网络连通性。
如果问题仍未解决,建议联系阿里云技术支持,提供详细的日志和配置信息以便进一步排查。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。
云原生可观测基于Prometheus、Grafana 、OpenTelemetry 等核心产品, 形成指标、链路存储分析、异构数据源集成的数据层, 通过标准PromQL和SQL提供大盘展示、告警与探索能力。