ELKB日志收集系统[0]-ELKB日志收集系统简介

577 阅读2分钟

日志是一个健壮程序不可或缺的一部分, 是对系统的执行过程进行抽丝剥茧般的分析时的基础条件. 一个好的日志体系, 可以极大的提升bug定位的效率.

一个好的日志体系, 是 日志打印格式 日志打印时机 以及日志输出方式等多方配合形成的. 当然, 这种业内共有的需求,肯定有很好的解决方案. 故而, 只需要以系统规模特性以及现有资源为条件, 选用不同的日志框架即可以使得日志体系快速建立, 我们只需要设计合理的日志输出就好, 这为我们省了很大的事.

以上这些说的都是在日志的产生阶段, 如何去规划设计日志体系. 当大量的日志生成以后, 如何去利用或者使用这些日志排查问题 统计结果, 是今天探讨的主题.

随着业务的扩大, 日志的量级也会变得越来越壮大, 如何在海量的数据里快速的筛选出自己想要的数据, 就变成了一个复杂至极的问题 (尤其是现在微服务盛行, 一个模块的日志动辄分布在成千上万个服务器上, 如果逐一的筛选日志, 显然是不高效的). 对此, elastic为我们提供了很好的解决方案, 这便是Elastic Stack (ELKB).

elastic日志收集的发展

elastic提供的日志收集技术栈, 主要经过了以下几个阶段:

ELK阶段

Elasticsearch+Logstash+Kibana

ELK

在这个阶段里:

Elasticsearch 作为一个分布式搜索引擎, 用来做全文检索

Logstash 用来收集 分析 过滤日志数据给Elasticsearch

Kibana 为Elasticsearch提供可视化图形界面

ELKB阶段

Elasticsearch+Logstash+Kibana+Beats

ELKB

在ELK的基础上, 新增了Beats, 使得Beats分担了原本Logstash的日志搜集功能

Beats下属了多个专门的搜集工具, 更专注与数据的搜集, 其中常用的Filebeat用来文件数据的搜集

Beats主要有如下的工具:

image.png

ELKkB阶段

Elasticsearch+Logstash+Kibana+kafka+Beats

ELKkB

在ELKB的基础上新增了Kafka, kafka是一种高吞吐的分布式发布订阅消息系统

加入Kafka后, Beats获取的数据先灌给Kafka, Logstash再从Kafka拿数据处理, 使得处理过程更加平滑


在后续的相关笔记里, 会由0搭建一个ELKB系统, 示例的技术版本如下:

Elasticsearch 7.12.0

Logstash 7.12.0

Kibana 7.12.0

Beats 7.12.0

另外有用到 Elasticsearch-head 查看es的数据, 但这个不是必须的

下载链接如下:

elasticsearch最新版本 | elasticsearch7.12.0版本-windows | elasticsearch7.12.0版本-macos

kibana最新版本 | kibana7.12.0版本-windows | kibana7.12.0版本-macos

logstash最新版本 | logstash7.12.0版本-windows | logstash7.12.0版本-macos

filebeat最新版本 | filebeat7.12.0版本-windowsX64 | filebeat7.12.0版本-macos


系统搭建的具体过程, 我们正式开始探索....