Elastic:总结收集日志的几种方法
到目前为止,我们看到有很多中不同的方法来收集日志。甚至,我们针对同样的一个日志,有好多种方法来进行采集。在今天的这篇文章中,我来简单里回顾一下。
通过 Filebeat 采集
Filebeat 是最为常用的一种采集日志的方法。使用 Filebeat,我们也有如下的几种方法:
通过模块进行采集
为了能够使用 Filebeat 更加方便地进行对数据的采集, Elastic 提供了模块进行使用:
我们可以通过如下的命令来获得被支持的模块:
./filebeat modules list
通过模块的运用,我们可以生成相应的 ingest pipeline,dashboard,index patterns,index templates,ILM 等。这些模块是我们经常会使用的模块。提供了开箱即用的工具。
这种方法的途径是 Filebeat => Elasticsearch。有关模块的使用,我们可以参考文章 “Beats:Beats 入门教程 (一)”。
使用 Filebeat 的 input logs 来进行收集
即使对于上面所述的通过模块的方法采集的日志,我们也可以采用这个方法来实现。只不过,我们需要自己创建 dashboard,ingest pipeline,index template,生命周期管理策略等。事实上这个是一种更为普及的收据采集方式,特别是针对那些不在模块支持范围里的定制日志。
这种数据的采集方式是:Filebeat => Elasticsearch。我们可以阅读之前的文章 “Beats:通过 Filebeat 把日志传入到 Elasticsearch”。
通过 Filebeat 及 Logstash 来完成
我们知道 Logstash 可以被用来对数据进行清洗,并且可以通过 Logstash 来对数据和外部数据库进行丰富等操作。Logstash 的使用另外一方面提供了一个缓冲的作用,特别是针对大量生成日志的情况。
这种方法采集的路径是:Filebeat => Logstash => Elasticsearch。我们可以通过阅读我之前的文章 “Logstash:Logstash 入门教程 (二)”,或者文章 “Logstash:把 Apache 日志导入到 Elasticsearch”。
通过 Kafaka 来收集数据
针对大量的数据 Kafaka 是一个比较常用的解决方法。它可以起到缓冲的作用:
详细阅读,请参考文章 “Elastic:使用 Kafka 部署 Elastic Stack”。
通过 Logstash 来进行采集
在有些情况下,我们甚至直接可以使用 Logstash 来对日志数据进行采集。有关 Logstash 及 Filebeat 的区别,我们可以阅读文章 “Beats:Elastic Beats 介绍 及和 Logstash 的比较”。
这种方法的采集路径为:Logstash => Elasticsearch。我们可以通过阅读文章 “Logstash:Data 转换,分析,提取,丰富及核心操作”,及 “Elastic:运用 Elastic Stack 分析 Spring Boot 微服务日志 (一)”。
通过 Elastic Agent 来进行采集
随着 Elastic Stack 的开发,Elastic 在最新的发布版中更为推崇使用 Elastic Agent 来收集日志。
关于使用 Elastic Agent 的日志采集方法,我们也有两个类别:
被支持的集成(integration)
为了方便大家的使用,Elastic 也提供了类似开箱即用的模块那种方案。在最新的发布中,我们使用已经提供的集成来完成日志的采集。
我们可以阅读如下的文章来进行了解:
定制的日志
在很多的情况下,我们的日志可能并不属于 Elastic 已经提供的 integration 范畴。那么我们该如何收集这些日志到 Elasticsearch 中呢?事实上,Elastic 提供了一个叫做 Custom Logs 的集成来专门处理这累需求。如果你想了解这个方面的知识,请详细阅读文章 “Observability:如何使用 Elastic Agents 把定制的日志摄入到 Elasticsearch 中”。
在客户端中直接写日志到 Elasticsearch 中
我们也可以通过编程的方式直接在客户端中把日志写入到 Elasticsearch 中。请阅读文章:
使用其它非 Elastic Stack 方案
事实上,有很多其它的方案结合 Elastic Stack 来完成,比如:
在上面,我们列举了上面我能想到的方法。在实际的使用中,开发者可能有更多的方法。如果有更多,请告诉我。我会把这写都记录下来。
相关文章
- CentOS已死,Rocky Linux 重生
- 教你如何在Linux上划分VLAN
- Linux Shell 中 ()、(())、[]、[[]]、{} 的作用
- Linux页框分配器之内存碎片化整理
- 微软来真的了?Windows 10要运行安卓App,ARM版支持64位
- Edge浏览器有大Bug?一键修好复制粘贴“错乱”
- 如何将 Linux 终端中命令的输出保存到文件中
- Linus “警告”内核开发者不要在圣诞节前夕提交代码
- Google正测试浏览器黑暗模式下呈现搜索结果
- 3种方法教你在Linux中修改打开文件数量限制
- 7张图带你搞懂负载均衡器
- 6个你绝不应该触碰的Windows 10默认文件夹
- 帮你精通Linux:从Manual手册中获得全局掌控感
- CentOS并没有死,Rocky Linux让其重生
- Windows AD域下批量分发安装软件,看这篇就够了
- 2021年面向初学者的5个优秀Linux发行版
- 微软承诺解决 Windows 10 Edge 浏览器标签页过载问题
- Mac颜值秒杀Windows10?五款神器让Windows10化身macOS
- 如何在Linux终端上漂亮地打印JSON文件
- 微软 Windows 10 Edge 浏览器将大幅降低 CPU 、内存使用率