在 CentOS 7 中 Kibana 安装部署
官方介绍:
Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。
本文环境:
- Kibana 版本:7.5.2
- 操作系统:CentOS 7
目录:
一、下载 Kibana
在官网下载 Kibana 即可,需要注意的是,要与 Elasticsearch 的版本保持一致。Kibana 在 Node.js 上运行,安装包内包含所需的 Node.js 二进制文件,并且不支持针对单独维护的 Node.js 版本运行 Kibana 。
二、在 CentOS 7 中安装
上传至/opt
目录中并解压文件:
# 进入 /opt 目录
[root@node01 ~]# cd /opt
# 解压文件到当前目录
[root@node01 opt]# tar zxvf kibana-7.5.2-linux-x86_64.tar.gz
# 删除压缩文件
[root@node01 opt]# rm kibana-7.5.2-linux-x86_64.tar.gz
# 把 kibana-7.5.2-linux-x86_64 目录重命名为 kibana-7.5.2
# 注意,这是目录重命名,不是移动目录下的文件
# 因为 ./kibana-7.5.2 目录是不存在的,正是因为目录不存在,所以在
# 使用 mv 命令时,直接重命名了该目录。
[root@node01 opt]# mv ./kibana-7.5.2-linux-x86_64/ ./kibana-7.5.2
# 变更 ./kibana-7.5.2 目录的用户和用户组
[root@node01 opt]# chown -R yuchen:elasticsearch ./kibana-7.5.2/
# 设置防火墙,开放 5601 端口号
[root@node01 kibana-7.5.2]# firewall-cmd --zone=public --permanent --add-port=5601/tcp
success
[root@node01 kibana-7.5.2]# firewall-cmd --reload
success
[root@node01 kibana-7.5.2]# firewall-cmd --zone=public --list-all
# 切换用户
[root@node01 kibana-7.5.2]# su - yuchen
[yuchen@node01 ~]$ cd /opt
# 启动 Elasticsearch
[yuchen@node01 opt]$ ./elasticsearch-7.5.2/bin/elasticsearch -d
三、配置 Kibana
配置文件:vi ./kibana-7.5.2/config/kibana.yml
# 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.
server.host: "192.168.1.198"
# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["http://192.168.1.198:9200"]
# Specifies locale to be used for all localizable strings, dates and number formats.
# Supported languages are the following: English - en , by default , Chinese - zh-CN .
i18n.locale: "zh-CN"
配置完毕,启动 Kibana :
[yuchen@node01 opt]$ ./kibana-7.5.2/bin/kibana
# 后台启动 需要加 &
[yuchen@node01 opt]$ ./kibana-7.5.2/bin/kibana &
# 加 & 符号启动后,会显示进程 ID
# 如果停止,可以使用 kill -9 [进程ID]
停止 Kibana :
# 在进程信息中找到包含 kibana 字符的进程
[yuchen@node01 opt]$ ps -ef | grep kibana
# 停止进程
kill -9 [进程ID]
防火墙开启 5601 端口:
[root@node01 ~]# firewall-cmd --zone=public --permanent --add-port=5601/tcp
[root@node01 ~]# firewall-cmd --reload
[root@node01 ~]# firewall-cmd --zone=public --list-all
到此,Kibana 能够正常访问了,但是存在安全问题。
更多关于安全设置,查看官方文档即可,例如配置内置用户、TSL/SSL 等。需要注意的是,有些安全设置是需要购买付费的许可,默认情况下使用基本许可(basic license)。
四、使用 systemd 运行 Kibana
在系统中设置 Kibana 启动/停止/开机启动。
以下操作均使用 root 用户。
1. 创建 *.service 服务文件
在/etc/systemd/system/
目录下创建kibana.service
文件。
# 创建文件
[root@node01 ~]# touch /etc/systemd/system/kibana.service
# 编辑文件
[root@node01 ~]# vi /etc/systemd/system/kibana.service
2. 写入 *.service 文件内容
[Unit]
Description=Kibana
Wants=network.service
After=network.service
[Service]
Type=simple
User=[用户名]
Group=[用户组]
ExecStart=/opt/kibana-7.5.2/bin/kibana
SuccessExitStatus=143
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of process
LimitNPROC=4096
[Install]
WantedBy=multi-user.target
3. 配置开机自启动
要将 Kibana 配置为在系统启动时自动启动,请运行以下命令:
# 重载服务配置
[root@node01 ~]# /bin/systemctl daemon-reload
# 开机自启动
[root@node01 ~]# /bin/systemctl enable kibana.service
Kibana 可使用以下方式启动和停止:
# 启动服务(手动)
[root@node01 ~]# systemctl start kibana
# 停止服务
[root@node01 ~]# systemctl stop kibana
五、遇到的问题
Kibana 启动报错:
[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 浏览器。使用下面命令安装最新版:
[root@node03 ~]# yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
更多的发现:
其实,安装浏览器并不是最优解决方案,你应当使用系统(CentOS 7)沙箱,这样就不用安装浏览器了。当然,如果你没有办法改变系统配置,则应当使用安装浏览器的方案。当你解决这个报错问题后,你会发现启动日志中包含一个警告,如下所示。
Kibana 启动警告:
[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
。
六、参考资料
(完)