使用 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 访问它。例如,使用
hosts
设置,如https://es-mon-1:9200
。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 中查看监控数据.