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/
bkn界面.png

五、汉化

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之Kibana使用

ELK 学习笔记之 Kibana入门使用

ELK:elasticsearch快速入门之Kibana+Logstash安装

ELK 架构之 Elasticsearch 和 Kibana 安装配置

ELK 架构之 Elasticsearch 和 Kibana 安装配置

ELK 架构之 Elasticsearch 和 Kibana 安装配置