使用 Filebeat 收集 Elasticsearch 日志数据

edit

使用 Filebeat 收集 Elasticsearch 日志数据

edit

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

如果您使用的是 Elastic Agent,请不要为日志收集部署 Filebeat。 相反,请配置 Elasticsearch 集成以收集日志。

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

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

  2. 确定您想要监控的日志。

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

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

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

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

    output.elasticsearch:
      # 连接的主机数组。
      hosts: ["http://es-mon-1:9200", "http://es-mon-2:9200"] 
    
      # 可选的协议和基本认证凭证。
      #protocol: "https"
      #username: "elastic"
      #password: "changeme"

    在这个例子中,数据存储在一个监控集群上,该集群有节点 es-mon-1es-mon-2

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

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

    如果在监控集群上启用了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. 在 Filebeat 配置文件中的 Elasticsearch 输出信息中添加 usernamepassword 设置。示例显示了一个硬编码的密码,但您应该将敏感值存储在 secrets keystore 中。

    请参阅配置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 中查看监控数据