Bootstrap

Kibana 部署

        Kibana 是一个开源的数据可视化和探索工具,主要用于 Elasticsearch 数据的分析和展示。本文将详细介绍如何在 Linux 系统上部署 Kibana,并启用 SSL 加密以确保安全通信。

英文文档:Kibana Guide | Elastic

中文文档:Kibana 用户手册 | Elastic

1. 环境准备

  • 操作系统:CentOS 7 或其他兼容的 Linux 发行版
  • Elasticsearch 版本:7.17.26
  • Kibana 版本:7.17.26

说明:

本篇以 Elasticsearch 集群为例,部署kibana。 Elasticsearch 集群部署参考:Elasticsearch 集群部署-CSDN博客文章浏览阅读659次,点赞6次,收藏11次。Elasticsearch 是一个分布式的搜索和分析引擎,广泛应用于日志分析、全文搜索、实时数据分析等场景。它以其高性能、高可用性和易用性而著称。本文档将引导您完成一个基本的 Elasticsearch 集群配置,包括节点间的通信、客户端访问、安全设置等关键步骤。我们将通过三个节点(node1、node2、node3)来搭建一个高可用的 Elasticsearch 集群,以确保您的数据能够在多个节点之间高效地存储和检索。https://blog.csdn.net/kersixy/article/details/144408895?spm=1001.2014.3001.5501

 2. 下载和安装 Kibana

2.1 下载 Kibana

1. 方式一:安装包下载

访问 Elastic 官方下载页面:

Past Releases of Elastic Stack Software | ElasticLooking for a past release of Elasticsearch, Logstash, Kibana, es-hadoop, Shield, Marvel, or our language clients? You're in the right place....icon-default.png?t=O83Ahttps://www.elastic.co/cn/downloads/past-releases#kibana选择与 Elasticsearch 版本相同的 Kibana 版本并点击下载:

点击 LINUX X86_64,下载 tar.gz 文件,上传到虚拟机。

2. 方式二:在线下载

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.26-linux-x86_64.tar.gz

2.2 解压 Kibana

1. 解压安装包

tar -zxvf kibana-7.17.26-linux-x86_64.tar.gz 
mv kibana-7.17.26-linux-x86_64 /export/server/kibana

2. 创建日志目录

mkdir -p /export/server/kibana/logs

2.3 配置 Kibana

1. 编辑配置文件

打开 kibana.yml 文件进行配置:

sudo vi /export/server/kibana/config/kibana.yml

i 编辑文件,在文件中追加一下内容:

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://node1:9200", "http://node2:9200", "http://node3:9200"]
kibana.index: ".kibana"
elasticsearch.username: "kibana_system"
elasticsearch.password: "elastic-pwd123"
xpack.security.enabled: true
logging.dest: /export/server/kibana/logs/kibana.log
i18n.locale: "zh-CN"

ESC 退出编辑,:wq 保存并退出。

说明:

  • server.port:指定 Kibana 服务监听的端口为 5601。
  • server.host:指定 Kibana 服务绑定到所有网络接口,0.0.0.0 表示允许从任何 IP 地址访问。在生产环境中,建议绑定到具体的 IP 地址以增加安全性。
  • elasticsearch.hosts:指定 Kibana 连接的 Elasticsearch 集群节点地址。
  • kibana.index:指定 Kibana 存储其元数据的索引名称。
  • elasticsearch.username:指定连接 Elasticsearch 时使用的用户名。推荐使用的 Elasticsearch 内置用户名:
    • elastic:超级用户,具有所有权限。
    • kibana_system:专门用于 Kibana 的系统用户,具有 Kibana 所需的最小权限。
  • elasticsearch.password: 指定连接 Elasticsearch 时使用的密码。
  • xpack.security.enabled: 启用 X-Pack 安全特性。
  • logging.dest:日志输出位置。
  • i18n.locale:指定 Kibana 的界面语言,默认英语(en)。Kibana 支持以下语言(部分列出):
    • en: 英语(默认)
    • zh-CN: 简体中文
    • zh-TW: 繁体中文
    • ja: 日语
    • fr: 法语
    • de: 德语
    • es: 西班牙语
    • it: 意大利语
    • pt-BR: 巴西葡萄牙语
    • ru: 俄语
    • ko: 韩语

2. 设置 Node.js 运行时的选项(7.17.13及以上配置)

打开 node.options 文件进行配置:

sudo vi /export/server/kibana/config/node.options

 i 编辑文件,修改文件内容,将--openssl-legacy-provider注释掉。修改后的文件为:

## Node command line options
## See `node --help` and `node --v8-options` for available options
## Please note you should specify one option per line

## max size of old space in megabytes
#--max-old-space-size=4096

## do not terminate process on unhandled promise rejection
 --unhandled-rejections=warn

## restore < Node 16 default DNS lookup behavior
--dns-result-order=ipv4first

## enable OpenSSL 3 legacy provider
# --openssl-legacy-provider

ESC 退出编辑,:wq 保存并退出。

说明:

官网文档:Use Kibana in a production environment | Kibana Guide [7.17] | Elastic

对应原文为:

Starting in 7.17.13, Kibana has upgraded its runtime environment, Node.js, from version 16 to version 18 and with it the underlying version of OpenSSL to version 3. Algorithms deemed legacy by OpenSSL 3 have been re-enabled to avoid potential breaking changes in a minor version release of Kibana. If SSL certificates configured for Kibana are not using any of the legacy algorithms mentioned in the OpenSSL legacy provider documentation, we recommend disabling this setting by removing --openssl-legacy-provider in the node.options config file.

