kibana使用

kibana更新6.*
更新后运行kibana要求elasticsearch5.*版本。

更新elasticsearch
下载并安装 public signing key:

rpm –import https://artifacts.elastic.co/GPG-KEY-elasticsearch

添加elasticsearch的repo,在/etc/yum.repos.d/下新增elasticsearch.repo

vi /etc/yum.repos.d/elasticsearch.repo
粘贴下面内容到elasticsearch.repo中

[elasticsearch-5.x]
name=Elasticsearchrepositoryfor5.xpackages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

使用yum命令安装Elasticsearch

yum install elasticsearch

这里写图片描述

elasticsearch5.* 最低2g 内存。。

elasticsearch的插件也要安装。。

安装kibana 5.*
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.2.0-linux-x86_64.tar.gz
解压 ,更新config
这里写图片描述
运行kibana
这里写图片描述

体验新版本kibana。。。
这里写图片描述

新建索引时提示:Unable to fetch mapping,Do you have indices matching the pattern

这里写图片描述
这就说明logstash没有把日志写入到elasticsearch。

解决方法:

检查logstash与elasticsearch之间的通讯是否有问题,一般问题就在这。

现在开始体验kibana 5.*:

   1.加载案例数据到你安装的Elasticsearch中

         2. 定义至少一个索引匹配模式

         3.使用Discover功能探索你的数据

         4.建立一个visualization图形化地展示你的数据

         5.把许多visualization汇编组装成一个Dashboard

 本段内容假设你已经安装好了Kibana和Elasticsearch,并且Kibana连接到了Elasticsearch。



 在你开始之前:加载案例数据

 本段教程依赖如下数据集:

        1. 莎士比亚的所有著作,合适地解析成了各个字段:shakespeare.json。

        2. 随机生成的虚构账号数据:accounts.json

        3. 随机生成的日志文件:logs.jsonl


  莎士比亚数据集由如下数据格式组织

{
“line_id”: INT,
“play_name”: “String”,
“speech_number”: INT,
“line_number”: “String”,
“speaker”: “String”,
“text_entry”: “String”,
}
账户数据集由如下数据格式组织

{
“account_number”: INT,
“balance”: INT,
“firstname”: “String”,
“lastname”: “String”,
“age”: INT,
“gender”: “M or F”,
“address”: “String”,
“employer”: “String”,
“email”: “String”,
“city”: “String”,
“state”: “String”
}
日志数据有几十个不同的字段,但是在教程中关注的字段如下:

{
“memory”: INT,
“geo.coordinates”: “geo_point”
“@timestamp”: “date”
}
在导入莎士比亚数据集之前,我们需要为各个字段建立一个映射。映射把索引里的文档划分成逻辑组,指明字段的特征,如字段是否可被搜索、是否被标记、是否能被拆分成多个文字等。
使用以下命令为莎士比亚数据集建立一个映射。

curl -XPUT http://localhost:9200/shakespeare -d ’
{
“mappings” : {
default” : {
“properties” : {
“speaker” : {“type”: “string”, “index” : “not_analyzed” },
“play_name” : {“type”: “string”, “index” : “not_analyzed” },
“line_id” : { “type” : “integer” },
“speech_number” : { “type” : “integer” }
}
}
}
}
‘;
这个映射指明了数据集的如下特征:
1. speaker字段是一个字符串,并且不被分析。这个字段的字符串被视为一个单元,即时字段值有多个文字。

2.play_name同样符合上述特征。

3.line_id和speech_number是一个整数。

日志数据需要一个映射表明地理位置的经纬度,通过在那些字段使用一个geo_point类型。

使用以下命令为日志数据建立一个geo_point映射。

