使用 Filebeat 收集日志数据
您可以使用 Filebeat 监控 Elasticsearch 日志文件、收集日志事件,并将它们传输到监控集群。您最近的日志可以在 Kibana 的 Monitoring 页面上查看。
如果您正在使用 Elastic Agent,请勿部署 Filebeat 来收集日志。而是应该配置 Elasticsearch 集成来收集日志。
验证 Elasticsearch 正在运行,并且监控集群已准备好接收来自 Filebeat 的数据。
提示在生产环境中,我们强烈建议使用单独的集群(称为监控集群)来存储数据。使用单独的监控集群可防止生产集群中断影响您访问监控数据的能力。它还可以防止监控活动影响生产集群的性能。
有关更多信息,请参阅 生产环境中的监控。
确定您要监控哪些日志。
Filebeat Elasticsearch 模块可以处理 审计日志、弃用日志、gc 日志、服务器日志和 慢日志。有关 Elasticsearch 日志位置的更多信息,请参考 path.logs 设置。
重要提示如果日志同时存在结构化(
*.json)和非结构化(纯文本)版本,您必须使用结构化日志。否则,它们可能不会显示在 Kibana 的适当上下文中。在包含您要监控的日志的 Elasticsearch 节点上 安装 Filebeat。
确定将日志数据发送到何处。
例如,在 Filebeat 配置文件(
filebeat.yml)中为您的监控集群指定 Elasticsearch 输出信息output.elasticsearch: # Array of hosts to connect to. hosts: ["<ES_MONITORING_HOST1_URL>:9200", "<ES_MONITORING_HOST2_URL>:9200"] # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" #password: "changeme"- 在此示例中,数据存储在带有节点
es-mon-1和es-mon-2的监控集群上。
如果您将监控集群配置为使用加密通信,则必须通过 HTTPS 访问它。例如,使用类似
https://es-mon-1:9200的hosts设置。重要提示Elasticsearch 监控功能使用摄取管道,因此存储监控数据的集群必须至少有一个 摄取节点。
如果在监控集群上启用了 Elasticsearch 安全功能,您必须提供有效的用户 ID 和密码,以便 Filebeat 能够成功发送指标。
有关这些配置选项的更多信息,请参见 配置 Elasticsearch 输出。
- 在此示例中,数据存储在带有节点
可选:确定在哪里可视化数据。
Filebeat 提供了示例 Kibana 仪表板、可视化和搜索。要将仪表板加载到相应的 Kibana 实例中,请在每个节点上的 Filebeat 配置文件(
filebeat.yml)中指定setup.kibana信息setup.kibana: host: "localhost:5601" #username: "my_kibana_user" #password: "YOUR_PASSWORD"提示在生产环境中,我们强烈建议为您的监控集群使用专用的 Kibana 实例。
如果启用了安全功能,您必须提供有效的用户 ID 和密码,以便 Filebeat 能够连接到 Kibana
- 在监控集群上创建一个拥有
kibana_admin内置角色或同等权限的用户。 - 将
username和password设置添加到 Filebeat 配置文件中的 Elasticsearch 输出信息中。该示例显示了一个硬编码的密码,但您应该将敏感值存储在 密钥库 (secrets keystore) 中。
请参阅 配置 Kibana 端点。
- 在监控集群上创建一个拥有
启用 Elasticsearch 模块并在每个节点上设置初始 Filebeat 环境。
例如
filebeat modules enable elasticsearch filebeat setup -e有关更多信息,请参见 Elasticsearch 模块。
配置每个节点上 Filebeat 中的 Elasticsearch 模块。
如果您要监控的日志不在默认位置,请在
modules.d/elasticsearch.yml文件中设置适当的路径变量。请参见 配置 Elasticsearch 模块。重要提示如果存在 JSON 日志,请配置
var.paths设置以将其指向 JSON 日志,而不是纯文本日志。在每个节点上 启动 Filebeat。
注意根据您安装 Filebeat 的方式,在尝试运行 Filebeat 模块时,您可能会看到与文件所有权或权限相关的错误。请参见 配置文件所有权和权限。
检查监控集群上是否存在相应的索引。
例如,使用 cat indices 命令来验证是否存在新的
filebeat-*索引。提示如果您想使用 Kibana 中的 Monitoring 用户界面,还必须存在
.monitoring-*索引。这些索引是在收集有关 Elastic Stack 产品的指标时生成的。例如,请参见 使用 Metricbeat 收集监控数据。
监控数据开始流动后,了解有关您可以对其执行的操作的更多信息: