使用旧版收集器收集 Logstash 监控数据
编辑使用旧版收集器收集 Logstash 监控数据编辑
已在 7.9.0 中弃用。
旧版收集的组件编辑
使用旧版收集监控 Logstash 使用以下组件
这些部分位于专用监控管道中,而不是默认的 Logstash 管道中。此配置可确保所有数据和处理对普通 Logstash 处理的影响最小。可以重复使用现有的 Logstash 功能(例如 elasticsearch
输出)以受益于其重试策略。
用于监控 Logstash 的 elasticsearch
输出完全通过 logstash.yml
中的设置进行配置。它不使用 Logstash 配置中的任何内容进行配置,这些配置也可能使用它们自己单独的 elasticsearch
输出。
生产 Elasticsearch 集群应配置为接收 Logstash 监控数据。此配置使生产 Elasticsearch 集群能够将元数据(例如,其集群 UUID)添加到 Logstash 监控数据,然后将其路由到监控集群。有关典型监控架构的更多信息,请参阅 监控工作原理(位于 Elasticsearch 参考 中)。
收集器编辑
顾名思义,收集器就是用来收集东西的。在 Logstash 监控中,收集器就像普通 Logstash 配置提供输入一样,也是 输入。
与 Elasticsearch 监控一样,每个收集器都可以创建零个或多个监控文档。按照目前的实现方式,每个 Logstash 节点都运行两种类型的收集器:一种用于节点统计信息,另一种用于管道统计信息。
收集器 | 数据类型 | 说明 |
---|---|---|
节点统计信息 |
|
收集有关正在运行的节点的详细信息,例如内存利用率和 CPU 使用率(例如, 这会在启用了监控功能的每个 Logstash 节点上运行。一个常见的故障是 Logstash 目录在复制时包含了它们的 |
管道统计信息 |
|
收集有关节点正在运行的管道的详细信息,这些信息为监控管道 UI 提供支持。 |
每个收集间隔(默认为 10 秒(10s
))运行一次每个收集器。单个收集器的故障不会影响任何其他收集器。每个收集器作为一个普通的 Logstash 输入,在其隔离的监控管道中创建一个单独的 Logstash 事件。然后,Logstash 输出发送数据。
可以动态配置收集间隔,您也可以禁用数据收集。有关收集器的配置选项的更多信息,请参阅 监控设置。
与 Elasticsearch 和 Kibana 监控不同,Logstash 上没有 xpack.monitoring.collection.enabled
设置。您必须使用 xpack.monitoring.enabled
设置来启用和禁用数据收集。
如果 Kibana 中的监控图表存在缺隔,通常是因为收集器失败或监控集群未收到数据(例如,它正在重新启动)。如果收集器失败,则尝试执行收集的节点上应该存在记录的错误。
输出编辑
与所有 Logstash 管道一样,专用监控管道的目的是将事件发送到输出。对于 Logstash 监控,输出始终是 elasticsearch
输出。但是,与普通的 Logstash 管道不同,输出是通过 xpack.monitoring.elasticsearch.*
设置在 logstash.yml
设置文件中配置的。
除了其独特的配置方式外,此 elasticsearch
输出的行为与所有 elasticsearch
输出的行为相同,包括在输出存在问题时暂停数据收集的功能。
至关重要的是,所有 Logstash 节点都共享相同的设置。否则,监控数据可能会以不同的方式路由到不同的位置。
默认配置编辑
如果 Logstash 节点没有显式定义监控输出设置,则使用以下默认配置
xpack.monitoring.elasticsearch.hosts: [ "https://127.0.0.1:9200" ]
Logstash 监控生成的所有数据都使用 .monitoring-logstash
模板索引在监控集群中,该模板由 Elasticsearch 中的 导出器 管理。
如果您使用的集群启用了 X-Pack 安全功能,则需要执行额外的步骤才能正确配置 Logstash。有关更多信息,请参阅 _监控 Logstash(旧版)_。
在讨论与 elasticsearch
输出相关的安全性时,务必记住所有用户都在生产集群上进行管理,该集群在 xpack.monitoring.elasticsearch.hosts
设置中标识。当您从开发环境迁移到生产环境时,这一点尤其重要,因为在生产环境中您通常拥有专用的监控集群。
有关输出的配置选项的更多信息,请参阅 监控设置。
使用旧版收集器配置 Logstash 监控编辑
要监控 Logstash 节点,请执行以下操作
-
指定发送监控数据的位置。此集群通常称为_生产集群_。有关典型监控架构的示例,请参阅 监控工作原理。
要将 Logstash 可视化为 Elastic Stack 的一部分(如步骤 6 中所示),请将指标发送到您的_生产_集群。将指标发送到专用监控集群将在_监控_集群下显示 Logstash 指标。
- 验证生产集群上的
xpack.monitoring.collection.enabled
设置是否为true
。如果该设置为false
,则 Elasticsearch 中的监控数据收集将被禁用,并且来自所有其他来源的数据都将被忽略。 -
通过在
logstash.yml
中将xpack.monitoring.enabled
设置为true
并将目标 Elasticsearch 节点指定为xpack.monitoring.elasticsearch.hosts
来配置 Logstash 节点以发送指标。如果启用了安全功能,您还需要为 内置logstash_system
用户 指定凭据。有关这些设置的更多信息,请参阅 监控设置。 -
如果在生产 Elasticsearch 集群上启用了 SSL/TLS,请指定将用于验证集群中节点身份的受信任 CA 证书。
要将 CA 证书添加到 Logstash 节点的受信任证书中,可以使用
certificate_authority
设置指定 PEM 编码证书的位置xpack.monitoring.elasticsearch.ssl.certificate_authority: /path/to/ca.crt
要添加 CA 而不将其加载到磁盘上,可以使用
ca_trusted_fingerprint
设置指定 DER 格式 CA 的十六进制编码 SHA 256 指纹xpack.monitoring.elasticsearch.ssl.ca_trusted_fingerprint: 2cfe62e474fb381cc7773c84044c28c9785ac5d1940325f942a3d736508de640
自签名 Elasticsearch 集群将在设置过程中向控制台提供其 CA 的指纹。
您还可以使用 Elasticsearch 主机上的
openssl
命令行实用程序获取 Elasticsearch CA 的 SHA256 指纹openssl x509 -fingerprint -sha256 -in $ES_HOME/config/certs/http_ca.crt
或者,您可以使用信任库(包含证书的 Java 密钥库文件)配置受信任证书
xpack.monitoring.elasticsearch.ssl.truststore.path: /path/to/file xpack.monitoring.elasticsearch.ssl.truststore.password: password
此外,您还可以选择使用密钥库(包含证书的 Java 密钥库文件)或使用证书和密钥文件对来设置客户端证书
xpack.monitoring.elasticsearch.ssl.keystore.path: /path/to/file xpack.monitoring.elasticsearch.ssl.keystore.password: password
xpack.monitoring.elasticsearch.ssl.certificate: /path/to/certificate xpack.monitoring.elasticsearch.ssl.key: /path/to/key
将嗅探设置为
true
以启用对 Elasticsearch 集群中其他节点的发现。它默认为false
。xpack.monitoring.elasticsearch.sniffing: false
- 重新启动您的 Logstash 节点。
-
要验证您的监控配置,请将您的 Web 浏览器指向您的 Kibana 主机,然后从侧面导航中选择 **监控**。您的 Logstash 节点报告的指标应该在 Logstash 部分中可见。启用安全功能后,要查看监控仪表板,您必须以具有
kibana_user
和monitoring_user
角色的用户身份登录 Kibana。
旧版收集的监控设置编辑
您可以在 logstash.yml
中设置以下 xpack.monitoring
设置,以控制如何从 Logstash 节点收集监控数据。但是,在大多数情况下,默认设置最有效。有关配置 Logstash 的更多信息,请参阅 logstash.yml。
常规监控设置编辑
-
xpack.monitoring.enabled
- 默认情况下,监控处于禁用状态。设置为
true
以启用 X-Pack 监控。 -
xpack.monitoring.elasticsearch.hosts
- 您要将 Logstash 指标发送到的 Elasticsearch 实例。这可能是 Logstash 配置的
outputs
部分中指定的同一个 Elasticsearch 实例,也可能是不同的实例。这不是您的专用监控集群的 URL。即使您使用的是专用监控集群,Logstash 指标也必须通过您的生产集群进行路由。您可以将单个主机指定为字符串,也可以将多个主机指定为数组。默认为https://127.0.0.1:9200
。
如果您的 Elasticsearch 集群配置了专用的主节点,则 Logstash 指标不应路由到这些节点,因为这样做可能会造成资源争用并影响 Elasticsearch 集群的稳定性。因此,请勿在 xpack.monitoring.elasticsearch.hosts
中包含此类节点。
-
xpack.monitoring.elasticsearch.proxy
- 监控 Elasticsearch 实例和被监控的 Logstash 可以通过代理进行分离。要使 Logstash 能够连接到代理 Elasticsearch,请使用标准 URI 格式(例如
http://192.168.1.1
)将此值设置为中间代理的 URI,<protocol>://<host>
。空字符串将被视为未设置代理。 -
xpack.monitoring.elasticsearch.username
和xpack.monitoring.elasticsearch.password
- 如果您的 Elasticsearch 受基本身份验证保护,则这些设置提供 Logstash 实例用于身份验证以发送监控数据的用户名和密码。
监控收集设置编辑
-
xpack.monitoring.collection.interval
- 控制在 Logstash 端收集和发送数据样本的频率。默认为
10s
。如果修改收集间隔,请在kibana.yml
中将xpack.monitoring.min_interval_seconds
选项设置为相同的值。
监控 TLS/SSL 设置编辑
您可以配置以下传输层安全性 (TLS) 或安全套接字层 (SSL) 设置。有关更多信息,请参阅 为 Logstash 监控配置凭据。
-
xpack.monitoring.elasticsearch.ssl.ca_trusted_fingerprint
- 可选设置,使您能够为 Elasticsearch 实例指定证书颁发机构的十六进制编码 SHA-256 指纹。
自签名 Elasticsearch 集群将在设置过程中向控制台提供其 CA 的指纹。
您还可以使用 Elasticsearch 主机上的 openssl
命令行实用程序获取 Elasticsearch CA 的 SHA256 指纹
openssl x509 -fingerprint -sha256 -in $ES_HOME/config/certs/http_ca.crt
-
xpack.monitoring.elasticsearch.ssl.certificate_authority
- 可选设置,使您能够指定 Elasticsearch 实例的证书颁发机构的
.pem
文件的路径。 -
xpack.monitoring.elasticsearch.ssl.truststore.path
- 可选设置,提供用于验证服务器证书的 Java 密钥库 (JKS) 的路径。
-
xpack.monitoring.elasticsearch.ssl.truststore.password
- 可选设置,提供信任库的密码。
-
xpack.monitoring.elasticsearch.ssl.keystore.path
- 可选设置,提供用于验证客户端证书的 Java 密钥库 (JKS) 的路径。
-
xpack.monitoring.elasticsearch.ssl.keystore.password
- 可选设置,提供密钥库的密码。
-
xpack.monitoring.elasticsearch.ssl.certificate
- 可选设置,提供用于对客户端进行身份验证的 SSL 证书的路径。此证书应为 OpenSSL 样式的 X.509 证书文件。
仅当设置了 xpack.monitoring.elasticsearch.ssl.key
时,才能使用此设置。
-
xpack.monitoring.elasticsearch.ssl.key
- 可选设置,提供与
xpack.monitoring.elasticsearch.ssl.certificate
对应的 OpenSSL 样式 RSA 私钥的路径。
仅当设置了 xpack.monitoring.elasticsearch.ssl.certificate
时,才能使用此设置。
-
xpack.monitoring.elasticsearch.ssl.verification_mode
- 用于验证服务器证书的选项。默认为
full
。要禁用,请设置为none
。禁用此选项会严重损害安全性。 -
xpack.monitoring.elasticsearch.ssl.cipher_suites
- 可选设置,提供要使用的密码套件列表,按优先级列出。支持的密码套件因 Java 和协议版本而异。
其他设置编辑
-
xpack.monitoring.elasticsearch.cloud_id
- 如果您在 Elastic Cloud 中使用 Elasticsearch,则应在此处指定标识符。此设置是
xpack.monitoring.elasticsearch.hosts
的替代方法。如果配置了cloud_id
,则不应使用xpack.monitoring.elasticsearch.hosts
。您要将 Logstash 指标发送到的 Elasticsearch 实例。这可能是 Logstash 配置的outputs
部分中指定的同一个 Elasticsearch 实例,也可能是不同的实例。 -
xpack.monitoring.elasticsearch.cloud_auth
- 如果您在 Elastic Cloud 中使用 Elasticsearch,则可以在此处设置您的身份验证凭据。此设置是
xpack.monitoring.elasticsearch.username
和xpack.monitoring.elasticsearch.password
的替代方法。如果配置了cloud_auth
,则不应使用这些设置。 -
xpack.monitoring.elasticsearch.api_key
- 使用 Elasticsearch API 密钥进行身份验证。请注意,此选项还需要使用 SSL。
API 密钥格式为 id:api_key
,其中 id
和 api_key
由 Elasticsearch 创建 API 密钥 API 返回。