前言
哈喽大家好呀!这次主要为大家带来BELK日志系统相关的博文,日志大家都知道,比如nginx请求日志,系统的日志,自己程序写入的日志,可以说是日志无处不在,但是对于这些无处不在的日志我们怎么去查看分析它们呢?这个就比较有意思了,随着系统逐渐增大排查问题的成本越来越高,这个时候就需要引入日志系统来聚合索引和查询日志及时发现问题,轻松追查故障原因从而高效的解决问题…
附上:
喵了个咪的博客:w-blog.cn
官网地址:https://www.elastic.co/cn/
1.日志的重要性
我们常见的日志分为几大类:系统日志,请求日志,业务日志等,但是在什么场景下我们会需要用到日志来帮我解决问题呢?请听我一一道来:
注意:如果服务器数量极少自己登陆服务器就可以很好地查看日志,无需复杂的日志系统
- 系统日志
系统日志需要进行查询的场景相对另外两类来说会相对比较少一些,比如crontab的执行日志这类来判定一些系统组件的运行情况,当你管理过多服务器时上面有很多定时任务一台一台去检查定时任务是否运行是很繁琐的事情 - 请求日志
请求日志一般来说的是对于nginx , apache或tomcat这类web容器进行的请求进行采集分析统计出PV,请求峰值时间点等 - 业务日志
业务日志是很重要的日志类型主要用于排查问题,业务日志有两种记录方式,第一种是记录请求明细,另外一种就是程序埋点记录日志,
请求明细:当比如一个用户反馈(或者测试反馈有BUG)什么功能用不了,直接拉出这个用户的请求操作记录通过每一项请求参数和返回结果来快速定位问题,如果是异常情况能够非常快的查找出来
程序埋点:程序埋点的典型例子就是发送短信发送邮件进行消息推送的结果记录,这一来耗时操作一般都使用异步的方式进行,如果有反馈没有收到验证短信,里面可以通过日志查询出来什么时候发送了一条短信发送是否成功等,还有就是遇到BUG调试的时候可以通过日志查看调试信息
2.BELK介绍
当我们了解了日志系统可以帮我们解决什么问题之后,接着就是需要搭建一个日志系统了,我们今天的主角登场了:
大家通过如上图可以明确的了解BELK分别是做什么的它们是怎么协同工作的,让我们来研究它们分别是什么?
2.1 Beats
Beats是一个数据采集组件,主要使用的比较多的是里面的Filebeat,Filebeat是个很轻量级的工具使用GO语言编写
• 监听本机指定日志文件的新增条目,类似tail -f
• 做最原始的过滤和处理
• 将数据发送给Logstash,也可以直接发送给Elastic Search等
2.2 Logstash
Logstash是用来做数据处理的(它也可以采集数据)它的功能非常强大支持几十种数据源和几十种输出(这里不一一列举有兴趣可以看官方文档)
Logstash在BELK中充当了数据加工处理的角色,经常使用Logstash来对原始数据需要进行查询的值进行提取之后在发往Elastic Search
2.3 Elastic Search
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
利用ElasticSearch索引全文搜索的能力来进行日志的查询分析
2.4 Kibana
Kibana 是一个对ElasticSearch进行查询的一个UI工具,方便直接使用WEB UI的方式进行日志查询检索
总结
本节基本了解日志系统的作用,意识BELK分别代表什么在整个日志系统中分别发挥着那些作用,下一章讲具体介绍BELK搭建使用方式,多谢大家的支持我们下次再见...
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!