filebeat收集日志到elsticsearch中并使用ingest node的pipeline处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了filebeat收集日志到elsticsearch中并使用ingest node的pipeline处理相关的知识,希望对你有一定的参考价值。

参考技术A

使用 filebeat 收集系统中的日志到 elasticsearch 中。

注意⚠️:
1、 索引的生命周期,需要禁用,否则可能无法使用自定义的索引名字。
2、估计是filebeat(7.12.0)版本的一个bug, pipeline 需要写在 input 阶段,写在 output 阶段不生效。

此处需要根据索引情况自定义创建,此处为了简单演示,将 createTime 的字段类型设置为 date 。

由下方的配置可知

用户名是明文的,这个不安全,我们使用 filebeat keystore 来存储密码。

在接下来的提示中,输入密码。 ES_PASSWORD 是自定义的,待会在修改filebeat.yml配置文件中的 es output 中需要用到。

ingest pipeline 使我们在索引数据之前,提供了对数据执行通用转换等操作。 比如: 可以转换数据的类型、删除字段、增加字段等操作。

解释:

在 kibana 上创建索引模式,然后查看日志。

删除 data/registry 文件夹的内容。不同的filebeat安装方式,data目录的位置不同,参考如下文档 https://www.elastic.co/guide/en/beats/filebeat/current/directory-layout.html

我们知道在es中,每个文档数据都有一个 文档id ,默认情况下这个文档id是es自动生成的,因此重复的文档数据可能产生多个文档。
解决思路如下:

在使用 filebeat 的过程中,我们从官网中可知, pipeline 这个是写在 output 中的。

1、 https://www.elastic.co/guide/en/beats/filebeat/current/directory-layout.html
2、 https://www.elastic.co/guide/en/beats/filebeat/current/multiline-examples.html
3、 https://www.elastic.co/guide/en/beats/filebeat/current/keystore.html
4、 https://www.elastic.co/guide/en/beats/filebeat/current/fingerprint.html
5、 https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html
6、 github 上对 filebeat 在output到es时,pipeline不生效的讨论
7、 https://www.elastic.co/guide/en/elasticsearch/reference/7.12/ingest.html
8、 https://www.elastic.co/guide/en/elasticsearch/reference/7.12/index-templates.html

8、使用多实例filebeat收集日志

参考技术A

1、在linux上运行多个filebeat实例,一个直接输出到es,一个输出到logstash
2、同时建议es使用专门的负载均衡节点来承受输出,不要直接输出到数据节点

灵感来源于 https://zh.codepre.com/how-to-19067.html
这个问题困扰了我很久,百度翻完了也找不到合适的方案,大部分讲的都比较浅显,在bing才找到这篇文章,实在感谢大神。

我这里采用systemd方式

1、编辑多filebeat实例脚本

2、编辑/etc/filebeat-elasticsearch/filebeat.yml

3、启动

4、在kibana上查看日志

1、准备日志样本

2、复制filebeat-logstash

3、编辑/etc/filebeat-logstash/filebeat.yml

4、编辑logstash
4.1、input.conf

4.2、tomcat_out.conf

5、启动logstash,在kibana查看日志

以上是关于filebeat收集日志到elsticsearch中并使用ingest node的pipeline处理的主要内容,如果未能解决你的问题,请参考以下文章

filebeat+logstash+elasticsearch收集haproxy日志

通过kafka和filebeat收集日志 再保存到clickhouse 最后通过grafana展现

Kafka+Zookeeper+Filebeat+ELK 搭建日志收集系统

filebeat+elasticsearch+logstash+kibana收集系统日志(docker)

8、使用多实例filebeat收集日志

filebeat收集日志传输到Redis集群,logstash从Redis集群中拉取数据