Elasticsearch-通过Kibana查看索引数据

  1. 云栖社区>
  2. 博客>
  3. 正文

Elasticsearch-通过Kibana查看索引数据

statmoon 2018-10-10 19:15:00 浏览2043
展开阅读全文

引言


  当数据存储到Elasticsearch后,我们希望能方便的通过界面进行查询,有两个工具能够满足我们的需要,一个是Elasticsearch-head插件,另一个是Kibana,笔者认为两个工具各有千秋,大家可以自行体会,不过就安装步骤来说,Elasticsearch-head真心麻烦,本文主要介绍如何部署Kibana,并使用Kibana来查看Elasticsearch中的索引数据。

部署Kibana


  1. 下载Kibana

  在Kibana官方网站找到下载链接,找到和Elasticsearch适配的版本,我之前Elasticsearch安装的是6.4.2版本,所以我下载的是6.4.2的Linux 64位版本。

img_f3573d32a61546211137ca3b4dc98251.png
download kibana
  1. 解压压缩文件

运行如下命令解压

tar zxvf kibana-6.4.2-linux-x86_64.tar.gz
  1. 修改配置

运行如下命令修改Kibana配置文件【kibana.yml】

vi kibana-6.4.2-linux-x86_64/config/kibana.yml

这个配置文件里面包含了Kibana和访问Elasticsearch的一些配置

  • server.port: Kibana服务的访问端口
  • server.host: Kibana服务绑定的地址(Kibana部署所在的服务器),可以是IP也可以是机器名,如果设置成localhost,则只能在本机访问
  • server.basePath: 如果Kibana服务是通过代理访问的,需要设置成代理的路径,Kibana会根据此项判断是否需要从收到的请求中删除basePath,结尾不要添加斜杠【/】
  • server.rewriteBasePath: 定义Kibana是否需要重写以server.basePath为前缀的请求路径,或者要求它们由反向代理重写。在Kibana 6.3之前始终为false,从Kibana 7.0开始将默认为true
  • server.maxPayloadBytes: 请求的最大字节数
  • server.name: Kibana服务的名称,用于标识Kibana服务使用的目的
  • elasticsearch.url: Elasticsearch服务的URL
  • elasticsearch.preserveHost: 设置为true时,Kibana使用server.host设置中指定的主机名;设置为false时,Kibana使用连接到此Kibana实例的主机的主机名,即Elastic
  • kibana.index: Kibana在Elasticsearch中创建的索引,用于存储保存的搜索、可视化和仪表板数据。
  • kibana.defaultAppId: 默认加载的应用程序
  • elasticsearch.username: 访问Elasticsearch的用户名,Elasticsearch启用基本的身份认证时使用
  • elasticsearch.password: 访问Elasticsearch的密码,Elasticsearch启用基本的身份认证时使用
  • server.ssl.enabled: Kibana服务是否启用SSL
  • server.ssl.certificate: Kibana服务SSL证书文件路径
  • server.ssl.key: Kibana服务SSL秘钥文件路径
  • elasticsearch.ssl.certificate: Elasticsearch PEM格式的SSL证书文件路径
  • elasticsearch.ssl.key: Elasticsearch PEM格式的SSL秘钥文件路径
  • elasticsearch.ssl.certificateAuthorities: 为Elasticsearch实例指定证书颁发机构的PEM文件的路径
  • elasticsearch.ssl.verificationMode: Elasticsearch提供的证书验证,默认值为full,如果要忽略,可设置为none
  • elasticsearch.pingTimeout: Elasticsearch响应PING的超时时间,单位是毫秒
  • elasticsearch.requestTimeout: Elasticsearch后端响应请求的超时时间,单位是毫秒
  • elasticsearch.requestHeadersWhitelist: 通过Kibana客户端请求Elasticsearch时需要发送的请求头列表
  • elasticsearch.customHeaders: 要发送到Elasticsearch的请求头名称和值,无论elasticsearch.requestHeadersWhitelist配置如何,客户端请求头都不能覆盖任何自定义请求头
  • elasticsearch.shardTimeout: Elasticsearch等待分片响应的超时时间,单位是毫秒,设置为0可以禁用
  • elasticsearch.startupTimeout: 在重试之前Kibana启动时等待Elasticsearch的超时时间,单位是毫秒
  • elasticsearch.logQueries: 记录发送到Elasticsearch的查询,如果要启用还需要将logging.verbose设置为true
  • pid.file: Kibana的进程ID文件路径
  • logging.dest: 指定Kibana保存日志输出文件的位置
  • logging.silent: 设置是否输出日志,设置为true时禁止所有日志输出
  • logging.quiet: 设置为true时禁止除错误消息之外的所有日志输出
  • logging.verbose: 设置为true以记录所有事件,包括系统使用信息和所有请求
  • ops.interval: 设置获取系统和进程性能指标的时间间隔,单位是毫秒,最小值是100,默认为5000
  • i18n.defaultLocale: 默认区域设置,可用于国际化,国际化文件存储位置kibana-6.4.2-linux-x86_64/src/core_plugins/kibana/translations/

  我修改了【server.host】,将这个从localhost修改为Kibana部署服务器的IP地址

img_1e1df0d62e6286088af429ec4c45527c.png
server host

  同时还修改了【elasticsearch url】,因为Elasticsearch服务部署在另外的服务器,将其修改为Elasticsearch服务部署的地址

img_4f32c3b9f16ebd5ba055acf73f6efe03.png
elasticsearch url
  1. 启动Kibana

运行如下命令后台启动

nohup kibana-6.4.2-linux-x86_64/bin/kibana &

启动后可以看到进程ID

img_c8f3a824a9ee4f72eb4b5c1241a4d54b.png
start kibana

使用Kibana查看Elasticsearch索引数据


安装成功之后使用浏览器通过访问【http://{IP}:5601】打开Kibana界面,找到Management菜单

img_d07480c8a270b8105ee9ba3147548710.png
menu

这里能够查看Elasticsearch的索引,不得不说这是Kibana的一个改进,曾记得在5.6.3版本的时候是无法在Kibana中看到Elasticsearch的索引列表的,对于低版本的Kibana,我们可以在浏览器中输入如下地址来查看Elasticsearch的索引列表。

http://{Elasticsearch IP}:9200/_cat/indices?v
img_38c18717b59836349a98baa06f8835b2.png
index list

然后点击Kibana的【Management】菜单,创建Index Patterns

img_c7d94a19ae340a5651eaf889263d61ff.png
create index patterns

添加完成后就可以点击【Discover】菜单进行查看了,还可以添加各种查询条件进行过滤

img_fb0e95a03da80ea055e926318b396163.png
query index

避坑指南


  1. UnhandledPromiseRejectionWarning: Error: listen EADDRNOTAVAIL xxx.xx.xx.xx:5601

如果你用的是云主机,并且碰到了启动Kibana出现了上面的错误

img_eda4acd5ebaea780289315ce5f9bf6c3.png
error

这是因为云主机一般有双IP,即内外网,切记:这个时候server.host一定要设置为内网IP

BTW,简书能不能支持一下标准的markdown变字体颜色的语法啊,要设置个红色,只能用`xxx`,但是这样字体又变小了

img_ac10a3f4ae47eeb1fda4a47577b91391.gif

网友评论

登录后评论
0/500
评论
statmoon
+ 关注