curl -XPUT http://localhost:9200/logstash-2015.05.18 -d ’
{
“mappings”: {
“log”: {
“properties”: {
“geo”: {
“properties”: {
“coordinates”: {
“type”: “geo_point”
}
}
}
}
}
}
}
‘;
curl -XPUT http://localhost:9200/logstash-2015.05.19 -d ’
{
“mappings”: {
“log”: {
“properties”: {
“geo”: {
“properties”: {
“coordinates”: {
“type”: “geo_point”
}
}
}
}
}
}
}
‘;
curl -XPUT http://localhost:9200/logstash-2015.05.20 -d ’
{
“mappings”: {
“log”: {
“properties”: {
“geo”: {
“properties”: {
“coordinates”: {
“type”: “geo_point”
}
}
}
}
}
}
}
‘;
那些账号数据不需要任何映射,所以这个时候我们使用Elasticsearch的批量导入API输入数据,使用如下命令:
curl -XPOST ‘localhost:9200/bank/account/_bulk?pretty’ –data-binary @accounts.json
curl -XPOST ‘localhost:9200/shakespeare/_bulk?pretty’ –data-binary @shakespeare.json
curl -XPOST ‘localhost:9200/_bulk?pretty’ –data-binary @logs.jsonl
这些命令将会花费一段时间来执行,视可利用计算资源而定。
使用如下命令验证成功导入:

curl ‘localhost:9200/_cat/indices?v’

你将会看到输出如下类似的信息
这里写图片描述

定义自己的索引模式编辑
加载到 Elasticsearch 的每组数据都有一个索引模式(Index Pattern)。 在上一节中,为莎士比亚数据集创建了名为 shakespeare 的索引,为 accounts 数据集创建了名为 bank 的索引。一个 索引模式 是可以匹配多个索引的带可选通配符的字符串。例如一般在通用日志记录中,一个典型的索引名称一般包含类似 YYYY.MM.DD 格式的日期信息。例如一个包含五月数据的索引模式: logstash-2015.05* 。

在本手册中,我们加载的索引只要名称匹配都可以正常工作。打开浏览器,访问 localhost:5601 。单击 Management 选项,然后单击 Index Patterns 选项。点击 Add New 定义一个新的索引模式。共有两个样本数据集,莎士比亚戏剧和金融账户,不包含时间序列数据。当您为这些数据集创建索引模式时,请确保 Index contains time-based events 没有被选中。指定 shakes* 作为 Shakespeare 数据集的索引模式,然后点击 Create 创建索引模式,然后同样的方法再创建一个名为 ba* 的索引模式。

这里写图片描述

Logstash 数据集会包含时间序列数据,所以点击 Add New 来定义这个数据集的索引,确保 Index contains time-based events 被选中,并从 Time-field name 下拉列表中选择 @timestamp 字段。

注意
定义索引模式时,匹配该模式的索引必须在 Elasticsearch 中存在。并且那些索引必须包含数据。

探索您的数据
单击侧面导航中的 Discover 进入 Kibana 的数据探索功能:

这里写图片描述

这里写图片描述

在查询框里,您可以输入 Elasticsearch 查询语句 来搜索您的数据。您可以在 Discover 页面下查看搜索结果并在 Visualize 页面下生成已保存搜索的可视化效果。

当前索引模式显示在查询栏下面。索引模式决定了当您提交查询时搜索哪些索引。要搜索一组不同的索引,可以从下拉菜单中选择不同的模式。要添加索引模式,请到 Management/Kibana/Index Patterns 界面下点击 Add New 。

您可以把您感兴趣的字段名称和值当做搜索的条件,对于数字字段您可以使用比较运算符,例如大于(>)、小于(<)或等于(=)。您可以使用逻辑运算符 AND,OR 和 NOT 连接搜索条件,这些运算符需要全部大写。

尝试选择 ba* 索引模式并在查询栏中输入以下字符串:

account_number:<100 AND balance:>47500
此查询返回0到99之间所有余额超过47,500的账户号码。搜索银行样本数据时,它返回5个结果:帐户号码8,32,78,85和97。

这里写图片描述

可视化数据
在侧边导航栏点击 Visualize 开始视化您的数据。

Visualize 工具能让您通过多种方式浏览您的数据。例如:我们使用饼图这个重要的可视化控件来查看银行账户样本数据中的账户余额。点击屏幕中间的 Create a visualization 蓝色按钮开始。

有很多种可视化控件可供选择。我们点击其中一个名为 Pie 的。

