Kibana 从入门到精通

1.Kibana的安装


1)安装kibana

#上传代码包
[root@db01 ~]# rz kibana-6.6.0-x86_64.rpm

#安装
[root@db01 ~]# rpm -ivh kibana-6.6.0-x86_64.rpm

2)配置kibana

[root@db01 ~]# vim /etc/kibana/kibana.yml

[root@db01 ~]# grep "^[a-z]" /etc/kibana/kibana.yml
#进程的端口
server.port: 5601
#监听地址
server.host: "10.0.0.51"
#指定ES的地址
elasticsearch.hosts: ["http://10.0.0.51:9200"]
#kibana也会创建索引
kibana.index: ".kibana"

3)启动kibana

[root@db01 ~]# systemctl start kibana.service

#验证
[root@db01 ~]# netstat -lntp       
tcp        0      0 10.0.0.51:5601          0.0.0.0:*               LISTEN      88636/node

4)访问页面

http://10.0.0.51:5601

二、ES数据操作

1.创建索引

#语法:
PUT /

#示例:
PUT /qiudao
PUT zengdao

2.创建数据

1)数据结构

ES存储数据三个必要构成条件
构成条件 说明
_index 索引(数据存储的地方)
_type 类型(数据对应的类)
_id 数据唯一标识符

2)语法

PUT //_doc/<_id>
POST //_doc/
PUT //_create/<_id>
POST //_create/<_id>

index:索引名称,如果索引不存在,会自动创建
_doc:类型
<_id>:唯一识别符,创建一个数据时,可以自定义ID,也可以让他自动生成

3)使用自定义ID插入数据

PUT /student/user/4
{
  "name":"congtianqi",
  "sex":"male"
}

#企业使用该方式少
    1.需要修改id值
    2.当指定ID时,插入数据时会查询数据对比ID值

4)使用随机ID插入数据

POST /student/user/
{
  "name":"liuxinyu",
  "sex":"fmale"
}

5)添加指定字段

POST /student/user/
{
  "id":"1",
  "name":"liuxinyu",
  "sex":"fmale"
}

#企业应用较多

3.查询数据

1)简单查询

#查看所有索引信息
GET _all
GET /_all

#查看所有索引的数据
GET _all/_search

#查看指定索引信息
GET student

#查看指定索引的数据
GET student/_search

#查看指定数据
GET student/user/1

2)条件查询

1>方法一:
GET /student/_search
{
  "query": {
    "term": {
      "age": {
        "value": "18"
      }
    }
  }
}
2>方法二:
GET /student/_search
{
  "query": {
    "term": {
      "age":"18"
    }
  }
}
3>方法三:
GET /student/_search
{
  "query": {
    "match": {
      "age": "18"
    }
  }
}

3)多条件查询

1>must查询
#查询条件必须全部满足
GET /student/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "age": {
              "value": "18"
            }
          }
        },
        {
          "term": {
            "name": {
              "value": "lhd"
            }
          }
        }
      ]
    }
  }
}
2>filter查询
#跟must一样,只不过在数据量很大时,比must查询快一点
GET /student/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "age": {
              "value": "18"
            }
          }
        },
        {
          "term": {
            "name": {
              "value": "lhd"
            }
          }
        }
      ]
    }
  }
}
3>should查询
#多条件查询时,查询条件只要有一个满足就可以
GET /student/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "age": {
              "value": "18"
            }
          }
        },
        {
          "term": {
            "name": {
              "value": "lhd"
            }
          }
        }
      ]
    }
  }
}
4>must_not查询
5>must和should结合
#查询年龄是21岁或者年龄是18岁并且名字是lhd的数据
GET /student/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "age": {
              "value": "21"
            }
          }
        },
        {
          "bool": {
            "must": [
              {
                "term": {
                  "age": {
                    "value": "18"
                  }
                }
              },
              {
                "term": {
                  "name": {
                    "value": "lhd"
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}
6>条件范围查询
GET /student/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "age": {
              "gte": 20,
              "lte": 25
            }
          }
        }
      ]
    }
  }
}

4.修改数据

#修改数据时指定id修改
PUT /student/user/1
{
  "name":"song",
  "sex":"fmale",
  "age":"18"
}