2.4 创建 Kibana 用户和组(可选)

1. 创建用户和组

sudo groupadd kibana
sudo useradd kibana -g kibana

2. 更改文件权限

sudo chown -R kibana:kibana /export/server/kibana

2.5 配置 Systemd 服务(可选)

1. 创建 Systemd 服务文件

sudo vi /usr/lib/systemd/system/kibana.service

2. 编辑服务文件

i 编辑文件,文件内容为:

[Unit]
Description=Kibana
Documentation=https://www.elastic.co
Wants=network-online.target
After=network-online.target

[Service]
User=kibana
Group=kibana
ExecStart=/export/server/kibana/bin/kibana
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

说明:

如果是root用户启动,则需要将

User=kibana
Group=kibana

改为:

User=root
Group=root

3. 重新加载 Systemd 配置

sudo systemctl daemon-reload

4. 启动 Kibana 服务

sudo systemctl start kibana

5. 检查服务状态

sudo systemctl status kibana

2.6 启动 Kibana 服务(未配置 Systemd 服务执行该步骤)

1. 切换用户,root 用户启动无需切换

su kibana

2. 启动 Kibana 服务

方式一:直接启动(不推荐)

/export/server/kibana/bin/kibana

方式二:后台启动(推荐)

nohup /export/server/kibana/bin/kibana >/export/server/kibana/logs/kibana.log 2>&1 &

2.7 启用防火墙规则

sudo firewall-cmd --zone=public --add-port=5601/tcp --permanent
sudo firewall-cmd --reload

2.8 访问测试

浏览器访问http://ip地址:5601/

 到此为止,Kibana 配置完成。


3. 启用 SSL 加密

为了启用 SSL 加密,你需要一个 SSL 证书和相应的私钥。你可以使用自签名证书,或者从受信任的证书颁发机构(CA)获取证书。以自签名证书(Self-Signed Certificate)为例(需手动续期):

1. 生成自签名证书

cd /export/server/kibana
openssl req -x509 -newkey rsa:4096 -keyout kibana.key -out kibana.crt -days 365 -nodes
  • Country Name (2 letter code) [XX]:国家代码,使用两个字母表示。

    • 示例:CN(中国)、US(美国)、GB(英国)。

  • State or Province Name (full name) []:州或省份的全称。

    • 示例:Beijing(北京)、California(加利福尼亚)。

  • Locality Name (eg, city) []:城市名。

    • 示例:Beijing(北京)、San Francisco(旧金山)。

  • Organization Name (eg, company) []:组织或公司的名称。

    • 示例:Example Inc.(示例公司)、Alibaba Cloud(阿里云)。

  • Organizational Unit Name (eg, section) []:组织单位的名称,通常是部门或小组。

    • 示例:IT Department(IT部门)、DevOps Team(DevOps团队)。

  • Common Name (e.g. server FQDN or YOUR name) []:通用名称,通常是服务器的完全限定域名(FQDN)或服务器的主机名。注意:这里乱填会导致kibana无法访问,这里填写的内容确保能 ping 通。

    • 示例:kibana.example.com(Kibana服务器的域名)、192.168.88.90(服务器地址)、node1(服务器主机名,需要配置/etc/hosts)

  • Email Address []:联系电子邮件地址。

说明:

openssl req -x509 -newkey rsa:4096 -keyout kibana.key -out kibana.crt -days 365 -nodes命令含义:

  • openssl req: 调用 OpenSSL 的 req 命令,用于创建和处理 X.509 证书请求。

  • -x509: 指定生成自签名证书而不是证书请求。

  • -newkey rsa:4096: 生成一个新的 RSA 密钥对,密钥长度为 4096 位。

  • -keyout kibana.key: 将生成的私钥保存到文件 kibana.key 中。

  • -out kibana.crt: 将生成的自签名证书保存到文件 kibana.crt 中。

  • -days 365: 指定证书的有效期为 365 天。默认为30天。

  • -nodes: 指定生成的私钥不进行加密(即不设置密码)。这样在使用私钥时不需要输入密码。

2. 编辑 kibana.yml 文件

sudo vi config/kibana.yml

G 跳转到文件尾行,$ 跳转到当前行末尾,i 编辑文件。在文件末尾新建一行添加:

server.ssl.enabled: true
server.ssl.certificate: /export/server/kibana/kibana.crt
server.ssl.key: /export/server/kibana/kibana.key

ESC 退出编辑,:wq 保存并退出。

3. 重启 Kibana

如果配置 Systemd 服务:

sudo systemctl restart kibana

如果没配置 Systemd 服务:

# 查找Kibana进程 ID
ps aux | grep kibana
# 停止Kibana
kill <PID>
# 如果是kibana用户启动,切换用户
su kibana
# 启动Kibana
nohup /export/server/kibana/bin/kibana >/export/server/kibana/logs/kibana.log 2>&1 &

4. 访问 Kibana

 浏览器使用 HTTP 访问:http://签名证书填写的ip地址:5601

  浏览器使用 HTTPS 访问:https://签名证书填写的ip地址:5601

仅能 HTTPS 访问即为配置成功。 

;