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使用 的相关文章

  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • 如何使用 Cloud Init 挂载未格式化的 EBS 卷

    Context 我正在使用https wiki jenkins io display JENKINS Amazon EC2 Plugin https wiki jenkins io display JENKINS Amazon EC2 Pl
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 在 Mono 上运行 .Net MVC5 应用程序

    我正在 Windows 上的 Visual Studio 2013 中开发 Net 4 5 1 MVC5 应用程序 现在我想知道 是否可以在Linux Ubuntu 12 04 上运行这个应用程序 可以使用OWIN吗 Owin 可以自托管运
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 内核的panic()函数是否完全冻结所有其他进程?

    我想确认内核的panic 功能和其他类似kernel halt and machine halt 一旦触发 保证机器完全冻结 那么 所有的内核和用户进程都被冻结了吗 是panic 可以被调度程序中断吗 中断处理程序仍然可以执行吗 用例 如果
  • 如何在 Linux 中使用 C 语言使用共享内存

    我的一个项目有点问题 我一直在试图找到一个有据可查的使用共享内存的例子fork 但没有成功 基本上情况是 当用户启动程序时 我需要在共享内存中存储两个值 当前路径这是一个char and a 文件名这也是char 根据命令参数 启动一个新进
  • 如何查找哪个 Yocto 项目配方填充图像根文件系统上的特定文件

    我经常与 Yocto 项目合作 一个常见的挑战是确定文件为何 或来自什么配方 包含在 rootfs 中 这有望从构建系统的环境 日志和元数据中得出 理想情况下 一组命令将允许将文件链接回源 即配方 我通常的策略是对元数据执行搜索 例如gre
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • linux下如何从文本文件中获取值

    我有一些文本格式的文件 xxx conf 我在这个文件中有一些文本 disablelog 1 当我使用 grep r disablelog oscam conf 输出是 disablelog 1 但我只需要值1 请问你有什么想法吗 一种方法
  • 如何使用Android获取Linux内核的版本?

    如何在 Android 应用程序中获取 Linux 内核的版本 不是 100 确定 但我认为调用 uname r 需要 root 访问权限 无论如何 有一种不太肮脏的方法可以做到这一点 那就是 System getProperty os v
  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • 使用os.execlp时,为什么`python`需要`python`作为argv[0]

    代码是这样的 os execlp python python child py other args this works os execlp python child py other args this doesn t work 我读过
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • 凹下去的白色按钮

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

    使用分页 如果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