1 Kibana是什么

Kibana是一个配合Elasticsearch使用的、开源的数据分析和可视化平台, 可以与Elasticsearch中存储的索引文档进行交互.

—— 使用Kibana能执行高级的数据分析, 并通过图表、表格、地图等形式显示分析结果.

2 安装并启动Kibana

在安装好单机版Elasticsearch的基础上, 安装Kibana插件, 使用其UI界面进行后续的学习操作.

前提: JDK和Elasticsearch单机服务已成功配置部署.

2.1 准备安装包

(1) 下载安装包:

下载地址: https://www.elastic.co/downloads/past-releases.

本文演示使用的是kibana-6.6.0-linux-x86_64.tar.gz.

(2) 解压并重命名:

# 上传安装包至服务器的/data/elk-6.6.0下:
cd /data/elk-6.6.0
# 解压安装包:
tar -zxf kibana-6.6.0-linux-x86_64.tar.gz
# 重命名
mv kibana-6.6.0-linux-x86_64.tar.gz kibana

2.2 修改配置文件

文件位置: $kibana/config/kebana.yml:

# Kibana is served by a back end server. This setting specifies the port to use.
# Kibana是个后台服务, 需要指定服务的IP地址和端口号. 默认值为5601.
server.port: 5601 # Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
# 指定Kibana服务需要绑定的IP地址, 默认值为本地回环地址"localhost". 若要允许远程访问, 就需要改为本地服务器的IP地址. (127.0.0.1的作用等同于localhost, 可用ifconfig命令查看本机的IPV4地址)
server.host: 172.16.22.133 # Enables you to specify a path to mount Kibana at if you are running behind a proxy. This only affects
# the URLs generated by Kibana, your proxy is expected to remove the basePath value before forwarding requests
# to Kibana. This setting cannot end in a slash.
#server.basePath: "" # The maximum payload size in bytes for incoming server requests.
#server.maxPayloadBytes: 1048576 # The Kibana server's name. This is used for display purposes.
#server.name: "your-hostname" # The URL of the Elasticsearch instance to use for all your queries.
# 需要监控的Elasticsearch服务的地址, 默认是本地回环地址+9200端口
#elasticsearch.url: "http://localhost:9200" # When this setting's value is true Kibana uses the hostname specified in the server.host
# setting. When the value of this setting is false, Kibana uses the hostname of the host
# that connects to this Kibana instance.
#elasticsearch.preserveHost: true # Kibana uses an index in Elasticsearch to store saved searches, visualizations and
# dashboards. Kibana creates a new index if the index doesn't already exist.
# Kibana在Elasticsearch中的索引
kibana.index: ".kibana"

2.3 启动Kibana并验证

(1) 启动Kibana:

cd /data/elk-6.6.0/kibana/bin
# 前台启动, 不能关闭终端, 即阻塞式启动, 不能执行其他操作. 此时可通过Ctrl + C终止服务.
./kibana # 后台启动, 可退出终端, 若当前终端窗口关闭, 服务也将终止.
nohup ./kibana & # 上述nohup命令将输出追加到了nohup.out中, 为了直接查看启动情况, 可省去nohup命令:
# ./kibana &

(2) 浏览器检查

在浏览器访问: http://172.16.22.133:5601, 出现如下界面, 说明启动成功:

2.4 关闭Kibana服务

# 查看node服务的进程id
[root@localhost bin]# ps aux | grep node
root 15653 3.7 1.0 1142400 88020 pts/0 Sl 04:21 0:07 ./../node/bin/node --no-warnings ./../src/cli
# kill掉 ./../src/cli 进程:
[root@localhost bin]# kill -9 15653

或者: 如果没有在后台启动Kibana, 即没有使用nohup命令启动, 则关闭当前会话(即终端窗口), Kibana服务也将终止.

3 Kibana功能测试

前往Dev Tools工具界面, 输入如下命令并点击 [绿色的向右的箭头➡] 发送请求:

GET _cluster/health

得到如下关于集群健康状况的JSON响应:

{
"cluster_name" : "heal_es", # 集群名称, 默认是elasticsearch
"status" : "yellow", # 集群健康状态
"timed_out" : false,
"number_of_nodes" : 1, # 集群中的节点数
"number_of_data_nodes" : 1, # 存储数据的节点数
"active_primary_shards" : 33, # 活跃的primary shard数
"active_shards" : 33, # 活跃的shard数, 包括primary shard和replica shard
"relocating_shards" : 0, # 当前正在从一个节点迁往其他节点的分片的数量, 通常是0. 当ES发现集群不太均衡(如添加或下线一个节点)时, 该值会上涨
"initializing_shards" : 0, # 刚创建的分片个数, 创建第一个索引时、节点重启时, 会短暂处于此状态(不应长期停留此状态)
"unassigned_shards" : 5, # 在集群中存在, 却又不能找到 -- 即未分配的副本
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 86.8421052631579
}

