一、简介
Kibana 是为 Elasticsearch 设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图表的形式展现出来。
二、下载
当前最新的版本可在官网的下载界面直接下载,官网贴心的为大家准备了不同环境下安装包,可直接根据自己的安装环境下载,甚至还有打好包的 Docker 镜像。因为在撰写此文档时,当前最新的版本是 7.8.0,且笔者的操作系统为 Linux(Red Hat 7.4)系统,所以本文使用的安装包是 kibana-7.8.0-linux-x86_64.tar.gz,故本文中下述中提到的所有配置信息皆是基于此版本,虽然其他版本的配置大同小异,但仅供参考。
三、环境准备
3.1 创建用户
为了使 Kibana 在同一台机器上与其他程序的环境隔离开来,所以为 Kibana 定制一个用户。具体的用户名可自定义,在本文中使用 kibana 作为用户名。
useradd kibana #新建kibana用户
passwd kibana #修改kibana用户的密码
请使用 root 用户执行上述命令。
3.2 配置环境变量
本文计划将 Kibana 程序安装到 /usr/local/ 目录下(不一定是 /usr/local 目录, 也可以是别的目录, 只是笔者个人比较喜欢把程序文件夹放到这个目录下, 把数据文件夹放到 /data 目录下而已) 。切换到 kibana 用户下,编辑打开用户环境变量文件:
vim ~/.bashrc
将如下信息追加到文件中末尾的新行中:
export KIBANA_HOME=/usr/local/kibana
export PATH=$PATH:$KIBANA_HOME/bin
再通过键入 :wq
保存且退出后,一定要再通过 source ~/.bashrc
命令使变更生效。
四、安装部署
4.1 解压
将下载好的安装包 kibana-7.8.0-linux-x86_64.tar.gz 上传至 kibana 用户的主目录下,解压并移动到 /usr/local/ 目录下(不一定是 /usr/local 目录, 也可以是别的目录, 只是我比较喜欢把程序文件夹放到这个目录下, 把数据文件夹放到 /data 目录下而已) 。
tar -zxf kibana-7.8.0-linux-x86_64.tar.gz #解压安装包
mv kibana-7.8.0-linux-x86_64 /usr/local/kibana #移动到指定目录,并更名
chown -R kibana:kibana /usr/local/kibana #变更程序所属用户组
4.2 配置
与近年来很多流行的框架和中间件一样,Kibana 的配置同样遵循“约定大于配置”的设计原则。Kibana 具有极好的默认值设置,用户仅需很少的配置既可使用 Kibana。Kibana 的配置文件为 config/kibana.yml。
-
服务端口(可选)
访问 Kibana 服务的端口号。默认端口是 5601。server.port: 5601
如果你把该端口修改成了其他值,那么最终访问 Kibana 服务的 URL 中的端口号亦需随之改变。
-
服务主机名(可选)
Kibana 服务主机名称。server.host: "158.220.71.139"
-
服务上下文根(可选)
通过 URL 访问 Kibana 服务的时,默认是不需要指定上下文根的,但你也可以显式指定:server.basePath: "/kibana"
则相应的 URL 信息应为:http://localhost:5601/kibana
-
指定 ES 服务
Kibana 是为 Elasticsearch 设计的开源分析和可视化平台,连接到指定的 elasticsearch 是必须的,但此处值得留意的是:所指定的 ealsticsearch 最好与 Kibana 版本号相同。elasticsearch.url: "http://158.220.71.139:9200"
当应用的是 Elasticsearch 集群时,需要指定多个 elasticsearch 集群节点信息,以达到负载均衡和故障转移的目的。
elasticsearch.url: ["http://slave09:9200", "http://slave10:9200", "http://slave11:9200"]
注意:使用主机名的前提是以配置了 hosts 的映射关系。
-
进程文件(可选)
默认的进程文件存储目录是 /var/run/kibana.pid 目录下,为了提高服务的可控性,将其变更到专属的目录下。pid.file: /data/kibana/pids/kibana.pid
-
日志
默认情况下,Kibana 服务的日志将直接输出到当前的控制台上,该输出方式适用于测试环境中排查 Kibana 异常时。在生产环境中,一般使用更优雅的方式收纳日志,我们需要为其指定日志输出目录:logging.dest: /data/kibana/logs/kibana.log
注意:
- Kibana 在启动时,不会帮你创建目录,只会创建容纳日志的文件,所以你所指定的目录必须已创建。
- 你所创建的目录还需 kibana 用户拥有写权限。
下面提供创建目录与赋权的命令以供参考:
mkdir -p /data/kibana/logs # 递归创建目录(如果上级目录不存在,会按目录层级自动创建目录) chown -R kibana:kibana /data/kibana/logs # 指定目录所属用户和用户组 chmod +x /data/kibana/logs # 为指定目录添加“写”权限
-
汉化(可选)
Elastic 为 Kibana 提供了国际化语言的支持:i18n.local: "zh-CN"
并没有实现完整的汉化。
-
JVM(可选)
Kibana 是一个 NodeJS 的 Web 应用,而 NodeJS 是基于 Chrome V8 引擎的,V8 引擎对于内存的使用是有限制的,默认情况下:64 位系统下为 1.4 GB,32 位系统下约为 0.7 GB。
在系统内存不是很大,或 Kibana 出现 OOM 时,就需要对内存进行调整。一般来说,通过调整老年代内存就可以了,在 Kibana 的 bin/kibana 的新行中追加如下配置。NODE_OPTIONS="$NODE_OPTIONS --max-old-space-size=200"
请根据需求自行调整老年代内存大小。
五、启动与停止
5.1 启动
在 $KIBANA_HOME 目录下,使用 kibana 用户执行下述命令启动 Kibana:
bin/kibana &
执行完上述启动命令后,可通过监看启动日志来确定是否启动成功。监看命令如下:
tail -f /data/kibana/logs/kibana.log
通过如下命令查看 5601 是否已开放。
netstat -tunlp|grep 5601
日志中无明显错误,且端口已开放时,则可在浏览器中通过 http://localhost:5601 来访问 Kibana 服务。
5.2 停止
虽然我们可以根据在 config/kibana.yml 文件中的 pid.file 属性值所指文件中的进程 ID 号进行停止服务,但还需根据实际配置情况去查找该进程标识,较为繁琐。笔者编写了一个较为通用的命令停止 Kibana 服务,仅供参考。
ps -ef|grep 'node/bin/node'|grep -v grep|awk '{print $2}'|xargs kill -SIGTERM