白话解析:ELK日志系统

image

1.为什么要用ELK系统:

当我们的系统发生故障时,我们需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。

在没有日志系统的情况下,首先需要定位处理请求的服务器,如果这台服务器部署了多个实例,则需要去每个应用实例的日志目录下去找日志文件。

每个应用实例还会设置日志滚动策略(如:每天生成一个文件),还有日志压缩归档策略等,等数据过期之后,日志也就永久性的消失了。

综上所述,我们需要有一个日志集中收集和检索系统,这个日志系统就是ELK。

2.什么是ELK

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

Kibana也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

3.ELK能解决什么问题

ELK可以帮助我们实时的将各个服务的日志统一收集存储,并给我们提供可视化的日志检索页面。

通过ELK系统,使用者不需要知道它底层的实现原理,不需要掌握Linux指令,就可以检索到我们需要的日志。

4.ELK实现原理

image

如图所示,ELK日志系统第一步是通过FileBeat将客户端日志收集并传输给Logstash。

Logstash将FileBeat传输过来日志数据进行过滤,然后将过滤后的日志数据发送到Elasticsearch存储。

日志存储在Elasticsearch中,并提供丰富的API进行数据交互,Kibana通过调用Elasticsearch相关API,提供日志分析友好的 Web 界面。

5.ELK搭建步骤

搭建步骤(Centos7环境):

  1. 安装Java 8
  2. 安装Elasticsearch(单机)
  3. 安装Kibana
  4. 安装安装Logstash
  5. 生成SSL证书
  6. 配置Logstash
  7. 加载Kibana仪表板
  8. 在Elasticsearch中加载Filebeat索引模板
  9. 设置Filebeat(添加客户端服务器)
  10. 测试Filebeat安装
  11. 连接Kibana

具体安装细则可以看下面这篇文章,讲的非常详细,只要一步步按照文章说的就可以成功安装。

参考博文https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7

6.ELK使用细则

ELK使用主要在Kibana上面,因为Elasticsearch和Logstash在搭建的时候就已经配置完毕了,使用者只需关注Kibana即可。

在Web浏览器中,转到ELK服务器的公共IP地址。输入“kibanaadmin”凭据后,就会看到一个页面,会提示我们配置默认索引模式:

image

继续从索引模式菜单(左侧)中选择[filebeat] -YYY.MM.DD,然后单击Star(设置为默认索引)按钮将Filebeat索引设置为默认值。

现在单击顶部导航栏中的Discover链接。默认情况下,这将显示过去15分钟内的所有日志数据。我们可以看到带有日志事件的直方图,其中包含以下日志消息:

image

在这里,我们可以搜索和浏览日志,还可以通过正则表达式来筛选出我们需要的日志。

林老师带你学编程https://wolzq.com

林老师带你学编程 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!