使用 Filebeat 收集 Elasticsearch 日志数据
编辑使用 Filebeat 收集 Elasticsearch 日志数据
编辑您可以使用 Filebeat 监控 Elasticsearch 日志文件,收集日志事件并将其发送到监控集群。您最近的日志在 Kibana 的 监控 页面上可见。
如果您使用的是 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: ["http://es-mon-1:9200", "http://es-mon-2:9200"] # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" #password: "changeme"
如果将监控集群配置为使用加密通信,则必须通过 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 输出信息中。此示例显示了一个硬编码的密码,但您应该将敏感值存储在 密钥存储 中。
请参阅 配置 Kibana 端点。
- 在监控集群上创建一个具有
-
启用 Elasticsearch 模块并在每个节点上设置初始 Filebeat 环境。
例如
filebeat modules enable elasticsearch filebeat setup -e
有关更多信息,请参阅 Elasticsearch 模块。
-
在每个节点上的 Filebeat 中配置 Elasticsearch 模块。
如果要监控的日志不在默认位置,请在
modules.d/elasticsearch.yml
文件中设置相应的路径变量。请参阅 配置 Elasticsearch 模块。如果有 JSON 日志,请将
var.paths
设置配置为指向它们,而不是指向纯文本日志。 -
在每个节点上 启动 Filebeat。
根据您安装 Filebeat 的方式,在尝试运行 Filebeat 模块时,您可能会看到与文件所有权或权限相关的错误。请参阅 配置文件所有权和权限。
-
检查监控集群上是否存在相应的索引。
例如,使用 cat indices 命令验证是否存在新的
filebeat-*
索引。如果要使用 Kibana 中的 监控 UI,则还必须存在
.monitoring-*
索引。这些索引是在您收集有关 Elastic Stack 产品的指标时生成的。例如,请参阅 使用 Metricbeat 收集监控数据。 - 在 Kibana 中查看监控数据.