ELK是什么

Posted exman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELK是什么相关的知识,希望对你有一定的参考价值。

为什么做日志系统

通常当系统发生故障时,工程师需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。在没有日志系统的情况下,首先需要定位处理请求的服务器,如果这台服务器部署了多个实例,则需要去每个应用实例的日志目录下去找日志文件。每个应用实例还会设置日志滚动策略(如:每天生成一个文件),还有日志压缩归档策略等。
这样一系列流程下来,对于我们排查故障以及及时找到故障原因,造成了比较大的麻烦。因此,如果我们能把这些日志集中管理,并提供集中检索功能,不仅可以提高诊断的效率,同时对系统情况有个全面的理解,避免事后救火的被动。
总的来说有一下三点

  • .数据查找:通过检索日志信息,定位相应的 bug ,找出解决方案。
  • 服务诊断:通过对日志信息进行统计、分析,了解服务器的负荷和服务运行状态
  • 数据分析:可以做进一步的数据分析。

什么是ELK

  1. Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  2. Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
  3. Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志
 
技术图片
image.png


作者:火龙果萨满
链接:https://www.jianshu.com/p/ac34ff713d38
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

1、elk 是什么 ?

     Elastic Stack(旧称ELK Stack),是一种能够从任意数据源抽取数据,并实时对数据进行搜索、分析和可视化展现的数据分析框架。(hadoop同一个开发人员)

     java 开发的开源的全文搜索引擎工具

     基于lucence搜索引擎的

     采用 restful - api 标准的

     高可用、高扩展的分布式框架

     实时数据分析的

     官方网站: https://www.elastic.co/products 

 

2、为什么要用elk?

     服务器众多,组件众多,日志众多

     发现问题困难,技能要求高

     

     业务场景:《实时日志分析展现》

     日志主要包括系统日志、应用程序日志和安全日志。

     系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

     通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。

     当务之急我们使用集中化的日志管理,例如:开源的 syslog ,将所有服务器上的日志收集汇总。

     集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用 grep 、 awk和 wc 等 Linux 命令能实现检索和统计,

     但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

     开源实时日志分析 ELK 平台能够完美的解决我们上述的问题, ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三个开源工具组成。

 

3、体系架构

技术图片

 

技术图片

 

工作原理如下如所示:

技术图片

 

在需要收集日志的所有服务上部署 logstash ,其中 logstash agent ( logstash shipper )用于监控并过滤收集日志,将过滤后的内容发送到 logstash indexer , logstash indexer 将日志收集在一起交给全文搜索服务 ElasticSearch ,

可以用 ElasticSearch 进行自定义搜索

通过 Kibana 来结合自定义搜索进行页面展示。

 

3、elk的技术架构

     gateway:hdfs、Amazon S3、Local FileSystem、Shared FileSystem

     Index module、Search module、 Mapping、River(引入异构数据的插件机制:RabbitMQ-River、Twitter-River)

     zen和ec2---zk、scripting(mvel、python、js等)

     第三方插件(Head、)

     Transport(Thrift、Memcached、Http)

     Java(Netty)

     restful 和 curl

 

4、elk的基本概念

     node 和 cluster

     index(数据库)->type(表)->document(行)->field (字段)

     shards 分片

     replicas 复制

 

5、其他全文搜索

     Solr:文本支持强,html、pdf、word、excel、cvs

     Elasticsearch:实时数据分析,支持json格式

     splunk:

 

6、resftful风格

7、curl

     curl www.baidu.com

     curl -o baidu.txt www.baidu.com

     curl -O www.baidu.com/xxx.html

     curl -i   www.baidu.com 显示HTTP头信息

     curl -v  www.baidu.com 显示过程

     curl -X GET/PUT/POST/DELETE www.baidu.com

 

8、查看官方api

     单模式:

     多模式:

以上是关于ELK是什么的主要内容,如果未能解决你的问题,请参考以下文章

1. ELK Stack 理论篇之什么是ELK Stack?

ELK学习总结——我们为什么要用ELK

ELK是什么?

什么是ELK

大型架构ELK

ELK技术栈简介