一、背景说明
之前讲了下ELK的安装,但是对各个组件的理解,使用都是一知半解。
这篇文章,就是ELK的详解,加上最后一个总体的小项目。
二、概念解析
Elasticsearch 是基于Lucene的搜索框架,Logstash 是一个开源的日志收集引擎,Kibana是一个开源的分析与可视化平台。
以上是网上对他们的简介,对新手来说晦涩难懂,意义不大,讲一下我对各个组件的理解吧。
首先,把Elasticsearch 这一个搜索框架,当作一个庞大的数据库软件,他是用来存储数据的;那么,索引Indice 表示的就是一个个database,type是他的table,Document 和Field就是它的Row 和Column。
Relational DB -> Database -> Table -> Row -> Column
Elasticsearch -> Indice -> Type -> Document -> Field
当然,这样的描述并不准确,之所以这样做类比,是为了帮助我们很好的去理解插件。
有了这个概念之后,就能知道,Logstash是拿来往数据库插入数据的,即把搜集过来的日志信息变成Indice索引,往Elasticsearch里面插入;Kibana则是对数据库,即Elasticsearch里面存储的信息,进行一个可视化的展示和汇总统计。
三、Elasticsearch
1.基本概念
- 之前提到的索引(index),类型(type)等
- 分片shards:
数据量特大,没有足够大的硬盘空间来一次性存储,且一次性搜索那么多的数据,响应跟不上;es提供把数据进行分片存储,这样方便进行拓展和提高吞吐。 - 副本replicas:
分片的拷贝,当主分片不可用的时候,副本就充当主分片进行使用。
(默认地)Elasticsearch中的每个索引分配5个主分片和1个副本
如果你的集群中至少有两个节点,你的索引将会有5个主分片和另外5个复制分片(1个完全拷贝),这样每个索引总共就有10个分片。
2.查询语句入门
(1)search搜索语句入门之URL搜索
下面来讲一下URL中的_search搜索语句的基本使用,美化响应结果, 索引的基础操作等。 - **集群健康检查**[root@hadoop02 ~]# curl http://localhost:9200/_cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1532340847 18:14:07 elasticsearch yellow 1 1 16 16 0 0 15 0 - 51.6%
[root@hadoop02 ~]# curl http://localhost:9200/_cluster/health
{
"cluster_name":"elasticsearch","status":"yellow","timed_out":false,"number_of_nodes":1,"number_of_data_nodes":1,"active_primary_shards":16,"active_shards":16,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":15,"delayed_unassigned_shards":0,"number_of_pending_tasks":0,"number_of_in_flight_fetch":0,