栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

【ElasticSearch 8.2 边学边教】02. ElasticSearch 8.2的数据可视化-Kibana篇

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【ElasticSearch 8.2 边学边教】02. ElasticSearch 8.2的数据可视化-Kibana篇

文章目录
  • 前言
  • 一、安装 Kibana
  • 二、启动 Kibana
    • 1. cmd 启动 Kibana
    • 2. 校验是否运行
    • 3. 可视化配置 Kibana
    • 4. 汉化 Kibana
  • 总结
  • 预告


前言

第一篇讲了怎么部署ElasticSearch,这一篇就讲怎么去可视化操作ElasticSearch,这里用的可视化工具就是官方的Kibana


一、安装 Kibana

虽然笔者在CentOS 7 上部署了 ElasticSearch,但是因为是在虚拟机上,实在是不方便,所以这次笔者尝试在宿主机上部署kibana
(差别应该不大)。根据官网,找到了Windows下对应的Kibana 8.2压缩包(读者直接点这个下就完事了,官网链接,中国人不骗中国人)。
然后解压,你会发现目录是这样的(目录作用我已经在下面备注好了):

drwxr-xr-x 1 Andrew 197121       0  4月 20 11:00 bin/ (可执行的bat文件)
drwxr-xr-x 1 Andrew 197121       0  4月 20 10:59 config/ (配置文件)
drwxr-xr-x 1 Andrew 197121       0  5月 17 16:22 data/ (数据文件)
-rw-r--r-- 1 Andrew 197121    3860  4月 20 10:59 LICENSE.txt (许可证相关信息)
drwxr-xr-x 1 Andrew 197121       0  4月 20 10:59 logs/ (日志文件)
drwxr-xr-x 1 Andrew 197121       0  4月 20 10:59 node/ (节点文件)
drwxr-xr-x 1 Andrew 197121       0  4月 20 10:59 node_modules/ (节点模块文件)
-rw-r--r-- 1 Andrew 197121 1126120  4月 20 10:59 NOTICE.txt 
-rw-r--r-- 1 Andrew 197121     738  4月 20 10:59 package.json (应该是json化的包信息)
drwxr-xr-x 1 Andrew 197121       0  4月 20 10:59 plugins/ (插件)
-rw-r--r-- 1 Andrew 197121    3966  4月 20 10:59 README.txt (没什么用的README.txt,我看了,第一次配置的时候作用不太大)
drwxr-xr-x 1 Andrew 197121       0  4月 20 10:59 src/ (这个是js源文件)
drwxr-xr-x 1 Andrew 197121       0  4月 20 10:59 x-pack/ (猜测是名为 x-pack 某个特殊功能的lib目录)
二、启动 Kibana 1. cmd 启动 Kibana

打开 cmd,cd 到解压文件夹的目录,进入 bin 目录, 执行如下命令

E:Serverkibana-8.2.0bin>kibana.bat

(其实在 windows 下直接双击就好了)
输入之后得等一段时间,开始的时候我以为是假死,到最后还是会有输出的
输出内容如下:

[2022-05-17T16:22:18.697+08:00][INFO ][plugins-service] Plugin "cloudSecurityPosture" is disabled.
[2022-05-17T16:22:18.712+08:00][INFO ][plugins-service] Plugin "metricsEntities" is disabled.
[2022-05-17T16:22:18.774+08:00][INFO ][http.server.Preboot] http server running at http://localhost:5601
[2022-05-17T16:22:18.810+08:00][INFO ][plugins-system.preboot] Setting up [1] plugins: [interactiveSetup]
[2022-05-17T16:22:18.814+08:00][INFO ][preboot] "interactiveSetup" plugin is holding setup: Validating Elasticsearch connection configuration…
[2022-05-17T16:22:18.851+08:00][INFO ][root] Holding setup until preboot stage is completed.


i Kibana has not been configured.

Go to http://localhost:5601/?code=393240 to get started.

千万不要手贱关掉cmd窗口

2. 校验是否运行

打开上面输出信息中的那个链接 - http://localhost:5601
他就会弹出这个界面

3. 可视化配置 Kibana

这个地方我其实是愣了下,虽然前文提到过有 Enrollment token,但我又翻了下官网文档,通过 Enrollment token 配置看起来有些复杂,所以我就点了 Configure manually(手动配置),然后就出现这个
这个时候,因为在 CentOS 7 中,防火墙默认开启, 9200端口是没有权限访问的。

如果遇到无法访问的情况下,你需要检查防火墙是否开放了这个端口,执行以下命令

firewall-cmd --list-all

然后可以看到以下信息

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: dhcpv6-client ssh
  ports: 6379/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

