elasticsearch学习(五)——分布式日志收集ELK(ElasticSearch+Logstash+Kibana)

一、ELK介绍

1.1、传统日志收集的问题

注意:不要把日志存放在数据库里边,因为数据库是存放永久化数据的,日志没那么重要,可以存放在mongDB、redis。除了什么支付订单、回调参数、凭证等啥的非常重要的日志可以存放在数据库

——>如果要通过日志定位Bug,通常日志被分散在存储不同的设备上,如果管理数十上百台服务器,要依次登录每台机器的传统方式查日志。

——>然后又升级为集中化管理日志,但是日志的统计和检索又是一件比较麻烦的事,一般使用Linux命令grep、awk和wc等可以实现检索和统计,但是对于要求更高的查询、排序和统计或者 服务器非常多时就不方便了。

——>最后出现了ELK分布式日志收集。

例如:

1.2、什么是ELK分布式日志收集系统

ELK由:ElasticSearch+Logstash+Kibana组成。

(1)ElasticSearch介绍:是一个基于Lucene的开源分布式分析和搜索服务。特点是分布式、零配置、自动发现、索引自动分片、restful风格接口等;

(2)Logstash介绍:是一个开源的数据处理管道,通常做ES的数据管道,可对日志进行收集、过滤、分析。可将数据加载到 ElasticSearchlogstash带有一个web界面,搜索和展示所有日志。c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去

(3)Kibana:基于浏览器的ES前端展示工具,可为ES+Logstash做界面

1.3、ELK分布式日志收集原理

(1)每台服务器集群节点安装Logstash日志收集系统插件;

(4)每台服务器节点将日志输入到Logstash中;

(2)Logstash将日志格式化为json格式,以每天的形式,每天创建不同的索引,输出到ElasticSearch中;

(3)浏览器使用Kibana查询日志信息。

原理图:

 1.4、ELK搭建步骤

搭建先后步骤:ES——>Logstash——>Kibana

二、Logstash原理与环境搭建

2.1、Logstash原理

Logstash事件处理有三个阶段:inputs (接收)→ filters (处理)→ outputs(转发日志)。支持系统日志、错误日志、应用日志、webserver日志等可以抛出去的所有日志类型。

2.2、三个阶段了解

(1)Input:输入数据到logstash

  • 一些常用的输入为:
  • file:从文件系统的文件中读取,类似于tial -f命令
  • syslog:在514端口上监听系统日志消息,并根据RFC3164标准进行解析
  • redis:从redis service中读取
  • beats:从filebeat中读取


(2)Filters:数据中间处理,对数据进行操作:

  • 一些常用的过滤器为:
  • grok:解析任意文本数据,Grok 是 Logstash 最重要的插件。它的主要作用就是将文本格式的字符串,转换成为具体的结构化的数据,配合正则表达式使用。内置120多个解析语法。
  • mutate:对字段进行转换。例如对字段进行删除、替换、修改、重命名等。
  • drop:丢弃一部分events不进行处理。
  • clone:拷贝 event,这个过程中也可以添加或移除字段。
  • geoip:添加地理信息(为前台kibana图形化展示使用)
  • Outputs:outputs是logstash处理管道的最末端组件。一个event可以在处理过程中经过多重输出,但是一旦所有的outputs都执行结束,这个event也就完成生命周期。

(3)一些常见的outputs为

  • elasticsearch:可以高效的保存数据,并且能够方便和简单的进行查询。
  • file:将event数据保存到文件中。
  • graphite:将event数据发送到图形化组件中,一个很流行的开源存储图形化展示的组件。
  • Codecs:codecs 是基于数据流的过滤器,它可以作为input,output的一部分配置。Codecs可以帮助你轻松的分割发送过来已经被序列化的数据。
  • 一些常见的codecs:
  • json:使用json格式对数据进行编码/解码。
  • multiline:将汇多个事件中数据汇总为一个单一的行。比如:java异常信息和堆栈信息。

2.3、Logstash环境搭建

Logstash环境安装:

  • 1、上传logstash安装包(资料)
  • 2、解压tar –zxvf  logstash-6.4.3.tar.gz
  • 3、在config目录下放入mayikt01.conf 读入并且读出日志信息
GET /mymayikt/user/_search
{
  "from": 0,
  "size": 2, 
  "query": {
    "match": {
      
        "car": "奥迪"
      }
  }
}

 

发布了52 篇原创文章 · 获赞 116 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/RuiKe1400360107/article/details/103916811