ELK日志系统

一、ELK应用场景

在复杂的企业应用服务群中,记录日志方式多种多样,并且不易归档以及提供日志监控的机制。无论是开发人员还是运维人员都无法准确的定位服务、服务器上面出现的种种问题,也没有高效搜索日志内容从而快速定位问题的方式。因此需要一个集中式、独立的、搜集管理各个服务和服务器上的日志信息,集中管理,并提供良好的UI界面进行数据展示,处理分析。

得此:ELK提供一套开源的解决方案,能高效、简便的满足以上场景。

二、ELK日志系统介绍

1、ELK分别是Elasticsearch、Logstash、Kibana三个开源框架缩写。


介绍

2、ELK经典应用如下


ELK经典架构

Logstash部署至服务主机,对各个服务的日志进行采集、过滤、推送。

Elasticsearch存储Logstash传送的结构化数据,提供给Kibana。

Kibana提供用户UIweb页面进行,数据展示和分析形成图表等。

备注:logs 泛指,各种日志文件以及日志信息:windows,negix,tomcat,webserver等等。

3、ELK改进

由于Logstash消耗资源大,而服务器资源相当宝贵,所以引进另一个轻量级日志采集框架Beats,其中包含以下6种


改良ELK

4、进一步思考

传统web项目中,经常使用log4j以及logback(性能更高)等成熟日志插件进行日志的记录,是否提供更好的解决方案。

ELK升级1.0

日志采集新增Logback直接发送日志到Logstash的形式。如果采用此方式,web服务可减少部分生成log文件配置,提高实时性和日志推送效率

5、高并发场景

由于logstash消耗性能,所以高并发场景容易遇到流量上的瓶颈,及时使用logstash集群也是如此,所以可以添加中间件进行日志缓存处理。由于logstash数据源具有多种方式,所有中间件也可以很多选择,常见的有kafka,redis。


ELK升级2.0

host1、中间件、host2 均为高可用服务集群 为简单显示未画出

logback出现的业务数据可以通过写入redis或者kafka等中间件进行缓存,再通过合理限制流量阀值输送至logstash进行过滤

beats 如果是filebeat其日志若无实时性要求,可以通过控制log文件更新速度限制Beats传输日志流量

下载传送阵(请保持elk各个版本统一)

原文:https://blog.csdn.net/qq_22211217/article/details/80764568

你可能感兴趣的:(ELK日志系统)