文章目录
  1. 1. 什么是ELK
  2. 2. 他们都是做什么的
    1. 2.1. Elastircsearch
    2. 2.2. Logstash
    3. 2.3. Kibana
    4. 2.4. 日志收集并发给Elasticsearch的方式

什么是ELK

首先上官网:

https://www.elastic.co/cn/elk-stack

官网提供的这张图应该可以说明:

paste image

就是:Elastircsearch + Logstash + Kibana 的组合(这张图上有Beats,可以先忽略,后面再讲)

他们都是做什么的

Elastircsearch

官网说:

The open source, distributed, RESTful, JSON-based search engine. Easy to use, scalable and flexible, it earned hyper-popularity among users and a company formed around it, you know, for search.

是基于开源的,环境部署,RESTful软件协议,以json为标准的搜索引擎,后面的就吹牛逼的话了,顺便说一下,它是基于lurce的搜索引擎。

Logstash

官方说:

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

就是一个日志分析与查询的一个服务,然后通过它将日志发送到一个仓库存储起来,像Elasticsearch(是搜索引擎,同时也以索引的形式的日志存储工具)

Kibana

Kibana 让您能够可视化 Elasticsearch 中的数据并操作 Elastic Stack,因此您可以在这里解开任何疑问:例如,为何会在凌晨 2:00 被传呼,雨水会对季度数据造成怎样的影响。

以上是中文网站的官方定义

其实就是前端展示。

他们的关系是这样的:

paste image

日志收集并发给Elasticsearch的方式

好多解决方案:

  1. 使用 Filebeat(就是前面官网提到的Beans)

  2. 使用日志驱动

  3. 使用 Logspout

  4. Logz.io 的日志采集器

  5. fluentd-pilot(阿里云开源日志收集工具)

前面四种各有便利,但论强大,好用,还是阿里云提供的这个收集器好用,但只针对阿里云自家的slb服务,需要slb服务配合使用。

ps:
fluentd-pilot已更名为log-pilot

本来计划要使用log-pilot做日志收集的,但使用中遇到很多问题,可能是没有使用slb服务的原因,不兼容导致的。

目前我厂用的是logstash,直接将日志发送到logstash给它分析并转发给Elasticsearch存储。

参考文章

文章目录
  1. 1. 什么是ELK
  2. 2. 他们都是做什么的
    1. 2.1. Elastircsearch
    2. 2.2. Logstash
    3. 2.3. Kibana
    4. 2.4. 日志收集并发给Elasticsearch的方式