ELK之Kibana的使用
Posted 爱编码lvcoding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELK之Kibana的使用相关的知识,希望对你有一定的参考价值。
一、介绍
ELK三剑客之一,主要负责ELK中图形化展示功能(当然它的功能不止这点)
二、下载
https://www.elastic.co/cn/downloads/kibana 点击黄色圈住的按钮下载对应elasticsearch版本的kibana
三、启动
cd kibana-7.6.2-windows-x86_64\bin
./kibana.bat
四、访问
http://localhost:5601/
五、汉化
kibana默认语言是英语,我们可以通过设置让他支持中文
cd kibana-7.6.2-windows-x86_64\config
修改kibana.yml
i18n.locale: "zh-CN"
注意:修改kibana.yml之后,需要重启才能生效!
六、使用ik分词器
GET _analyze
{
"analyzer": "ik_max_word",
"text": "我们都喜欢爱编码"
}
# 结果:
{
"tokens" : [
{
"token" : "我们",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "都",
"start_offset" : 2,
"end_offset" : 3,
"type" : "CN_CHAR",
"position" : 1
},
{
"token" : "喜欢",
"start_offset" : 3,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 2
},
{
"token" : "爱编码",
"start_offset" : 5,
"end_offset" : 8,
"type" : "CN_WORD",
"position" : 3
}
]
}
GET _analyze
{
"analyzer": "ik_max_word",
"text": "我们都喜欢爱编码"
}
# 结果
{
"tokens" : [
{
"token" : "我们",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "都",
"start_offset" : 2,
"end_offset" : 3,
"type" : "CN_CHAR",
"position" : 1
},
{
"token" : "喜欢",
"start_offset" : 3,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 2
},
{
"token" : "欢爱",
"start_offset" : 4,
"end_offset" : 6,
"type" : "CN_WORD",
"position" : 3
},
{
"token" : "爱编码",
"start_offset" : 5,
"end_offset" : 8,
"type" : "CN_WORD",
"position" : 4
},
{
"token" : "编码",
"start_offset" : 6,
"end_offset" : 8,
"type" : "CN_WORD",
"position" : 5
}
]
}
七、操作索引
1.建立索引
# 默认设置
PUT test1
# 带设置建立索引
PUT es_blog_index
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1,
"analysis": {
"analyzer": {
"ik": {
"tokenizer": "ik_max_word"
}
}
}
},
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "ik",
"search_analyzer": "ik_max_word"
}
}
}
}
说明:上面settings设置了该索引使用ik分词器,mappings中指定了title字段进行分词
2.查询索引信息
GET es_blog_index
3.查询整个es中索引库的信息
GET _cat/indices?v
4.删除索引
DELETE test1
5.修改索引
elasticsearch索引修改的思路是:
1. 新建一个理想的索引
2. 将数据迁移到新建的索引上
# 新建理想索引(也就是我需要的索引,比如带分词器设置的索引)
PUT test2
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1,
"analysis": {
"analyzer": {
"ik": {
"tokenizer": "ik_max_word"
}
}
}
},
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "ik",
"search_analyzer": "ik_max_word"
}
}
}
}
# 6.迁移数据(将test1的数据迁移到test2)
POST _reindex
{
"source": {
"index": "test1"
},
"dest": {
"index": "test2"
}
}
八、操作数据
1.新增数据
# 可以在最后不加id值,但是必须用POST请求
PUT /es_blog_index/_doc/222
{
"title": "我是测试标题",
"content": "我是测试内容"
}
# POST方式新增,会生成一个随机id
POST /test1/_doc
{
"title": "hadoop",
"summary": "hadoop学习",
"content": "hadoop学习哈哈哈"
}
# 批量新增
POST /_bulk
{"index":{"_index":"test1"}}
{"title":"华为电视","summary":"曲面屏","content":"曲面电视"}
{"index":{"_index":"test1"}}
{"title":"小米曲面电视","summary":"小米曲面电视","content":"小米曲面电视"}
{"index":{"_index":"test1"}}
{"title":"java","summary":"java学习","content":"java学习哈哈哈"}
{"index":{"_index":"test1"}}
{"title":"spark","summary":"spark学习","content":"spark学习哈哈哈"}
{"index":{"_index":"test1"}}
{"title":"hadoop","summary":"hadoop学习","content":"hadoop学习哈哈哈"}
{"index":{"_index":"test1"}}
{"title":"小米电视","summary":"小米电视","content":"小米电视"}
{"index":{"_index":"test1"}}
{"title":"大米电视","summary":"大米电视","content":"大米电视"}
2.修改数据
# 1.直接使用新增就可以覆盖原来的值,但是假如content为空了,那么它覆盖后的值也就丢失了
PUT /es_blog_index/_doc/222
{
"title": "我是测试标题xxx",
"content": "我是测试内容"
}
# 2.使用POST
POST /es_blog_index/_update/222
{
"doc": {
"title": "我是测试标题xxx666"
}
}
3.查询数据
# 根据id查询
GET /es_blog_index/_doc/26
# 精确查询
GET /es_blog_index/_doc/_search?q=title:对象
# 查询所有
GET /test1/_search
{
"query": {
"match_all": {}
}
}
# 指定分词关系,and表示两个分词必须同时满足
GET /test1/_search
{
"query": {
"match": {
"title": {
"query": "小米电视",
"operator": "and"
}
}
}
}
# 指定分词器
GET /test1/_search
{
"query": {
"match": {
"title": {
"query": "小米曲面电视",
"analyzer": "ik_smart"
}
}
}
}
GET _analyze
{
"analyzer": "ik_smart",
"text": "面电"
}
# 指定最小匹配
# 最小匹配可以指定百分比,比如小米曲面电视,分词后:小米,曲面,电视,总共3个
# 最小匹配数 = 3 * 0.75,约等于2,也就是说任意匹配到两个分词即可
GET /test1/_search
{
"query": {
"match": {
"title": {
"query": "小米曲面电视",
"minimum_should_match": "75%"
}
}
}
}
# 多个字段同时匹配
# 在多个字段中都匹配同一个查询,只要一个字段匹配到即可
GET /test1/_search
{
"query": {
"multi_match": {
"query": "曲面",
"fields": ["title", "content"]
}
}
}
以上是关于ELK之Kibana的使用的主要内容,如果未能解决你的问题,请参考以下文章
ELK:elasticsearch快速入门之Kibana+Logstash安装
ELK 架构之 Elasticsearch 和 Kibana 安装配置