3.1 关于集群的状态status

green: 所有primary shard和replica shard都已成功分配, 集群是100%可用的;

yellow: 所有primary shard都已成功分配, 但至少有一个replica shard缺失. 此时集群所有功能都正常使用, 数据不会丢失, 搜索结果依然完整, 但集群的可用性减弱. —— 需要及时处理的警告.

red: 至少有一个primary shard(以及它的全部副本分片)缺失 —— 部分数据不能使用, 搜索只能返回部分数据, 而分配到这个分配上的写入请求会返回一个异常. 此时虽然可以运行部分功能, 但为了索引数据的完整性, 需要尽快修复集群.

3.2 关于集群中的节点数

使用GET _cat/nodes?v 查看当前节点数:

ip            heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.16.22.133 62 98 2 0.98 1.25 1.39 mdi * 1UlY804

3.3 关于未分配的分片

unassigned_shards: 已经在集群状态中存在、但在集群里又找不到的分片, 来源通常是未分配的副本. 比如: 一个有 5 分片和 1 副本的索引, 在单节点集群上就会有 5 个未分配副本分片.

如果集群状态是red, 也会长期存在未分配分片(因为缺少主分片).

关于Kibana的使用方法, 请参考博主的这篇文章 ES 06 - 通过Kibana插件操作ES中的索引文档 (CRUD操作).

4 常见问题及解决

(1) 问题描述:

启动Kibana时抛出如下异常: (这里以Kibana 7.2.0为例进行说明)

[elastic@localhost bin]$ ./kibana
log [06:20:42.283] [fatal][root] Error: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /data/elk-7.2.0/kibana-7.2.0/node_modules/@elastic/nodegit/build/Release/nodegit.node)
at Object.Module._extensions..node (internal/modules/cjs/loader.js:718:18)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (/data/elk-7.2.0/kibana-7.2.0/node_modules/@elastic/nodegit/dist/nodegit.js:12:12)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Module._compile (/data/elk-7.2.0/kibana-7.2.0/node_modules/pirates/lib/index.js:99:24)
at Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Object.newLoader [as .js] (/data/elk-7.2.0/kibana-7.2.0/node_modules/pirates/lib/index.js:104:7)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.require (/data/elk-7.2.0/kibana-7.2.0/x-pack/plugins/code/server/git_operations.js:10:19)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Module._compile (/data/elk-7.2.0/kibana-7.2.0/node_modules/pirates/lib/index.js:99:24)
at Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Object.newLoader [as .js] (/data/elk-7.2.0/kibana-7.2.0/node_modules/pirates/lib/index.js:104:7)
at Module.load (internal/modules/cjs/loader.js:599:32) FATAL Error: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /data/elk-7.2.0/kibana-7.2.0/node_modules/@elastic/nodegit/build/Release/nodegit.node)

(2) 解决方法:

由出错内容可知, 系统glibc库版本过低, 需要升级到2.17:

# 退出ES专用用户, 通过root用户下载安装包, 并解压:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
tar glibc-2.17.tar.gz # 进入解压后的目录, 然后创建编译目录:
cd glibc-2.17
mkdir build && cd build # 检查(预编译):
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin # 如果没有出现问题的化, 就可以正式编译了. 这里开启8个线程编译:
make -j 8 # 等待编译完成后, 安装:
make install # 查看已安装的GLIBC库版本:
[root@localhost date]# strings /lib64/libc.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE # 也可通过下述命令查看:
[root@localhost data]# ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

(3) 再次启动Kibana, 该问题得以解决

