使用 Filebeat 收集 Elasticsearch 日志数据

编辑

使用 Filebeat 收集 Elasticsearch 日志数据

编辑

您可以使用 Filebeat 监控 Elasticsearch 日志文件,收集日志事件,并将它们发送到监控集群。您最近的日志在 Kibana 的 监控 页面上可见。

如果您正在使用 Elastic Agent,请不要部署 Filebeat 进行日志收集。相反,请配置 Elasticsearch 集成来收集日志。

  1. 验证 Elasticsearch 是否正在运行,并且监控集群是否已准备好接收来自 Filebeat 的数据。

    在生产环境中,我们强烈建议使用单独的集群(称为监控集群)来存储数据。使用单独的监控集群可以防止生产集群中断影响您访问监控数据的能力。它还可以防止监控活动影响生产集群的性能。请参阅 生产环境中的监控

  2. 确定要监控哪些日志。

    Filebeat Elasticsearch 模块可以处理 审计日志弃用日志gc 日志服务器日志慢日志。有关 Elasticsearch 日志位置的更多信息,请参阅 path.logs 设置。

    如果日志既有结构化(*.json)版本,也有非结构化(纯文本)版本,则必须使用结构化日志。否则,它们可能不会在 Kibana 中出现在适当的上下文中。

  3. 在包含您要监控的日志的 Elasticsearch 节点上安装 Filebeat
  4. 确定将日志数据发送到哪里。

    例如,在 Filebeat 配置文件(filebeat.yml)中为您的监控集群指定 Elasticsearch 输出信息

    output.elasticsearch:
      # Array of hosts to connect to.
      hosts: ["http://es-mon-1:9200", "http://es-mon-2:9200"] 
    
      # Optional protocol and basic auth credentials.
      #protocol: "https"
      #username: "elastic"
      #password: "changeme"

    在此示例中,数据存储在节点为 es-mon-1es-mon-2 的监控集群上。

    如果您配置监控集群以使用加密通信,则必须通过 HTTPS 访问它。例如,使用类似 https://es-mon-1:9200hosts 设置。

    Elasticsearch 监控功能使用 ingest pipelines,因此存储监控数据的集群必须至少有一个 ingest 节点

    如果在监控集群上启用了 Elasticsearch 安全功能,则必须提供有效的用户 ID 和密码,以便 Filebeat 可以成功发送指标。

    有关这些配置选项的更多信息,请参阅 配置 Elasticsearch 输出

  5. 可选:确定在哪里可视化数据。

    Filebeat 提供示例 Kibana 仪表板、可视化和搜索。要将仪表板加载到相应的 Kibana 实例中,请在每个节点上的 Filebeat 配置文件(filebeat.yml)中指定 setup.kibana 信息

    setup.kibana:
      host: "localhost:5601"
      #username: "my_kibana_user"
      #password: "YOUR_PASSWORD"

    在生产环境中,我们强烈建议为您的监控集群使用专用的 Kibana 实例。

    如果启用了安全功能,则必须提供有效的用户 ID 和密码,以便 Filebeat 可以连接到 Kibana

    1. 在监控集群上创建一个具有 kibana_admin 内置角色或等效权限的用户。
    2. usernamepassword 设置添加到 Filebeat 配置文件中的 Elasticsearch 输出信息中。该示例显示了硬编码的密码,但是您应该将敏感值存储在 密钥库中。

    请参阅 配置 Kibana 端点

  6. 启用 Elasticsearch 模块并在每个节点上设置初始 Filebeat 环境。

    例如

    filebeat modules enable elasticsearch
    filebeat setup -e

    有关更多信息,请参阅 Elasticsearch 模块

  7. 在每个节点上配置 Filebeat 中的 Elasticsearch 模块。

    如果要监控的日志不在默认位置,请在 modules.d/elasticsearch.yml 文件中设置适当的路径变量。请参阅 配置 Elasticsearch 模块

    如果有 JSON 日志,请配置 var.paths 设置以指向它们,而不是纯文本日志。

  8. 在每个节点上启动 Filebeat

    根据您安装 Filebeat 的方式,当您尝试运行 Filebeat 模块时,可能会看到与文件所有权或权限相关的错误。请参阅 配置文件所有权和权限

  9. 检查监控集群上是否存在适当的索引。

    例如,使用 cat indices 命令来验证是否存在新的 filebeat-* 索引。

    如果您想在 Kibana 中使用 监控 UI,则还必须有 .monitoring-* 索引。当您收集有关 Elastic Stack 产品的指标时,会生成这些索引。例如,请参阅 使用 Metricbeat 收集监控数据

  10. 在 Kibana 中查看监控数据.