在上家用过一段时间的 filebeat 和 logstash
印象中使用方法是我们在日志中定义好日志格式,然后 filebeat 按照指定的格式去解析,然后 logstash 去
filebeat 拿数据传输到 Elasticsearch 。
那么
1.为什么传输到 Elasticsearch 要分两步走,为什么不直接 filebeat 或者 logstash 就好了?
2.filebeat 从日志文件中拿到的数据是存储在哪里呢? filebeat 安装的服务器的某个路径?路径是分布式?这个路径我
们可以自己指定?
3.如果发现日志数据没有传输到 Elasticsearch,排查问题的时候,应该如何排查 filebeat 和 logstash 的问题?思路应该
是怎么样子的呢?
4.最近面试被问到,有没有数据量大的问题?应该如何优化,解决?
希望大神们帮忙解答一下~
1
singerll 2020-05-27 07:01:43 +08:00 via Android
因为 logstash 功能全但太笨重,filebeat 轻量但只有部分功能。filebeat 就跟 jdk 一样就是个压缩包,想扔哪扔哪 ,每个机器都需要装。如果没有数据,没有应该排查哪个,所有节点都没有数据先排查 es,单个节点没有数据先排查 fb 。数据量大不知道,我是做售前解决方案的,在虚机上搭建过测试环境,了解的大概就这么多。。。
|
2
janxin 2020-05-27 08:13:44 +08:00
1. logstash 方便做日志的过滤,不过我们在实际使用过程中直接使用了 filebeat 对接 ES 。
2. filebeat 应该是可以配的?默认是内存吧。安装路径是分布式的怎么理解... 3. 排查问题第一看日志吧...目前遇到的问题都是看看日志就知道大概哪里的问题了,毕竟我们不是大厂没那么复杂...其他的看遥测信息。 4. 数据量大很多处理办法吧,也可以不是 filebeat 直接对接 logstash,中间接上 Kafka 去做中转(没错,有问题 Kafka ) |
3
shiji 2020-05-27 08:16:05 +08:00
我不是很熟,但是以前用的时候记得*beats 是可以直接传送给 ES 的。尤其是当 logstash 的配置基本是一个传话筒的时候。
如果有更深层次的数据修改 /合并,最好让 logstach 来做 |
4
SevenJ 2020-05-27 08:44:07 +08:00
1: logstash 的功能全面一些,如果不需要复杂处理的话 filebeat 也够用
2: https://www.elastic.co/guide/en/beats/filebeat/master/configuring-internal-queue.html 3: filebeat 加一个 file outputs 看 filebeat 是不是输出了,或者 logstash 加 一个 file output 看看 logstash 有没有写出 4: filebeat -> kafka -> logstash -> ES |
5
malusama 2020-05-27 09:03:20 +08:00
filebeat 和 logstash 不是有背压吗?需要上一层 Kafka 么?
|
6
zxc1234 OP @SevenJ 请问下第三点
1.filebeat 加一个 file outputs 的话,logstash 是不是需要指定采集的入库路径??? 2.filebeat,logstash 有默认的 input 和 output 路径吗? |
8
zardly666 2020-05-27 20:07:23 +08:00
1. 只 filebeat,不能对采集的数据做归一或过滤等复杂处理。只 logstash,可能不够轻量级吧。
2.可以配置路径,安在哪儿无所谓,重点是配置监测哪些(哪个)路径的配置。我们是 k8s,filebeat 用守护进程集启动,集群内每个节点都启动了一份 filebeat 服务。 3.我们是 filebeat→kafka→logstash→ES,是看 kafka 是否有数据,找到是 filebeat 还是 logstash 的问题,然后看日志定位问题。 3.1)如果 kafka 有,是 logstash 的问题。 3.2)如果 kafka 没有,是 filebeat 的问题。 4.楼上大佬的方案 kafka/logstash 搭集群 /filebeat 也能通过配置文件达到(高 qps 或者采集低时延) |