乐趣区

kibana-深入学习

kibana 是一个数据显示工具,通常和 es 配套出现

7.4 的版本中开发工具(Dev Tool)里新提供了 grok 正则验证工具可以很好的验证 logstash 的匹配语法是否正确。

常用使用方法

词频统计

你知道一本书中,作者那些词用的最多吗?这些词在书籍中是否很重要。

es 默认的分词器主要针对的是英文的,所以我们需要安装中文分词,以下以 ik 分词器为例进行安装(网上的教程有些我觉得没有细说)

通过 GitHub 获取插件包。

  • 点击 GitHub 插件包项目头部的 releases 项
  • 找到你 es 对应的版本包(./bin/elasticsearch -v)
  • 下载 elasticsearch-analysis-ik-x.x.x.zip 包
  • 打开 es 安装目录中的 plugins 目录
  • 解压 zip 压缩包到 plugins/ik 中

通过 kibana 开发工具设置 es 的字段使用 ik 分词器, 以下是我的执行

PUT article
{
  "mappings": {
    "properties": {
      "id": {"type": "long"},
      "title": {"type": "text"},
      "author": {"type": "text"},
      "content": {
        "type": "text",
        "analyzer": "ik_max_word",
        "search_analyzer": "ik_smart",
        "fielddata": true
      }
    }
  }
}

POST article/_doc/1
{
    "id": 1,
    "title": "作为高级 Java,你应该了解的 Linux 知识",
    "author": "小姐姐的味道",
    "content": "作为一个 javaer,我以前写过很多关于 Linux 的文章。但经过多年的观察,发现其实对于大部分人,有些东西压根就用不着。用的最多的,就是到线上排查个问题而已,这让人很是苦恼。那么,我们就将范围再缩小一下。...."
}

POST article/_doc/2
{
    "id": 2,
    "title": "不停服! 怎么迁移数据",
    "author": "草堂笺",
    "content": "前言数据迁移时, 为了保证数据的一致性, 往往伴随着停服, 此期间无法给用户提供服务或只能提供部分服务. 同时, 为了确保迁移后业务及数据的正确性, 迁移后测试工作也要占用不少时间. 如此造成的损失是比较大的....."
}

PUT article/_doc/2
{
    "id": 2,
    "title": "testing 不停服! 怎么迁移数据",
    "author": "草堂笺",
    "content": "前言数据迁移时, 为了保证数据的一致性, 往往伴随着停服, 此期间无法给用户提供服务或只能提供部分服务. 同时, 为了确保迁移后业务及数据的正确性, 迁移后测试工作也要占用不少时间. 如此造成的损失是比较大的....."
}

DELETE article/_doc/2

GET article/_search
{
  "size": 0,
  "aggs": {
    "messages": {
      "terms": {
        "size": 1000,
        "field": "content",
        "include": "[\u4E00-\u9FA5]{2,}",
        "exclude": "一.*"
      }
    }
  }
}

添加自定义单词

ik 的中文词库并不太完整,有些需要自己的定义它没有的词。如富叔堡、嘤嘤怪、全员恶人等网络名词。

  • 打开 plugins/ik/config/IKAnalyzer.cfg.xml 文件,xml ext_dict 节点中如果没有值就定义一个 .dic 文件即可。(注:文件需要使用无 bom 的 utf-8 编码)
  • 添加热词(参考其他 .dic 文件)
  • 重启 es 即可

以图表的形式展示词频数据

1、创建索引



2、创建图表





下面我们对词频进行过滤处理,不匹配“一”开头的词,以及内容为两个字的词。如果觉得词太少可以在大小中进行控制。

图形中并没有显示有词频有多少个,我们可以通过“检查”来查看详细数据,和请求的条件。


查看每个地区访问服务器的热度

这里的数据是通过 logstash 处理后保存的。可以查看我上一篇文章 logstash 深入学习

1、创建索引


2、创建图表



FQA

汉化 kibana

logstash.yml 配置文件最下面 i18n.locale 项进行配置,值为 “zh-CN”

热更新 ik 分词

参考文章

为什么我设置 _mapping 和你和不一样

自 7.x 起弃用 types 的概念。因为这样不利于 Lucene 高效压缩文档的能力。

Removeal of mapping types

退出移动版