ELK学习笔记
什么是ELK
首先上官网:
https://www.elastic.co/cn/elk-stack
官网提供的这张图应该可以说明:
就是: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 被传呼,雨水会对季度数据造成怎样的影响。
以上是中文网站的官方定义
其实就是前端展示。
他们的关系是这样的:
日志收集并发给Elasticsearch的方式
好多解决方案:
使用 Filebeat(就是前面官网提到的Beans)
使用日志驱动
使用 Logspout
Logz.io 的日志采集器
fluentd-pilot(阿里云开源日志收集工具)
前面四种各有便利,但论强大,好用,还是阿里云提供的这个收集器好用,但只针对阿里云自家的slb服务,需要slb服务配合使用。
ps:
fluentd-pilot已更名为log-pilot
本来计划要使用log-pilot做日志收集的,但使用中遇到很多问题,可能是没有使用slb服务的原因,不兼容导致的。
目前我厂用的是logstash,直接将日志发送到logstash给它分析并转发给Elasticsearch存储。