ES 04 - 安装Kibana插件(6.6.0版本)的更多相关文章

  1. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库04 —— 安装HAWQ插件PXF3.3.0.0

    一. 安装PXF3.3.0.0,这里所安装的pxf的包文件都包含在apache-hawq-rpm-2.3.0.0-incubating.tar.gz里面下面步骤都是以root身份执行这里注意,pxf插 ...

  2. Linux环境——MySQL安装及配置(8.0版本)

    虚拟机环境是Linux  Red Hat Enterprlse Linux (64位),本次安装的是Mysql 8.0版本. 由于有经验了,所以又弄了台虚拟机练手,承接上一篇博客(https://ww ...

  3. Yii2使用Redis - 从安装redis到使用 [ 2.0 版本 ]

    Yii2使用Redis - 从安装redis到使用 [ 2.0 版本 ] 一.安装Redis和简单配置 1. 下载Redis安装包 地址:http://redis.io/download , 本文选择 ...

  4. ES 06 - 通过Kibana插件增删改查ES中的索引文档

    目录 1 document的结构 2 document的常见CRUD操作 2.1 添加商品: 添加文档并建立索引 2.2 查询商品: 检索文档 2.3 修改商品: 替换文档 2.4 修改商品: 更新文 ...

  5. Inno Setup 精灵显示插件 InnoFairy (V2.0 版本)

    原文 http://restools.hanzify.org/article.asp?id=111 一个如影随形的小精灵会令到你的安装程序更加人性化. 就是这样一个功能的Inno Setup插件, 希 ...

  6. 真实机下 ubuntu 18.04 安装GPU +CUDA+cuDNN 以及其版本选择(亲测非常实用)【转】

    本文转载自:https://blog.csdn.net/u010801439/article/details/80483036 ubuntu 18.04 安装GPU +CUDA+cuDNN : 目前, ...

  7. 安装ELK平台 7.3.0版本

    0. 事前准备工作 0.1 防火墙 若是使用公网IP的话可以考虑关闭防火墙,或者放行相应端口 使用内网IP的话可以不用管防火墙 0.2 关闭SElinux # setenforce 0 文件:/etc ...

  8. Centos7安装percona-xtrabackup2.4和8.0版本

    Percona XtraBackup是一个基于MySQL的服务器的开源热备份实用程序 ,它不会在备份期间锁定您的数据库.无论是24x7高负载服务器还是低事务量环境,Percona XtraBackup ...

  9. CentOS 6.4编译安装和部署Zabbix 2.0版本监控(中文)

    [一].zabbix简介 zabbix是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级开元解决方案 zabbix由2部分构成,zabbix_server和可选组件zabbix_agen ...

随机推荐

  1. Win10 教育版

    Windows 10 版本 1607 引入了专为 K-12 机构的特有需求而设计的两个版本:Windows 10 专业教育版和 Windows 10 教育版. 这些版本为不断发展的 K-12 教育 I ...

  2. 爬虫之正则和xpath

    一.正解解析 常用正则表达式回顾: 单字符: . : 除换行以外所有字符 [] :[aoe] [a-w] 匹配集合中任意一个字符 \d :数字 [-] \D : 非数字 \w :数字.字母.下划线.中 ...

  3. python+matplotlib+绘制不同图标类型

    #==================================================================#首先需要导入两个文件import matplotlib.pypl ...

  4. P2V后,VMWare ESX 上RedHat AS5网络不通问题的解决办法

    现象: 机器在启动eth0后,可以ping通eth0的IP,但是很快就无法访问了. 原因: red hat 5.x 默认系统安装完成后为xen内核,那么xen内核引导启动后就会有虚拟网卡(vethx. ...

  5. Linux SVN服务器的搭建配置及分支的创建与合并

    第一步:通过yum命令安装svnserve,命令如下: >yum -y install subversion 若需查看svn安装位置,可以用以下命令: >rpm -ql subversio ...

  6. [AtCoder 2702]Fountain Walk - LIS

    Problem Statement In the city of Nevermore, there are 108 streets and 108 avenues, both numbered fro ...

  7. composer 实现自动加载原理

    简介 一般在框架中都会用到composer工具,用它来管理依赖.其中composer有类的自动加载机制,可以加载composer下载的库中的所有的类文件.那么composer的自动加载机制是怎么实现的 ...

  8. 微信小程序开发工具中快捷键

    微信小程序开发工具表面上是没有更多的样式类的工具,例如缩进.隐藏代码什么的. 现在总结一下小程序开发工具常用的一些快捷键: 格式调整 Ctrl+S:保存文件Ctrl+[, Ctrl+]:代码行缩进Ct ...

  9. 问题:win7下配置好服务器就是不能查询数据库。(已解决)

    我用C写访问mysql的CGI程序,可以执行. 但是,当我写好网页再去访问这个CGI,出现下面的错误 我的环境是:IIS作为服务器,MYSQL数据库,VC++6.0写CGI. 跟踪了一下,发现只要我调 ...

  10. Asp.Net Core中使用Swagger,你不得不踩的坑

    很久不来写blog了,换了新工作后很累,很忙.每天常态化加班到21点,偶尔还会到凌晨,加班很累,但这段时间,也确实学到了不少知识,今天这篇文章和大家分享一下:Asp.Net Core中使用Swagge ...