在 CentOS 7 中 Kibana 安装部署

官方介绍:

Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。

本文环境:

  • Kibana 版本:7.5.2
  • 操作系统:CentOS 7

目录:

[TOC]

一、下载 Kibana

官网下载 Kibana 即可,需要注意的是,要与 Elasticsearch 的版本保持一致。Kibana 在 Node.js 上运行,安装包内包含所需的 Node.js 二进制文件,并且不支持针对单独维护的 Node.js 版本运行 Kibana 。

二、在 CentOS 7 中安装

上传至/opt目录中并解压文件:

  1. # 进入 /opt 目录
  2. [root@node01 ~]# cd /opt
  3. # 解压文件到当前目录
  4. [root@node01 opt]# tar zxvf kibana-7.5.2-linux-x86_64.tar.gz
  5. # 删除压缩文件
  6. [root@node01 opt]# rm kibana-7.5.2-linux-x86_64.tar.gz
  7. # 把 kibana-7.5.2-linux-x86_64 目录重命名为 kibana-7.5.2
  8. # 注意,这是目录重命名,不是移动目录下的文件
  9. # 因为 ./kibana-7.5.2 目录是不存在的,正是因为目录不存在,所以在
  10. # 使用 mv 命令时,直接重命名了该目录。
  11. [root@node01 opt]# mv ./kibana-7.5.2-linux-x86_64/ ./kibana-7.5.2
  12. # 变更 ./kibana-7.5.2 目录的用户和用户组
  13. [root@node01 opt]# chown -R yuchen:elasticsearch ./kibana-7.5.2/
  14. # 设置防火墙,开放 5601 端口号
  15. [root@node01 kibana-7.5.2]# firewall-cmd --zone=public --permanent --add-port=5601/tcp
  16. success
  17. [root@node01 kibana-7.5.2]# firewall-cmd --reload
  18. success
  19. [root@node01 kibana-7.5.2]# firewall-cmd --zone=public --list-all
  20. # 切换用户
  21. [root@node01 kibana-7.5.2]# su - yuchen
  22. [yuchen@node01 ~]$ cd /opt
  23. # 启动 Elasticsearch
  24. [yuchen@node01 opt]$ ./elasticsearch-7.5.2/bin/elasticsearch -d

三、配置 Kibana

配置文件:vi ./kibana-7.5.2/config/kibana.yml

  1. # Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
  2. # The default is 'localhost', which usually means remote machines will not be able to connect.
  3. # To allow connections from remote users, set this parameter to a non-loopback address.
  4. server.host: "192.168.1.198"
  5. # The URLs of the Elasticsearch instances to use for all your queries.
  6. elasticsearch.hosts: ["http://192.168.1.198:9200"]
  7. # Specifies locale to be used for all localizable strings, dates and number formats.
  8. # Supported languages are the following: English - en , by default , Chinese - zh-CN .
  9. i18n.locale: "zh-CN"

配置完毕,启动 Kibana :

  1. [yuchen@node01 opt]$ ./kibana-7.5.2/bin/kibana
  2. # 后台启动 需要加 &
  3. [yuchen@node01 opt]$ ./kibana-7.5.2/bin/kibana &
  4. # 加 & 符号启动后,会显示进程 ID
  5. # 如果停止,可以使用 kill -9 [进程ID]

停止 Kibana :

  1. # 在进程信息中找到包含 kibana 字符的进程
  2. [yuchen@node01 opt]$ ps -ef | grep kibana
  3. # 停止进程
  4. kill -9 [进程ID]

防火墙开启 5601 端口:

  1. [root@node01 ~]# firewall-cmd --zone=public --permanent --add-port=5601/tcp
  2. [root@node01 ~]# firewall-cmd --reload
  3. [root@node01 ~]# firewall-cmd --zone=public --list-all

到此,Kibana 能够正常访问了,但是存在安全问题。

更多关于安全设置,查看官方文档即可,例如配置内置用户、TSL/SSL 等。需要注意的是,有些安全设置是需要购买付费的许可,默认情况下使用基本许可(basic license)。

四、使用 systemd 运行 Kibana

在系统中设置 Kibana 启动/停止/开机启动。

以下操作均使用 root 用户。

1. 创建 *.service 服务文件

/etc/systemd/system/目录下创建kibana.service文件。

  1. # 创建文件
  2. [root@node01 ~]# touch /etc/systemd/system/kibana.service
  3. # 编辑文件
  4. [root@node01 ~]# vi /etc/systemd/system/kibana.service

2. 写入 *.service 文件内容

  1. [Unit]
  2. Description=Kibana
  3. Wants=network.service
  4. After=network.service
  5. [Service]
  6. Type=simple
  7. User=[用户名]
  8. Group=[用户组]
  9. ExecStart=/opt/kibana-7.5.2/bin/kibana
  10. SuccessExitStatus=143
  11. # Specifies the maximum file descriptor number that can be opened by this process
  12. LimitNOFILE=65536
  13. # Specifies the maximum number of process
  14. LimitNPROC=4096
  15. [Install]
  16. WantedBy=multi-user.target

3. 配置开机自启动

要将 Kibana 配置为在系统启动时自动启动,请运行以下命令:

  1. # 重载服务配置
  2. [root@node01 ~]# /bin/systemctl daemon-reload
  3. # 开机自启动
  4. [root@node01 ~]# /bin/systemctl enable kibana.service

Kibana 可使用以下方式启动停止

  1. # 启动服务(手动)
  2. [root@node01 ~]# systemctl start kibana
  3. # 停止服务
  4. [root@node01 ~]# systemctl stop kibana

五、遇到的问题

  1. Kibana 启动报错:

    1. [error][reporting] TimeoutError: Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r674921

    分析错误原因:

    Kibana 在生成报表时,使用 Chromium 沙箱(sandbox)技术来增加安全性。由于系统内,未安装 Chrome 或 Chromium 浏览器,导致错误发生。

    解决方法:

    在 CentOS 系统中安装 Chrome 浏览器。使用下面命令安装最新版:

    1. [root@node03 ~]# yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

    更多的发现:

    其实,安装浏览器并不是最优解决方案,你应当使用系统(CentOS 7)沙箱,这样就不用安装浏览器了。当然,如果你没有办法改变系统配置,则应当使用安装浏览器的方案。当你解决这个报错问题后,你会发现启动日志中包含一个警告,如下所示。

  2. Kibana 启动警告:

    1. [warning][browser-driver][reporting] Enabling the Chromium sandbox provides an additional layer of protection.

    官方文档给出的解释:https://www.elastic.co/guide/en/kibana/7.5/reporting-chromium-sandbox.html#_linux_sandbox

    通过查看官方文档发现,官方推荐的是,如果你的系统是 Linux 并且内核是 3.8 或更高版本,建议启用系统用户命名空间(user namespaces),并在 Kibana 配置文件中,配置xpack.reporting.capture.browser.chromium.disableSandbox: false

    CentOS 7 启用 user namespaces(用户命名空间)

六、参考资料

(完)