ECS Fargate单容器部署Spring Boot与Elastic Agent的ELK监控及追踪异常问题
ECS Fargate上Elastic Agent功能与追踪数据排查
Elastic Agent的功能范围
Elastic Agent绝非只能做APM追踪,它是统一的数据采集器,能覆盖多类监控需求:
- APM与链路追踪:支持采集Spring Boot应用的请求链路、性能指标等追踪数据
- 容器级数据:可以采集ECS Fargate容器的stdout/stderr日志,以及容器CPU、内存、网络等运行指标
- 应用级日志:通过配置日志输入规则,能采集Spring Boot应用的控制台日志或文件日志
- 额外还能采集基础设施指标、云服务数据等,相当于整合了Filebeat、Metricbeat、APM Server的功能,一个Agent就能搞定多维度数据采集。
Kibana看不到追踪数据的排查步骤
1. 检查Elastic Agent本身状态
- 确认Agent策略配置:查看Fleet中的Agent policy,是否启用了
apm集成,且配置了正确的服务标识、环境参数 - 查看Agent日志:在Fargate容器内查看Elastic Agent日志文件(比如
/usr/share/elastic-agent/logs/elastic-agent.log),排查是否存在连接Elasticsearch失败、权限报错、数据发送受阻的信息 - 版本兼容验证:Elastic Agent、Elasticsearch、Kibana三者版本必须一致,版本不匹配大概率会导致数据传输异常
2. 验证Spring Boot应用的APM配置
- 确认应用已集成APM Agent:启动参数中必须添加
-javaagent:/path/to/elastic-apm-agent.jar,同时配置elastic.apm.service_name(自定义服务名)、elastic.apm.server_url=http://localhost:8200(同容器内用本地端口)、elastic.apm.secret_token(若Elastic Stack开启认证) - 查看应用启动日志:检查Spring Boot日志,确认APM Agent是否成功加载,有没有连接Agent失败的报错信息
3. 检查Elasticsearch与Kibana配置
- 确认ES已接收数据:打开Kibana Dev Tools,执行
GET apm-*/_count,若返回count大于0,说明数据已到ES,问题出在Kibana端 - 检查APM索引模式:确认Kibana中已创建
apm-*索引模式,且该模式已被APM应用识别(可在APM设置页面确认) - 权限验证:当前登录Kibana的用户是否拥有APM数据查看权限,比如是否属于
apm_user角色
4. 网络连通性测试
- 容器内端口连通:在容器内执行
curl http://localhost:8200,确认Spring Boot应用能访问Agent的APM监听端口 - Agent到ES的连通:检查Agent配置中的Elasticsearch地址、认证信息是否正确,Fargate安全组是否允许出站到ES的端口(通常为9200)
内容的提问来源于stack exchange,提问作者Sudhir Takale
相关产品推荐
相关产品推荐