您可以为已保存的搜索建立可视化效果,或者输入新的搜索条件。使用后者时,首先需要选择一个索引模式来指定搜索哪些索引。我们希望搜索账户数据,所以选择 ba* 这个索引模式。

默认搜索匹配所有的文档。初始饼图没有分区:
这里写图片描述

您可以使用 Elasticsearch 桶聚合 指定图表中显示哪些信息。桶聚合简单的把符合您搜索条件的文档分成不同类别,又叫做 buckets 。例如:包含每个账户的余额数据。通过使用桶聚合,您可以建立多个账户余额区间并找到每个区间内包含多少账户。

定义每个区间桶:

点击 Split Slices 桶类别。
从 Aggregation 列表中选择 Range 。
从 Field 列表中选择 balance 字段。
点击四次 Add Range 把区间总数增加到6个。
定义以下区间:

0 999
1000 2999
3000 6999
7000 14999
15000 30999
31000 50000
点击 Apply changes images/apply-changes-button.png 更新图表。
现在您可以看到1000个账户根据余额区间划分的比例情况。

这里写图片描述

让我们看以下数据的另一方面:账户拥有者的年龄。通过添加另一个桶聚合,您可以看到每个余额区间的账户拥有者的年龄:

点击桶列表中的 Add sub-buckets 。
点击桶类型列表中的 Split Slices 。
在聚合列表中选择 Terms 。
在字段列表中选择 age 。
点击 Apply changes images/apply-changes-button.png。
现在您可以看到根据账户持有者的年龄划分的环形结构显示在余额区间外侧。
这里写图片描述

点击 Save 然后输入名称 Pie Example 来保存这个图表供以后使用。

下一步,我们来看一下莎士比亚数据集中的数据。让我们找出每部剧中的台词数,然后通过柱状图来显示这些数据:

点击 New 然后选择 Vertical bar chart 。
选择 shakes* 索引模式。因为目前并没有定义任何桶,您将会看到唯一的一个柱形,它代表着匹配默认通配请求的所有文档数。

没有数据。。。有问题。。先跳过。。

下一步,我们使用地图来可视化日志样本数据集中的地理标识信息。

点击 New 。
选择 Coordinate map 。
选择 logstash-* 索引模式。
设置我们要查看的事件的时间窗口:
在 Kibana 工具栏中点击时间控件选择。
点击 Absolute 。
设置开始时间为 May 18, 2015,结束时间为 May 20, 2015。
设置好时间范围后,点击 Go 按键并点击右下角向上的小箭头关闭时间控件。
因为目前没有定义任何桶,您将只会看到一幅世界地图:

1这里写图片描述

选择 Geo Coordinates 作为桶,并点击 Apply changes images/apply-changes-button.png 来显示日志文件中对应的地理坐标。您的图表应该如下所示:

这里写图片描述

您可以通过点击和拖动来浏览地图,通过 images/viz-zoom.png 按钮放大缩小,或者点击 Fit Data Bounds images/viz-fit-bounds.png 缩放到最低水平来显示所有部位。您也可以通过点击 Latitude/Longitude Filter images/viz-lat-long-filter.png 并在地图上画框来包含或去除某个矩形区域。已被应用的过滤器显示在查询栏下方。鼠标悬停在过滤器上方可以显示切换、固定、反转和删除该过滤器的控制选项。

保存这个地图并命名为 Map Example 。

全部放入仪表盘

  一个Kibana仪表盘是许多图表的集合允许你整理和分享。点击Dashboard页面以开始,点击搜索框最右边的Add Visualization按钮,显示出已保存图表的列表。选择Markdown Example、Pie Example、Bar Example和Map Example,然后点击底部小小的箭头关闭列表。你可以通过点集合拖拽标题条移动各个图表的容器,通过拖拽图表容器右下角调整容器大小。你的样例仪表盘最终看起来差不多是这样:

这里写图片描述

点击Save Dashboard 按钮,然后为仪表盘命名为demo Dashboard。你可以通过点击Share 按钮来显示HTML嵌入代码或者是一个定向链接分享一个保存的仪表盘。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值