如果 ports 没有9200,那么执行如下命令

firewall-cmd --permanent --add-port=9200/tcp && firewall-cmd --reload

连续输出success后,那么就可以访问9200了。

填好上面的地址,点击 Check Address,如果 ElasticSearch 可以访问的话,那么就会出现如下界面

到这个地方我卡住了,开始以为这个地方是直接创建用户的,但是发现随便输入一个密码,发现报错了
(tail -20f /var/log/elasticsearch/elasticsearch.log)

closing connection Netty4HttpChannel{localAddress=/192.168.31.30:9200, remoteAddress=/192.168.31.10:9524}
io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: Received fatal alert: unknown_ca
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:480) ~[netty-codec-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279) ~[netty-codec-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:623) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:586) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) [netty-transport-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) [netty-common-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.74.Final.jar:4.1.74.Final]
	at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: unknown_ca
	at sun.security.ssl.Alert.createSSLException(Alert.java:131) ~[?:?]
	at sun.security.ssl.Alert.createSSLException(Alert.java:117) ~[?:?]
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:358) ~[?:?]
	at sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:293) ~[?:?]
	at sun.security.ssl.TransportContext.dispatch(TransportContext.java:204) ~[?:?]
	at sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) ~[?:?]
	at sun.security.ssl.SSLEngineImpl.decode(SSLEngineImpl.java:736) ~[?:?]
	at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:691) ~[?:?]
	at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:506) ~[?:?]
	at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:482) ~[?:?]
	at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:679) ~[?:?]
	at io.netty.handler.ssl.SslHandler$SslEngineType$3.unwrap(SslHandler.java:295) ~[netty-handler-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1342) ~[netty-handler-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1235) ~[netty-handler-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1284) ~[netty-handler-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510) ~[netty-codec-4.1.74.Final.jar:4.1.74.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:449) ~[netty-codec-4.1.74.Final.jar:4.1.74.Final]
	... 16 more

想了下,这个账户应该是通过 ElasticsSearch 的工具生成的,之前没有生成过,所以是无法访问 ElasticSearch 的。
这个时候,我回去看了自己写的第一篇文章,找到安装完成后有个命令

Generate an enrollment token for Kibana instances with
(用以下命令生成 Kibana 的注册 token)
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.

此时我马上去执行这个命令,接着它生成了token字符串,接着回到 http://localhost:5601 的首页,填入生成好的token

点击 Configure Elastic 后,弹出

这个时候回到 kibana.bat 的命令窗口,发现输出

[2022-05-17T16:27:51.653+08:00][ERROR][plugins.interactiveSetup.elasticsearch] Unable to connect to host "https://localhost:9200": connect ECONNREFUSED 127.0.0.1:9200
[2022-05-17T16:30:18.332+08:00][ERROR][plugins.interactiveSetup.elasticsearch] Unable to connect to host "https://192.168.31.30:9200": connect ETIMEDOUT 192.168.31.30:9200
[2022-05-17T17:03:23.943+08:00][ERROR][plugins.interactiveSetup.elasticsearch] Failed to authenticate with host "https://192.168.31.30:9200": ""
[2022-05-17T17:20:51.152+08:00][ERROR][plugins.interactiveSetup.elasticsearch] Failed to authenticate with host "https://192.168.31.30:9200": ""


Your verification code is:  xxx xxx(我改了)

直接输入 verification code,页面会自动配置

配置好之后,就会提示输入账号密码(忘记截图), 填入 elastic/<你的密码> 后,会提示

这个时候点击 Explore on my own,就可以进入主页

随便点点,摸索下功能就好了,不过可惜是英文,所以需要时间进行摸索,这里就不再展开了

4. 汉化 Kibana

在目录中的 config/kibana.yml 中,我发现刚刚的配置都被写入了这个文件了,内容如下(敏感内容打了码):
同时也发现了 kibana 是可以修改显示语言的,找到配置文件的 134 -136 行

# Specifies locale to be used for all localizable strings, dates and number formats.
# Supported languages are the following: English (default) "en", Chinese "zh-CN", Japanese "ja-JP", French "fr-FR".
# i18n.locale: "en"

根据提示,把值修改为 zh-CN,解开注释,重启服务,就能完成汉化了,如果还有英文,尝试重新刷新或清下缓存就好了,这里我就不截图了。

总结

这篇文章完整展示了怎么安装以及启动 kibana,以及登录到 ElasticSearch,虽然中途踩了一下坑,不过还好到后面还是完成了
(由于文章是边操作边写的,我也是首次操作,所以把完整的心路历程也给写出来了)。

预告

下篇文章我会简单试玩下kibana,或者下篇文章也有可能是这个系列的番外篇

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/895793.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号