引言
在现代软件开发中,应用性能监控(Application Performance Monitoring, APM)已成为确保系统稳定性和用户体验的关键工具。Elastic APM 是 Elastic Stack(包括 Elasticsearch、Kibana 和 APM Server)的一部分,它允许开发者实时监控软件服务和应用的性能,包括响应时间、数据库查询、外部 HTTP 调用等。通过 APM,您可以快速识别瓶颈、错误和异常,从而优化应用。Elastic APM 特别适合分布式系统和微服务架构,因为它支持多种编程语言的代理(Agent),并将数据存储在 Elasticsearch 中进行分析。本文将指导您从零开始设置 Elastic APM,适合初学者。Elastic APM 的核心组件Elastic APM 的架构简单高效,主要由以下组件组成:

  • APM Agents:轻量级库,集成到您的应用中,自动收集性能数据(如事务、跨度和错误)。支持 Java、.NET、Node.js、Python、Go 等语言。
  • APM Server:作为代理和 Elasticsearch 之间的桥梁,接收 Agent 数据,进行验证和处理,然后转换为 Elasticsearch 文档。
  • Elasticsearch:存储和索引 APM 数据,支持快速搜索和聚合分析。
  • Kibana:可视化界面,用于查看仪表板、追踪和警报。

这些组件构建在 Elastic Stack 上,确保数据的高可用性和可扩展性。设置 Elastic APM 的步骤设置 Elastic APM 通常只需 30 分钟。以下是基于官方文档的详细教程,假设您使用本地环境或 Elastic Cloud。

  1. 安装 Elasticsearch 和 Kibana:
    • 下载 Elastic Stack(版本 8.x 推荐)。使用 Docker Compose 快速启动:
version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.10.0
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
    ports:
      - 9200:9200
  kibana:
    image: docker.elastic.co/kibana/kibana:8.10.0
    ports:
      - 5601:5601
    depends_on:
      - elasticsearch

运行 docker-compose up。

  1. 安装 APM Server:
    • 下载 APM Server 二进制文件或使用 Docker:
image: docker.elastic.co/apm/apm-server:8.10.0
ports:
  - 8200:8200
command: >
  apm-server -e
  -E apm-server.host=0.0.0.0:8200
  -E output.elasticsearch.hosts=["elasticsearch:9200"]
  -E apm-server.secret_token=your-secret-token
depends_on:
  - elasticsearch

配置 apm-server.yml 文件,指定 Elasticsearch 主机和秘密令牌(用于安全)。

  1. 集成 APM Agent:
    • 以 Java 为例(其他语言类似)。下载 Java Agent JAR 文件:
java -javaagent:/path/to/elastic-apm-agent.jar \
-Delastic.apm.service_name=my-java-app \
-Delastic.apm.server_urls=http://localhost:8200 \
-Delastic.apm.secret_token=your-secret-token \
-jar your-app.jar

Agent 会自动捕获 HTTP 请求、数据库调用等数据。

  1. 在 Kibana 中配置和查看数据:
    • 访问 Kibana(http://localhost:5601),导航到 “Observability > APM”。
    • 启用 APM 集成,加载预构建仪表板。数据将实时流式传输到 Elasticsearch。
    • 检查服务库存(Service Inventory),查看健康状态和性能指标。

如果使用 Elastic Cloud,只需创建项目并获取 APM 端点和令牌,即可跳过手动安装。常见问题与调试

  • 数据未出现:检查 Agent 配置中的 server_urls 和 secret_token。确保防火墙允许 8200 端口。
  • 安全性:生产环境中启用 TLS 和 API 密钥,避免明文传输。
  • 性能开销:Agent 默认采样率 100%,可调整为 10% 以减少负载。

结论
通过以上步骤,您已成功设置 Elastic APM。现在,尝试运行应用并在 Kibana 中观察事务和错误。Elastic APM 不仅提供实时洞察,还支持与日志和指标的集成,帮助您构建完整的可观测性栈。接下来,可以探索高级可视化或警报设置。

Logo

更多推荐