kibana使用

2023-11-03

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嵌入代码或者是一个定向链接分享一个保存的仪表盘。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kibana使用 的相关文章

  • PyPI 上的轮子平台约束有什么限制吗?

    是否有任何地方 PEP 或其他地方 声明关于 Linux 轮子上传范围的限制 PyPI http pypi io 应该有 具体来说 上传是否被认为是可接受的做法linux x86 64轮子到 PyPI 而不是manylinux1 x86 6
  • 如何将后台作业的输出分配给 bash 变量?

    我想在 bash 中运行后台作业并将其结果分配给一个变量 我不喜欢使用临时文件 并且希望同时运行多个类似的后台任务 root root var echo hello world root root echo var hello world
  • 在 Linux 上访问 main 之外的主要参数

    是否可以访问参数main在外面main 即在共享库构造函数中 在 Linux 上除了通过解析之外 proc self cmdline 您可以通过将构造函数放入 init array部分 功能在 init array 不像 init 使用相同
  • 在 Linux 上创建线程与进程的开销

    我试图回答在 python 中创建线程与进程有多少开销的问题 我修改了类似问题的代码 该问题基本上运行一个带有两个线程的函数 然后运行带有两个进程的相同函数并报告时间 import time sys NUM RANGE 100000000
  • 在 debian wheezy amd64 上安装 ia32-libs

    我正在使用 Debian 7 喘息 amd64 uname a Linux tzwm debian 3 2 0 4 amd64 1 SMP Debian 3 2 51 1 x86 64 GNU Linux 我想安装ia32 libs在我的
  • 使用 ProcessBuilder 运行 shell 脚本

    我正在尝试使用 Java 和 ProcessBuilder 运行脚本 当我尝试运行时 我收到以下消息 error 2 没有这样的文件或目录 我不知道我做错了什么 但这是我的代码 ps 我尝试只执行不带参数的脚本 错误是相同的 String
  • 在 Linux 控制台中返回一行?

    我知道我可以返回该行并用以下内容覆盖其内容 r 现在我怎样才能进入上一行来改变它呢 或者有没有办法打印到控制台窗口中的特定光标位置 我的目标是使用 PHP 创建一些自刷新的多行控制台应用程序 Use ANSI 转义码 http en wik
  • 为什么docker容器提示“权限被拒绝”?

    我使用以下命令来运行 docker 容器 并从主机映射目录 root database 到容器 tmp install database docker run it name oracle install v root database t
  • SMP 上如何处理中断?

    SMP 对称多处理器 多核 机器上如何处理中断 内存管理单元是只有一个还是多个 假设两个线程 A 和 B 运行在不同的内核上 同时 访问页表中不存在的内存页面 在这种情况下 将会出现页面错误 并从内存中引入新页面 将会发生的事件的顺序是什么
  • 完整的 C++ i18n gettext()“hello world”示例

    我正在寻找完整的 i18ngettext 你好世界的例子 我已经开始了一个基于的脚本使用 GNU gettext 的本机语言支持教程 https web archive org web 20130330233819 http oriya s
  • 如何将 elf 解释器(ld-linux.so.2/ld-2.17.so)构建为静态库?

    如果我的问题不准确 我深表歉意 因为我没有太多 Linux 相关经验 我目前正在构建一个 Linux 从头开始 主要遵循 linuxfromscratch org 版本的指南 7 3 我遇到了以下问题 当我构建可执行文件时 获取一个称为 E
  • Bash - 比较 2 个文件列表及其 md5 校验和

    我有 2 个列表 其中包含带有 md5sum 检查的文件 即使文件相同 列表也具有不同的路径 我想检查每个文件的 md5 和 我们正在讨论数千个文件 这就是为什么我需要脚本来仅显示差异 第一个列表是普通列表 第二个列表是文件的当前状态 我想
  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • 在嵌入式系统上将内核控制台发送到哪里?

    我正在开发一个嵌入式系统 该系统当前通过串行端口 1 上的控制台输出启动 Linux 使用启动加载程序中的控制台启动参数 然而 最终我们将使用这个串行端口 内核控制台输出的最佳解决方案是什么 dev null 能否以某种方式将其放在 pty
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • 如何使用 VSCode 调试 Linux 核心转储?

    我故意从我使用 VSCode 编写的 C 应用程序生成核心转储 我不知道如何调试核心转储 有没有人愿意分享这方面的经验 更新 我相信我现在已经可以使用了 我为核心文件创建了第二个调试配置 我需要添加指向生成的转储文件的 coreDumpPa
  • Unix 中的访问时间是多少

    我想知道访问时间是多少 我在网上搜索但得到了相同的定义 读 被改变 我知道与touch我们可以改变它 谁能用一个例子来解释一下它是如何改变的 有没有办法在unix中获取创建日期 时间 stat结构 The stat 2 结构跟踪所有文件日期
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na

