ELK日志统一管理系统的搭建

前言

软件开发周期中,日志绝对是帮助开发人员定位问题的不二途径。开发人员都知道,与项目关联的绝对不仅仅是代码的log,还有nginx、数据库、docker等等(当然有的项目可能不用这些,但都大同小异),我们要想查看对应的log就只能到对应的log目录下查看。还要一个比较尴尬的问题是,随着项目访问量的不断提升,单台服务器总有一天会达到负荷的瓶颈,为了解决这个问题,我们就不得不搭建负载均衡或者分布式这种方案,那么问题来了,如果一个请求出现了问题,我们什么知道去哪台服务器查看log呢。这时,ELK排得上用场了。

什么是ELK

官网是这样解释的 <font color="green"> "ELK" is the acronym for three open source projects: Elasticsearch, Logstash, and Kibana. Elasticsearch is a search and analytics engine. Logstash is a server‑side data processing pipeline that ingests data from multiple sources simultaneously, transforms it, and then sends it to a "stash" like Elasticsearch. Kibana lets users visualize data with charts and graphs in Elasticsearch.The Elastic Stack is the next evolution of the ELK Stack. </font> 翻译就是 <font color="green"> “ELK”是三个开源项目的首字母缩写:Elasticsearch,Logstash和Kibana。 Elasticsearch是一个搜索和分析引擎。 Logstash是一个服务器端数据处理管道,它同时从多个源中提取数据,对其进行转换,然后将其发送到像Elasticsearch这样的“存储”。 Kibana允许用户使用Elasticsearch中的图表和图形来可视化数据。 弹性堆栈是ELK堆栈的下一个发展。 </font>

搭建流程

搭建流程请参考

在此基础上,我想扩充的一点是什么搭建ELK日志的集群方案。

至此,我们ELK日志统一管理系统已经搭建完毕!

结语

ELK除了可以统一管理日志之外,她还有很多实用的功能。比如,统计某个接口在一定时间的访问量(性能测试重点关注的接口),某个ip的访问频率(初步判断是否被攻击)等等。下面我给大家分享几张我搭建过程中的图片。

15分钟内各个接口的访问比例

15分钟内各个ip的访问比例

除了饼图外,她还提供折线图、区域图、柱状图等等,大家可以根据自身的需要来选择要汇总的形式,更多关于kibana的使用,大家可以查看ELK的[官方文档](https://www.elastic.co/cn/elk-stack)进行探索!

支持各种呈现方式

最后,谢谢大家的支持和关注,欢迎在下方进行评论沟通交流!你的支持是我最大的动力!

PS:本博客的书写很受益于[这篇文章](https://www.jianshu.com/p/5df9db5cda8f)的帮助