使用内部采集发送监控数据
使用内部收集器将 Beats 监控数据直接发送到你的监控集群。或者作为内部收集的替代方案,使用 使用 Metricbeat 收集。与 Metricbeat 相比,使用内部收集的好处是需要安装和维护的软件较少。
创建一个具有适当权限的 API 密钥或用户,以便将系统级监控数据发送到 Elasticsearch。例如,你可以使用内置的
apm_system用户,或者将内置的apm_system角色分配给其他用户。有关所需权限的更多信息,请参见 创建监控角色。有关如何使用 API 密钥的更多信息,请参见 使用 API 密钥授予访问权限。在 APM Server 配置文件中添加
monitoring设置。如果你配置了 Elasticsearch 输出,并且想要将 APM Server 监控事件发送到同一个 Elasticsearch 集群,请指定以下最简配置monitoring: enabled: true elasticsearch: api_key: id:api_key username: apm_system password: somepassword- 指定
api_key或username/password之一。
如果您想将监控事件发送到 Elastic Cloud 监控集群,您可以使用两个更简单的设置。定义后,这些设置将覆盖配置中其他部分的设置。例如
monitoring: enabled: true cloud.id: 'staging:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw==' cloud.auth: 'elastic:YOUR_PASSWORD'如果你配置了其他输出(例如 Logstash),或者想将 APM Server 监控事件发送到单独的 Elasticsearch 集群(称为*监控集群*),则必须指定其他配置选项。例如
monitoring: enabled: true cluster_uuid: PRODUCTION_ES_CLUSTER_UUID elasticsearch: hosts: ["<HOST_URL_1>:<PORT_1>", "<HOST_URL_2>:<PORT_2>"] api_key: id:api_key username: apm_system password: somepassword- 此设置用于标识该 APM Server 实例的监控数据将显示在堆栈监控(Stack Monitoring)UI 中的哪个 Elasticsearch 集群下。要获取集群的
cluster_uuid,请针对该集群调用GET /API。 - 此设置用于标识作为监控集群一部分的 Elasticsearch 节点的主机和端口号。
- 指定
api_key或username/password之一。
如果您想使用 PKI 身份验证将监控事件发送到 Elasticsearch,则必须指定一组不同的配置选项。例如
monitoring: enabled: true cluster_uuid: PRODUCTION_ES_CLUSTER_UUID elasticsearch: hosts: ["<HOST_URL_1>:<PORT_1>", "<HOST_URL_2>:<PORT_2>"] username: "" ssl.certificate_authorities: ["/etc/pki/root/ca.pem"] ssl.certificate: "/etc/pki/client/cert.pem" ssl.key: "/etc/pki/client/cert.key"你必须显式将
username指定为"",以便使用客户端证书中的用户名 (CN)。有关 SSL 设置的更多信息,请参见 SSL/TLS 输出设置。- 指定
启动 APM Server。
当您不使用 Metricbeat 来收集监控数据时,请使用以下设置来配置内部采集。
你在 apm-server.yml 配置文件中的 X-Pack monitoring 部分指定这些设置
monitoring.enabled 配置是一个布尔设置,用于启用或禁用监控功能。如果设置为 true,则启用监控。
默认值为 false。
你要将 APM Server 指标发送到的 Elasticsearch 实例。此配置选项包含以下字段
用于向 Elasticsearch 发送监控信息的 API 密钥的详细信息。有关更多信息,请参见 使用 API 密钥授予访问权限。
在单个 Elasticsearch bulk API 索引请求中批量处理的最大指标数。默认值为 50。有关更多信息,请参见 Elasticsearch。
发生网络错误后,尝试重新连接到 Elasticsearch 之前等待的秒数。等待 backoff.init 秒后,APM Server 会尝试重新连接。如果尝试失败,退避(backoff)定时器将以指数级增加,最高可达 backoff.max。连接成功后,退避定时器将被重置。默认值为 1s。
发生网络错误后,尝试连接到 Elasticsearch 之前等待的最大秒数。默认值为 60s。
gzip 压缩级别。将此值设置为 0 将禁用压缩。压缩级别必须在 1(最佳速度)到 9(最佳压缩)之间。默认值为 0。提高压缩级别会减少网络带宽占用,但会增加 CPU 使用率。
要添加到每个请求的自定义 HTTP 标头。有关更多信息,请参见 Elasticsearch。
要连接的 Elasticsearch 节点列表。监控指标以循环(round robin)顺序分发到这些节点。有关更多信息,请参见 Elasticsearch。
失败后重试发送监控指标的次数。在达到指定的重试次数后,通常会丢弃这些指标。默认值为 3。有关更多信息,请参见 Elasticsearch。
随索引操作在 URL 中传递的 HTTP 参数字典。
APM Server 用于向 Elasticsearch 实例进行身份验证以发送监控数据的密码。
将指标发送到 Elasticsearch 集群的时间间隔(以秒为单位)。每个周期都会生成一个新的 APM Server 指标快照并将其安排发布。默认值为 10 * time.Second。
将状态信息发送到 Elasticsearch 集群的时间间隔(以秒为单位)。每个周期都会生成一个新的 APM Server 状态快照并将其安排发布。默认值为 60 * time.Second。
连接到 Elasticsearch 集群时要使用的协议名称。选项为:http 或 https。默认值为 http。但是,如果您为 hosts 指定了 URL,则协议的值会被您在 URL 中指定的方案所覆盖。
连接到 Elasticsearch 集群时使用的代理 URL。有关更多信息,请参见 Elasticsearch。
Elasticsearch 请求的 HTTP 请求超时时间(以秒为单位)。默认值为 90。
传输层安全性 (TLS) 或安全套接层 (SSL) 参数的配置选项,例如用于基于 HTTPS 的连接的证书颁发机构 (CA)。如果缺少 ssl 部分,则将使用主机 CA 进行与 Elasticsearch 的 HTTPS 连接。有关更多信息,请参见 SSL/TLS 输出设置。
APM Server 用于向 Elasticsearch 实例进行身份验证以发送监控数据的用户 ID。