使用 Metricbeat 收集 Logstash 监控数据
编辑使用 Metricbeat 收集 Logstash 监控数据
编辑您可以使用 Metricbeat 收集关于 Logstash 的数据并将其发送到监控集群。Metricbeat 收集的好处是,即使 Logstash 实例未运行,监控代理也会保持活动状态。
此步骤需要具有 Metricbeat 监控设置的 Elasticsearch。
要收集和发送监控数据
想要改用 Elastic Agent?请参考收集堆栈监控的监控数据。
禁用 Logstash 监控指标的默认收集
编辑在 logstash.yml 中将 monitoring.enabled
设置为 false
以禁用默认监控。
monitoring.enabled: false
确定目标 Elasticsearch 集群
编辑您需要在 Stack Monitoring UI 中确定 Logstash 将绑定指标的 Elasticsearch 集群,方法是指定 cluster_uuid
。当管道包含Elasticsearch 输出插件 时,cluster_uuid
会自动计算,并且指标应该无需任何其他设置即可绑定。
要覆盖自动值,或者如果您的管道不包含任何Elasticsearch 输出插件,您可以通过在配置文件 (logstash.yml) 中定义目标集群来将 Logstash 的指标绑定到特定集群,方法是定义 monitoring.cluster_uuid
设置。
monitoring.cluster_uuid: PRODUCTION_ES_CLUSTER_UUID
请参考Elasticsearch 集群统计页面,了解如何获取您的集群 cluster_uuid
。
安装和配置 Metricbeat
编辑- 在与 Logstash 相同的服务器上安装 Metricbeat。
-
在 Metricbeat 中启用
logstash-xpack
模块。要在 Metricbeat 的
modules.d
目录中启用默认配置,请运行:deb 或 rpm
metricbeat modules enable logstash-xpack
Linux 或 macOS
./metricbeat modules enable logstash-xpack
Windows
PS > .\metricbeat.exe modules enable logstash-xpack
-
配置 Metricbeat 中的
logstash-xpack
模块。modules.d/logstash-xpack.yml
文件包含以下设置:- module: logstash metricsets: - node - node_stats period: 10s hosts: ["localhost:9600"] #username: "user" #password: "secret" xpack.enabled: true
设置
hosts
、username
和password
以对 Logstash 进行身份验证。对于其他模块设置,建议您接受默认值。默认情况下,该模块从
localhost:9600
收集 Logstash 监控数据。要监控多个 Logstash 实例,请指定主机列表,例如:
hosts: ["https://127.0.0.1:9601","https://127.0.0.1:9602","https://127.0.0.1:9603"]
Elastic 安全性。 Elastic 安全功能默认启用。您必须提供用户 ID 和密码,Metricbeat 才能成功收集指标。
- 在生产集群上创建一个具有
remote_monitoring_collector
内置角色 的用户。 - 将
username
和password
设置添加到模块配置文件 (logstash-xpack.yml
)。
- 在生产集群上创建一个具有
-
可选:在 Metricbeat 中禁用系统模块。
默认情况下,系统模块 已启用。但是,它收集的信息不会显示在 Kibana 中的堆栈监控页面上。除非您想将这些信息用于其他目的,否则请运行以下命令:
metricbeat modules disable system
-
确定将监控数据发送到哪里。
在生产环境中,我们强烈建议使用单独的集群(称为“监控集群”)来存储数据。使用单独的监控集群可以防止生产集群中断影响您访问监控数据的能力。它还可以防止监控活动影响生产集群的性能。
例如,在 Metricbeat 配置文件 (
metricbeat.yml
) 中指定 Elasticsearch 输出信息:output.elasticsearch: # Array of hosts to connect to. hosts: ["http://es-mon-1:9200", "http://es-mon2:9200"] # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" #password: "changeme"
如果将监控集群配置为使用加密通信,则必须通过 HTTPS 访问它。例如,使用类似
https://es-mon-1:9200
的hosts
设置。Elasticsearch 监控功能使用摄取管道,因此存储监控数据的集群必须至少有一个摄取节点。
Elastic 安全性。 Elastic 安全功能默认启用。您必须提供用户 ID 和密码,Metricbeat 才能成功发送指标。
有关这些配置选项的更多信息,请参见配置 Elasticsearch 输出。
- 启动 Metricbeat 以开始收集监控数据。
- 在 Kibana 中查看监控数据.
您的监控设置已完成。