返回 导航

大数据

hangge.com

Filebeat日志采集器使用详解2(样例:日志文件采集、输出至Elasticsearch)

作者:hangge | 2024-04-02 08:44

二、日志文件采集、输出至 Elasticsearch

1,功能说明

  在该样例中,我们通过 Filebeat 采集应用程序产生的日志数据,然后将日志数据输出到 Elasticsearch 中。

2,编写配置文件

(1)首先进入 Filebeat 目录,执行如下命令编辑默认的配置文件:
vi filebeat.yml

(2)需要修改里面的 filebeat.inputs output.elasticsearch 的相关配置。
filebeat.inputs:

# 配置log插件
- type: log

  # 设置为 true 表示启用 log 插件
  enabled: true

  # 指定要监控采集的日志文件,可以指定多个规则
  paths:
    - /home/log/*.log

output.elasticsearch:
  # 指定 ES 集群的节点信息,可以指定多个,用逗号隔开即可
  hosts: ["192.168.60.9:9200"]
注意:在 filebeat.yml 文件中会发现,filebeat.inputs 配置模块中有 Multiline 的相关配置,但默认被注释掉了。如果要实现异常日志数据合并采集,那利用 Filebeat 也是可以实现的。

3,启动测试

(1)首先我们执行如下命令启动 filebeat
./filebeat -c filebeat.yml

(2)接着我们编辑 /home/log/hangge.log 日志文件,往里面写入如下数据并保存:
2023-11-24 12:15:54,985 [main] [com.hangge.LogPruducer] [DEBUG] - 初始化链接成功!
2023-11-24 12:15:55,985 [main] [com.hangge.LogPruducer] [INFO] - 开始执行计算操作!
2023-11-24 12:15:56,985 [main] [com.hangge.LogPruducer] [ERROR] - 除零异常。
2023-11-24 12:15:57,988 [main] [com.hangge.LogPruducer] [ERROR] - 计算执行失败!
2023-11-24 12:15:58,985 [main] [com.hangge.LogPruducer] [DEBUG] - 释放链接!

(3)最后,我们到 Elasticsearch 中确认是否有数据,以及数据的格式是否正确。在浏览器中访问“http://192.168.60.9:9200/_search?pretty”即可查询目前 Elasticsearch 中的所有数据。

(4)发现采集的原始日志数据被保存到 message 字段中了,并且还多了很多额外的字段,这些字段是 Filebeat 默认产生的。如果只需要保存原始日志数据,则需要在 output.elasticsearch 模块中配置 codec 参数。
output.elasticsearch:
  # 指定 ES 集群的节点信息,可以指定多个,用逗号隔开即可
  hosts: ["192.168.60.9:9200"]
  codec.format:
    string: '%{[message]}'

附:解决 Filebeat 无法将数据输出至 Elasticsearch 问题

(1)如果 Filebeat 启动后一直无法将数据输出至 Elasticsearch,并且查看 Filebeat 目录下的 logs 文件夹内容日志,看到如下错误:
2023-11-28T18:57:11.860+0800    ERROR   [publisher_pipeline_output]     pipeline/output.go:154  Failed to connect to backoff(elasticsearch(http://192.168.60.9:9200)): Connection marked as failed because the onConnect callback failed: error loading template: failure while checking if template exists: 405 Method Not Allowed: 

(2)这是由于 FilebeatElasticsearch 版本不一致造成的,我们使用相同版本即可。
评论

全部评论(0)

回到顶部