阿里云ARMS为啥收集不到数据?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云ARMS(应用实时监控服务)无法收集到数据的原因可能涉及多个方面,以下是根据知识库资料整理的详细分析和排查步骤:
如果使用的是Prometheus服务进行数据采集,但未收到数据或日志,可能是以下原因导致: - 节点安全组端口未开放:对于阿里云容器服务K8s集群,如果没有节点相关指标数据,可能是因为节点安全组未开放10250
或10255
端口。 - Node Exporter未安装:对于ECS类型的Prometheus实例,如果没有ECS监控数据,可能是因为未安装Node Exporter组件。需要参考文档完成Node Exporter的接入配置。
在集成ARMS前端监控后,如果SLS没有收到数据,可能的原因包括: - 数据延迟:通常数据上报存在约2分钟的延迟,请耐心等待。 - 三方代码干扰:检查是否有第三方代码影响了正常的上报流程,建议排查前端代码中是否存在冲突逻辑。
如果通过开源探针(如OpenTelemetry、Skywalking、Jaeger、Zipkin)上报的数据在调用链路查询页面查不到,可能是因为: - 调用链路查询页面限制:该页面仅支持通过ARMS探针上报的Java应用数据。若需查询所有数据,请切换至调用链分析页面。
对于注册集群类型,如果接入Arms Prometheus后看不到监控数据,可以按照以下步骤排查: 1. 检查上报数据授权:确认是否已正确完成将阿里云Prometheus接入注册集群的授权操作。 2. 检查Agent安装参数:确保Arms Prometheus Agent的安装参数中mode=public
,即设定为走公网上报数据。可以通过以下命令检查:
kubectl get deployment -n arms-prom arms-prometheus-ack-arms-prometheus -o yaml | grep mode
如果mode=public
配置无误,则继续下一步。 3. 抓取数据上报报错日志:如果上述配置均正常,但仍无数据,建议抓取集群内数据上报的错误日志以进一步分析。
如果ARMS监控页面看不到应用数据,可能的原因包括: - 应用无持续外部请求访问:请确认应用是否有持续的外部请求访问,否则可能导致无数据展示。 - 地域选择错误:检查是否选择了正确的地域,确保与应用部署的区域一致。
如果在依赖服务中无法看到数据库调用数据,可能的原因包括: - 数据库不在支持列表中:ARMS仅支持特定的数据库列表,详情可参考ARMS应用监控支持的Java组件和框架。 - 探针版本限制:4.x之前版本的探针不支持通过异步方式或无入口方式调用的数据库。
如果在ACK环境中接入ARMS后无法看到容器监控数据,可能的原因是: - 账号不一致:创建ACK集群的阿里云账号与接入ARMS的阿里云账号不同,ARMS目前仅支持展示同一账号下的容器监控数据。
如果选择了自动安装Node Exporter但未成功安装,可能的原因包括: - ECS实例未运行:请确认目标ECS实例是否处于运行状态。 - 端口冲突:如果目标ECS实例已安装开源Node Exporter并占用了默认9100
端口,需要修改阿里云Node Exporter的安装端口以避免冲突。
以上是针对阿里云ARMS无法收集到数据的详细排查步骤和可能原因。建议根据具体场景逐一排查,并结合知识库中的相关文档进行操作。如果问题仍未解决,建议联系阿里云技术支持获取进一步帮助。
云原生可观测基于Prometheus、Grafana 、OpenTelemetry 等核心产品, 形成指标、链路存储分析、异构数据源集成的数据层, 通过标准PromQL和SQL提供大盘展示、告警与探索能力。