Kibana入门教程
一、前言
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。 Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在Elasticsearch中的数据。
二、入门基础操作
2.1、查看集群健康状态
GET /_cat/health
2.2、查询索引信息
GET /_cat/indices
2.3、创建wzh索引
PUT /wzh
2.4、删除索引
DELETE /wzh
2.5、查看文档类型
GET /wzh/_doc/_type
#########################增删改查 start##############################
2.6、根据ID指定索引文档查询数据
GET /wzh/_doc/2
2.7、根据ID指定索引文档中添加数据
PUT /wzh/_doc/2{ "name":"李四", "age":25}
2.8、根据ID更新索引中的文档
POST /wzh/_update/2{ "doc":{ "name":"李四1" }}
#########################增删改查 end##############################
############################批量操作增加 start########################
POST /wzh/_doc/_bulk{"index":{"_id":"1"}}{"name": "John Doe1" }{"index":{"_id":"2"}}{"name": "Mary1" }
############################批量操作增加 end########################
三、高级查询
3.1、搜索全部
GET /wzh/_search{ "query": { "match_all": {} }}
3.2、分页搜索(from表示偏移量,从0开始,size表示每页显示的数量)
GET /wzh/_search{ "query": { "match_all": {} }, "from": 0, "size": 2}
3.3、搜索排序(使用sort关键字 以balance字段排序,设置order属性的值为desc倒叙输出)
GET /wzh/_search{ "query": { "match_all": {} }, "sort": { "age": { "order": "desc" } }}
3.4、搜索并返回指定字段内容(_source: 将要查询出来的属性设置到_source数组中)
GET /wzh/_search{ "query": { "match_all": {} }, "_source": ["name"]}
3.5、条件搜索(搜索出name为Mary1的文档)
GET /wzh/_search
{
"query": {
"match": {
"name": "Mary1"
}
}
}
3.6、条件搜索(搜索出name包含Mar的文档;对于数值类型match操作使用的是精确匹配,对于文本类型使用的是模糊匹配)
GET /wzh/_search{ "query": { "match": { "name": "Mary1" } }, "_source": [ "name", "age" ]}
3.7、短语匹配搜索
GET /wzh/_search{ "query": { "match_phrase": { "name": "Mary1" } }}
3.8、组合搜索(搜索name字段中同时包含mill和lane的文档)
GET /wzh/_search{ "query": { "bool": { "must": [ { "match": { "name": "mill" } }, { "match": { "name": "lane" } } ] } }}
3.9、组合搜索(搜索name字段中包含mill或lane的文档)
GET /wzh/_search{ "query": { "bool": { "should": [ { "match": { "name": "mill" } }, { "match": { "name": "lane" } } ] } }}
3.10、组合搜索(搜索name字段中同时不包含mill或lane的文档)
GET /wzh/_search{ "query": { "bool": { "should": [ { "match": { "name": "mill" } }, { "match": { "name": "lane" } } ] } }}
3.11、组合搜索(搜索name字段中包含mill,并且不包含lane的文档)
GET /wzh/_search{ "query": { "bool": { "must": [ { "match": { "name": "mill" } } ], "must_not": [ { "match": { "name": "lane" } } ] } }}
3.12、过滤搜索(过滤出age字段18~25的文档)
GET /wzh/_search{ "query": { "bool": { "must": { "match_all": {} }, "filter": { "range": { "age": { "gte": 18, "lte": 25 } } } } }}
3.13、搜索聚合(aggs)
#### aggs: 分组聚合关键字
#### group_by_state: 聚合条件名字,自定义
#### terms : 关键字,查询某个字段里含有多个关键词的文档
#### keyword: state是一个关键字类型#对age字段进行聚合,统计出相同age的文档数量
GET /wzh/_search{ "aggs":{ "group_by_state":{ "terms":{ "field":"age.keyword" } } }}
3.14、取平均值
对age取平均值
GET /wzh/_search{ "size": 0, "aggs":{ "avg_balance":{ "avg":{ "field": "age" } } }}
3.14、聚合统计取平均值
### 对age字段进行聚合,统计出相同age的文档数量和age平均值
GET /wzh/_search{ "size": 0, "aggs":{ "group_by_state":{ "terms":{ "field":"age.keyword" } }, "avg_balance":{ "avg":{ "field": "age" } } }}
浙公网安备 33010602011771号