You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过API/命令行/配置文件添加Elastic APM集成

Elastic Stack 8.7.0 自动化配置APM服务器方案

问题分析

你之前的配置未生效的核心原因是误用了fleet_server包来配置APM输入——APM服务器对应的是官方的apm包,而非fleet_server包。

自动化实现方法

方法1:通过Kibana配置文件预定义Package Policy

这是最贴合你现有一键启动流程的方案,直接在Kibana配置中添加APM的策略定义。

配置位置

  • 若使用挂载配置文件:修改Kibana的kibana.yml,在xpack.fleet.agentPolicies数组中追加APM策略配置。
  • 若使用docker-compose环境变量:对应环境变量为XPACK_FLEET_AGENTPOLICIES,需将配置转成JSON格式字符串传入。

正确配置示例

xpack.fleet.agentPolicies:
  # 保留你原有的其他策略(如fleet_server策略)
  - name: default-apm-policy
    id: default-apm-policy
    package:
      name: apm
      version: 8.7.0 # 必须与你的Elastic Stack版本完全一致
    inputs:
      - type: apm
        enabled: true
        vars:
          - name: host
            value: "0.0.0.0:8200"
          - name: url
            value: "http://elasticsearch:9200" # 容器间用服务名而非localhost
          - name: enable_rum
            value: true
            frozen: true
          - name: secret_token
            value: "your-custom-secret" # 可选,需与APM客户端配置一致

方法2:通过Fleet API批量配置

如果需要在环境启动后自动执行配置,可通过curl调用Kibana的Fleet API创建APM Package Policy:

命令示例(需替换Kibana地址、账号密码)

curl -X POST "http://kibana:5601/api/fleet/package_policies" \
  -u "elastic:your-elastic-password" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "default-apm-policy",
    "id": "default-apm-policy",
    "package": {
      "name": "apm",
      "version": "8.7.0"
    },
    "inputs": [
      {
        "type": "apm",
        "enabled": true,
        "vars": [
          {"name": "host", "value": "0.0.0.0:8200"},
          {"name": "url", "value": "http://elasticsearch:9200"},
          {"name": "enable_rum", "value": true}
        ]
      }
    ]
  }'

方法3:导入预定义Saved Object

如果需要一次性配置APM的UI视图、索引模式等完整组件,可先在测试环境手动配置好APM,导出Saved Object后,在生产环境自动导入:

导出(仅需手动操作一次,后续复用)

  1. 在Kibana中完成APM配置后,进入Stack Management → Saved Objects
  2. 筛选并选中所有APM相关对象(索引模式、服务视图等)
  3. 导出为NDJSON格式文件

导入命令示例

curl -X POST "http://kibana:5601/api/saved_objects/_import?overwrite=true" \
  -u "elastic:your-elastic-password" \
  -H "kbn-xsrf: true" \
  --form file=@apm-saved-objects.ndjson

关键注意事项

  • 所有配置的包版本必须与你的Elastic Stack版本(8.7.0)完全一致,避免版本不兼容。
  • 容器间网络地址要使用docker-compose中定义的服务名(如elasticsearch),不能用localhost。
  • 若ES启用安全认证,需确保APM配置的secret_token或API密钥与ES的认证规则匹配。

内容的提问来源于stack exchange,提问作者dpfdg dfsg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:15:32