配置 Elasticsearch 输出
编辑配置 Elasticsearch 输出编辑
Elasticsearch 输出使用 Elasticsearch HTTP API 将事件直接发送到 Elasticsearch。
示例配置
通过 elasticsearch
输出将数据发送到安全集群时,APM Server 可以使用以下任何一种身份验证方法
- 基本身份验证凭据(用户名和密码)。
- 基于令牌(API 密钥)的身份验证。
- 公钥基础设施 (PKI) 证书。
基本身份验证
output.elasticsearch: hosts: ["https://myEShost:9200"] username: "apm_writer" password: "YOUR_PASSWORD"
API 密钥身份验证
output.elasticsearch: hosts: ["https://myEShost:9200"] api_key: "ZCV7VnwBgnX0T19fN8Qe:KnR6yE41RrSowb0kQ0HWoA"
PKI 证书身份验证
output.elasticsearch: hosts: ["https://myEShost:9200"] ssl.certificate: "/etc/pki/client/cert.pem" ssl.key: "/etc/pki/client/cert.key"
有关每种身份验证方法的详细信息,请参阅 与 Elasticsearch 的安全通信。
兼容性编辑
此输出适用于所有兼容版本的 Elasticsearch。请参阅 Elastic 支持矩阵。
配置选项编辑
您可以在 apm-server.yml
配置文件中的 elasticsearch
部分指定以下选项
hosts
编辑
要连接到的 Elasticsearch 节点列表。事件以循环方式分配到这些节点。如果一个节点变得不可达,则事件会自动发送到另一个节点。每个 Elasticsearch 节点都可以定义为 URL
或 IP:PORT
。例如:http://192.15.3.2
、https://es.found.io:9230
或 192.24.3.2:9300
。如果未指定端口,则使用 9200
。
output.elasticsearch: hosts: ["10.45.3.2:9220", "10.45.3.1:9230"] protocol: https path: /elasticsearch
在前面的示例中,Elasticsearch 节点位于 https://10.45.3.2:9220/elasticsearch
和 https://10.45.3.1:9230/elasticsearch
。
compression_level
编辑
gzip 压缩级别。将此值设置为 0
将禁用压缩。压缩级别必须在 1
(最佳速度)到 9
(最佳压缩)范围内。
提高压缩级别将减少网络使用量,但会增加 CPU 使用量。
默认值为 0
。
api_key
编辑
您可以使用 API 密钥来保护与 Elasticsearch 的通信,而不是使用用户名和密码。该值必须是 API 密钥的 ID 和 API 密钥,用冒号分隔:id:api_key
。
有关更多信息,请参阅 使用 API 密钥授予访问权限。
password
编辑
用于连接到 Elasticsearch 的基本身份验证密码。
parameters
编辑
要与索引操作一起在 URL 中传递的 HTTP 参数字典。
protocol
编辑
Elasticsearch 可达的协议名称。选项包括:http
或 https
。默认值为 http
。但是,如果您为 hosts
指定 URL,则 protocol
的值将被您在 URL 中指定的任何方案覆盖。
path
编辑
附加到 HTTP API 调用的 HTTP 路径前缀。这在 Elasticsearch 位于将 API 导出到自定义前缀下的 HTTP 反向代理后面的情况下很有用。
headers
编辑
要添加到 Elasticsearch 输出创建的每个请求的自定义 HTTP 标头。示例
output.elasticsearch.headers: X-My-Header: Header contents
可以通过逗号分隔它们来为同一个标头名称指定多个标头值。
proxy_url
编辑
连接到 Elasticsearch 服务器时要使用的代理的 URL。该值可以是完整的 URL 或“host[:port]”,在这种情况下,将假定“http”方案。如果未通过配置文件指定值,则使用代理环境变量。有关环境变量的更多信息,请参阅 Go 文档。
flush_bytes
编辑
在刷新到 Elasticsearch 之前,批量请求大小阈值(以字节为单位)。该值必须带有后缀,例如 "2MB"
。默认值为 1MB
。
flush_interval
编辑
在刷新到 Elasticsearch 之前,累积事件以进行批量请求的最大持续时间。该值必须带有持续时间后缀,例如 "5s"
。默认值为 1s
。
backoff.init
编辑
在网络错误后尝试重新连接到 Elasticsearch 之前等待的秒数。在等待 backoff.init
秒后,APM Server 会尝试重新连接。如果尝试失败,则回退计时器会以指数方式增加,直到达到 backoff.max
。在成功连接后,回退计时器将重置。默认值为 1s
。
backoff.max
编辑
在网络错误后尝试连接到 Elasticsearch 之前等待的最大秒数。默认值为 60s
。
timeout
编辑
Elasticsearch 请求的 HTTP 请求超时时间(以秒为单位)。默认值为 90。
ssl
编辑
用于 SSL 参数的配置选项,例如用于基于 HTTPS 的连接的证书颁发机构。如果缺少 ssl
部分,则主机 CA 用于与 Elasticsearch 的 HTTPS 连接。
有关更多信息,请参阅 与 Elasticsearch 的安全通信 指南或 SSL 配置参考。
与 Elasticsearch 建立安全通信编辑
通过 elasticsearch
输出将数据发送到安全集群时,APM Server 可以使用以下任何一种身份验证方法
- 基本身份验证凭据(用户名和密码)。
- 基于令牌的 API 身份验证。
- 客户端证书。
身份验证在 APM Server 配置文件中指定。
-
要使用 基本身份验证,请在
output.elasticsearch
下指定username
和password
设置。例如output.elasticsearch: hosts: ["https://myEShost:9200"] username: "apm_writer" password: "YOUR_PASSWORD"
此用户需要将事件发布到 Elasticsearch 所需的权限。要创建这样的用户,请参阅 创建 写入者 用户。
-
要使用基于令牌的 API 密钥身份验证,请在
output.elasticsearch
下指定api_key
。例如此 API 密钥必须具有将事件发布到 Elasticsearch 所需的权限。要创建这样的 API 密钥,请参阅 使用 API 密钥授予访问权限。
-
要使用 公钥基础设施 (PKI) 证书 对用户进行身份验证,请在
output.elasticsearch
下指定certificate
和key
设置。例如output.elasticsearch: hosts: ["https://myEShost:9200"] ssl.certificate: "/etc/pki/client/cert.pem" ssl.key: "/etc/pki/client/cert.key"
这些设置假设证书中的可分辨名称 (DN) 映射到 Elasticsearch 集群中每个节点上的
role_mapping.yml
文件中的相应角色。有关更多信息,请参阅 使用角色映射文件。默认情况下,APM Server 使用运行 APM Server 的操作系统的受信任证书颁发机构 (CA) 列表。如果签署节点证书的证书颁发机构不在主机系统的受信任证书颁发机构列表中,则需要将包含 CA 证书的
.pem
文件的路径添加到 APM Server 配置中。这将配置 APM Server 使用特定 CA 证书列表,而不是来自操作系统的默认列表。以下是一个示例配置
output.elasticsearch: hosts: ["https://myEShost:9200"] ssl.certificate_authorities: - /etc/pki/my_root_ca.pem - /etc/pki/my_other_ca.pem ssl.certificate: "/etc/pki/client.pem" ssl.key: "/etc/pki/key.pem"
对于任何给定的连接,SSL/TLS 证书必须具有与为
hosts
指定的值匹配的主题,否则 SSL 握手将失败。例如,如果您指定hosts: ["foobar:9200"]
,则证书必须在主题 (CN=foobar
) 或作为主题备用名称 (SAN) 中包含foobar
。确保主机名解析为正确的 IP 地址。如果 DNS 不可用,则可以在/etc/hosts
(在 Unix 上)或C:\Windows\System32\drivers\etc\hosts
(在 Windows 上)中将 IP 地址与主机名关联。
了解有关安全通信的更多信息编辑
有关将数据发送到安全集群的更多信息,请参阅配置参考