#注意,修改数据时,除了要修改的值。其他的值也要带上
PUT /student/user/2
{
  "name":"lhd",
  "sex":"man",
  "age":"19"
}

5.删除数据

#删除指定ID数据
DELETE /student/user/4

#删除索引
DELETE /student

什么是 Kibana

Kibana 是 ELK 技术栈中 K 的全称,通过 kibana, 我们可以非常便利地,对 Elasticsearch 中的索引数据进行可视化分析。

最重要的是,你可自由地选择如何展示 Elasticsearch 中的数据。

所谓:

一张图胜过千万行日志。

Kibana 有哪些功能?

基本功能

Kibana 既然是用来做可视化分析,自然少不了各种可视化组件,如:柱状图、线状图、饼图、旭日图,等等。

位置分析

通过 Elastic Maps, 可以对位置数据进行可视化分析。

时间序列

通过时间序列组件,可以对 Elasticsearch 中的数据执行时间序列分析。同时,还可以利用功能强大的、简单易学的表达式来描述查询、转换和可视化。

机器学习(Machine Learning

通过 Kibana 内置的机器学习能力,我们可以检测 隐藏在 Elasticsearch 数据中的异常情况以及探索那些对它们有显著影响的属性点。

图标和网格

借助 Elasticsearch 的相关性功能,结合 Graph 关联分析,可以帮我们方便的分析 ES 中的数据关系。

img
img
img
img
img

**Kibana让我们理解大量数据变得很容易。它简单、基于浏览器的接口使你能快速创建和分享实时展现Elasticsearch查询变化的动态仪表盘

安装 Kibana

下载&解压

说了那么多 Kibana 的功能,那么要如何安装咧?

访问 Kibana 官网下载页 https://www.elastic.co/cn/downloads/kibana

img

image

小哈这里访问的时候,最新版本为 7.3.2,但是为了与上篇文章中《手摸手带您学会 Elasticsearch 单机、集群、插件安装(图文教程)》 的 Elasticsearch 的版本保持一致,需要下载 7.1.0 版本。

Elasticsearch 每个版本的 API 可能会有变化,为了保证 Kibana 能够正常访问 ES, 请严格保证两者之间的版本号一致。

img

image

img

image

选择对应系统的包下载到本地,解压:

tar -zxvf 包名

解压成功后,目录如下:

img

image

启动 Kibana

进入到 Kibana 解压后的根目录,执行启动命令:

bin/kibana

控制台输出如下:

img

image

当控制台中输出包含 Server running at http://localhost:5601, 则代表 Kibana 启动成功了,接下来,我们在浏览器中访问 http://localhost:5601 地址,即可打开 Kibana.

注意:为了保证 Kibana 正常使用,您需要确保 Elasticsearch 正常启动。

Kibana 仪表盘(Dashboards)

打开 Kibana 首页,如下所示:

img

image

页面上提示我们,可以添加一些测试数据到 Kibana 中(实际上是添加测试数据到 ES 中):

img

image

点击 Load a data set and a Kibana dashboard 按钮,跳转页面如下:

img

image

如上图所示,有3种类型的测试数据可以添加,分别是:

  • ①:电商数据;
  • ②:航班数据;
  • ③:简单的 Web 日志数据;

点击 Add Data 按钮, Kibana 会将对应类型的测试数据导入到 ES 种,导入成功后,我们分别看下不同类型的数据的 Dashboards(仪表盘) 都是啥样的。

先看下电商的 Dashboards(仪表盘):

img

image

图表中展示了一些电商指标数据,包含商品的平均售价、平均销售量、每天商品销量、总收入等。

再看下航班的 Dashboards(仪表盘):

img

image

上图展示了航班的一些指标数据,包含总航班次数、平均票价、航空公司分布等。

关于 Kibana 的页面的功能,这里就简单介绍一些仪表盘,后续文章中,笔者会对 Kibana 的其他功能做一个详细深入的了解。

Kibana DevTools(开发者工具)

接下来介绍一下 Kibana 中一个非常有用的工具 DevTools。

img

image

这玩意是做啥的?

通过 DevTools, 我们可以非常方便的操作 ES 的 API, 如查询集群节点信息、查询索引数据信息等,如下所示:

img

image

除了操作 ES 的 API 外,Kibana 的 DevTools 还提供了快捷键的功能,比如按 ctrl/cmd + / 能够快速查阅 API 的官方文档等。

img

image

更多快捷键,点击页面上 Help, 即可查看。

kibana 安装插件

类似于 Elasticsearch,Kibana 同样提供了插件功能,通过安装一些外部插件,可以增强 Kibana 原有功能,如:增强图表展示等。

# 安装 kibana 插件
bin/kibana-plugin install plugin_location
# 查看已安装的 kibana 插件
bin/kibana-plugin list
# 异常已经安装的 kibana 插件
bin/kibana remove plugin_name

下面链接是目前已知的插件列表:

https://www.elastic.co/guide/cn/kibana/current/known-plugins.html

img

链接:https://www.jianshu.com/p/e37d0ecef451
来源:简书 犬小哈

三 Kibana使用(编写的时候,实时校验,非常好用).

①执行查询:

img

② Kibana新增索引.使用自定义的分片数和副本.

img

使用默认的分片数和副本数创建索引.

img

查看指定索引信息.

img

查看所有索引信息.

img

新增文档.(添加指定ID的方式)

img

新增文档(不使用指定ID的方式)使用POST

img

查询文档(查询有ID的)全部字段

img

查询文档的指定字段.

img

查询全部文档

img

更新文档方式一,使用PUT新增一个文档,覆盖旧的文档,方式二,使用doc文档的方式直接修改.这里演示一下方式二.

img
img

删除一个文档

img

删除索引

img

批量获取文档(同时相同的索引和不同的索引)

GET /_mget

img
img

相同索引相同类型的不同ID的写法.简化版.

img

查看历史操作.非常方便.

img
img

至此完成了基于Kibana可视化界面的ES的索引,文档的基本使用.操作简单,界面友好,提示强大,学习成本低.很棒的工具.

9.工作实例

概述

编写目的

  • 日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
  • 通常,日志被分散在储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。

  • 集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。
  • 通过我们需要对日志进行集中化管理,将所有机器上的日志信息收集、汇总到一起
  • 完整的日志数据具有非常重要的作用:
    1)信息查找。通过检索日志信息,定位相应的bug,找出解决方案。
    2)服务诊断。通过对日志信息进行统计、分析,了解服务器的负荷和服务运行状态,找出耗时请求进行优化等等。
    3)数据分析。如果是格式化的log,可以做进一步的数据分析,统计、聚合出有意义的信息,比如根据请求中的商品id,找出TOP10用户感兴趣商品。
  • ELK工作原理展示图
  • ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。目前主流的一种日志系统。

    ELK****工作原理展示图:

    img

    如上图:Logstash收集AppServer产生的Log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。

    Logstash****工作原理:
    Logstash事件处理有三个阶段:inputs → filters → outputs。是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型。

        1. 访问kibana:http://127.0.0.1:5601/app/kibana

    如下,如果是添加上面设置的java日志收集信息,则在下面填写gc;如果是添加上面设置的系统日志信息system,以此类型(可以从logstash界面看到日志收集项)

    img
    img

    然后点击上面的Discover,在Discover中查看:

    img

    查看日志登陆,需要点击“Discover”-->"message",点击它后面的“add”
    注意:
    需要右边查看日志内容时带什么属性,就在左边点击相应属性后面的“add”
    如下图,添加了message和path的属性:

    img

    这样,右边显示的日志内容的属性就带了message和path

    img

    点击右边日志内容属性后面隐藏的<<,就可将内容向前缩进

    img
    img

    添加新的日志采集项,点击Management-> Index Patterns,比如添加net系统日志。注意后面的*****不要忘了。删除kibana里的日志采集项,如下,点击删除图标即可。

    img
    img
    img
    img
    img
    img

    然后点击上面的Discover,在Discover中查看:

    查看日志登陆,需要点击“Discover”-->"message",点击它后面的“add”
    注意:

    img

    如果打开kibana查看日志,发现没有日志内容,出现“No results found”,如下图所示,这说明要查看的日志在当前时间没有日志信息输出,可以点击右上角的时间钟来调试日志信息的查看。

    img
    img
    img

    Copyright © 2009 - Now . XPBag.com . All rights Reserved.
    夜心的小站 » Kibana 从入门到精通

    提供最优质的资源集合

    立即查看 了解详情