一、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种
改良ELK4、进一步思考
传统web项目中,经常使用log4j以及logback(性能更高)等成熟日志插件进行日志的记录,是否提供更好的解决方案。
ELK升级1.0日志采集新增Logback直接发送日志到Logstash的形式。如果采用此方式,web服务可减少部分生成log文件配置,提高实时性和日志推送效率
5、高并发场景
由于logstash消耗性能,所以高并发场景容易遇到流量上的瓶颈,及时使用logstash集群也是如此,所以可以添加中间件进行日志缓存处理。由于logstash数据源具有多种方式,所有中间件也可以很多选择,常见的有kafka,redis。
ELK升级2.0host1、中间件、host2 均为高可用服务集群 为简单显示未画出
logback出现的业务数据可以通过写入redis或者kafka等中间件进行缓存,再通过合理限制流量阀值输送至logstash进行过滤
beats 如果是filebeat其日志若无实时性要求,可以通过控制log文件更新速度限制Beats传输日志流量
原文:https://blog.csdn.net/qq_22211217/article/details/80764568
网友评论