在当前分布式、微服务架构下,各个应用都部署在不同的服务器上,每个应用都在记录着自己重要或者不重要的日志信息。当我们要通过日志信息来排查错误时,可以根据出错应用在对应的机器上找报错相关的日志信息。但是,可能我们不具有相应服务器的访问权限,也可能相同的应用部署在多台服务器上,导致根本不知道在哪台服务器上找日志。遇到类似这样的尴尬,想要通过日志来排查错误就搞得很麻烦。在这种情况下,ELK 为我们提供了统一的日志管理解决方案,它能很好的支持 Logback 等日志框架,使得我们可以集中的管理不同应用输出的日志信息。
ELK 是 ElasticSearch、Logstash 和 Kibana 的简写。ElasticSearch 主要用来存储日志信息,并提供检索功能;Logstash 用于收集应用发送的日志信息,并写入到 ElasticSearch 当中;Kibana 是一个可视化的日志查看、分析工具。
ELK 架构大体如下:
在上图中应用日志框架直接将日志发送给 Logstash,然后 Logstash 将接收的日志写入 ElasticSearch 中,开发人员通过可视化的 Kibana 可以进行日志的查询和分析。
在上图中,Logstash、ElasticSearch 都可以是多个,而不是一个。
ELK 都可以通过它们的官网进行下载,最好将它们的版本进行统一。我这里下载的是 7.17.6 的版本,即 ElasticSearch、Logstash 和 Kibana 都是 7.17.6 版本的。
它们的下载