随机推荐

  • 凹下去的白色按钮

    先看效果 再看代码
  • 关于分页的参数说明

    使用分页 如果Pageable是不是为null 此代码说明如果不为null PageHelper startPage currentPage pageSize true 第一个参数表示从第几页开始 第二个参数表示一页多少条记录 第三个参数表
  • Unity鼠标事件详解

    鼠标事件详解 1 3D物体 OnMouseDown 鼠标按下 OnMouseDrag 鼠标在按下时拖动 OnMouseUp 鼠标抬起 OnMouseEnter 鼠标进入 OnMouseExit 鼠标离开 OnMouseOver 鼠标经过 O
  • bert第三篇:tokenizer

    文章目录 tokenizer基本含义 bert里涉及的tokenizer BasicTokenzer wordpiecetokenizer FullTokenzier PretrainTokenizer 关系图 实操 如何训练 训练自己中文
  • Google Play的QUERY_ALL_PACKAGES或REQUEST_INSTALL_PACKAGES权限问题

    情况1 你的应用需要使用QUERY ALL PACKAGES权限 就按照Google Play政策要求上传这块功能视频了 情况2 应用不需权限 就把自己AndroidManifest xm中两个权限删除
  • 【华为面试题】动态规划

    题目 题目描述 一个充电站有n个不同功率的充电设备 您的任务是从中选取若干个设备 使得他们的总功率最接近但不超过充电站的最大输出功率P max 输入 第一行 一个整数n 代表充电设备的数量 第二行 n个整数 分别代表每个设备的功率 第三行
  • 新的日期和时间( Java 8 )

    为什么我们需要新的Date和Time类 Java8之前所有的日期类都是可变的 这就导致了线程不安全问题 java的日期和时间类的定义不一致 在java util和java sql中都包含日期类 java util Date同时包含日期和时间
  • CAN2.0和J1939协议的关系

    转发自http www cankau cn support help can vs j1939 html 很长时间没搞明白j1939与CAN2 0的关系 这篇文章让我明白了 CAN2 0是一种总线规范 是数据链路层的技术 J1939是SAE
  • Anaconda的升级及环境管理

    Anaconda的升级及环境管理 1 提高conda install的速度 1 添加清华源 conda config add channels https mirrors tuna tsinghua edu cn anaconda pkgs
  • 机房服务器维护表,服务器机房维护记录表

    服务器机房维护记录表 内容精选 换一换 通过内网连接云手机实例时 需要在租户VPC中创建一台弹性云服务器 作为连接云手机的跳板机器 若创建云手机服务器时未使用自定义网络 还需在云手机租户的VPC和服务器所在VPC之间建立对等连接 如图1所示
  • 正则表达式练习

    function region 定义正则表达式 const reg 前端 g test const res reg test 学java 找黑马 console log res exec const res reg exec 学好前端 找黑
  • 从4行代码看右值引用

    从4行代码看右值引用 从4行代码看右值引用 概述 右值引用的概念有些读者可能会感到陌生 其实他和C 98 03中的左值引用有些类似 例如 c 98 03中的左值引用是这样的 int i 0 int j i 这里的int 是对左值进行绑定 但
  • TensorFlow 1.8.0 + TensorRT 4.0 安装过程 (5月11日更新:目前在Ubuntu 18.04不可行)

    在上一篇 基于tar文件的TensorRT 4 0安装过程 中 完成了TensorRT的安装 但由于其语言环境为C 因而无法与TensorFlow结合 TensorFlow 1 7 0 已经集成了TensorRT 但需要从头编译安装 现记录
  • Android 应用详情中修改权限后应用崩溃

    Android 应用详情中修改权限后应用崩溃 一 问题描述 在有fragment 没有空构造函数 或者私有空构造 的页面 应用进入后台 手动进入应用详情修改应用权限 重新打开应用 应用崩溃 二 问题排查 1 经网络查询得知后台修改应用权限后
  • unity3d简单的粒子特效

    实现目标 实现一个简单的粒子效果 实现过程 首先创建一个空的对象 然后添加一个Particle System 编写控制粒子运动的脚本 在Start函数中对需要用到的参数进行初始化 particleArray new ParticleSyst
  • Postman接口测试

    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 它提供功能强大的 Web API HTTP 请求调试 B站最通俗易懂 Python接口自动化测试从入门到精通 超详细的进阶教程 看完这套视频就够了 1 环境变量
  • 数据库拆分3--使用sharding-jdbc 支持子查询sql

    最近在使用sharding jdbc来改造项目的时候遇到了一些问题 主要是有关子查询的 记录一下 结论 4 0 0 RC1版本是有限制支持子查询的 主查询和子查询必须保证相同的分片键 4 4 1可以支持子查询 子查询判断条件恒为false
  • Vision Transformers for Dense Prediction

    paper https arxiv org abs 2103 13413 code https github com intel isl DPT Abstract 我们引入了密集视觉转换器 这是一种利用视觉转换器代替卷积网络作为密集预测任务
  • 悬浮球(多机型悬浮窗权限设置,状态栏适配,可自动或手动设置大小,点击跳转WebView,拖拽处理)

    悬浮球 多机型悬浮窗权限设置 状态栏适配 可自动或手动设置大小 点击跳转WebView 拖拽处理 应用内和应用外都可以显示 可设置取消 可做SDK 和依赖类 横竖屏切换处理 项目地址 GitHub https github com gitU
  • kibana使用

    kibana更新6 更新后运行kibana要求elasticsearch5 版本 更新elasticsearch 下载并安装 public signing key rpm import https artifacts elastic co