Elasticsearch:如何在 CentOS 上创建多节点的 Elasticsearch 集群 – 8.x

2022年12月17日   |   by mebius

在我之前的文章 “Elasticsearch:使用 RPM 安装包来安装 Elastic Stack 8.x” 里,我详细地介绍了如何使用 RPM 安装包来安装 Elastic Stack 8.x。在今天的文章中,我来详细描述如何从零开始来创建一个含有三个节点的 Elasticsearch 集群。我们最终实现的是如下的 Elasticsearch 集群。

%title插图%num

如上所示,我们有三台运行 CentOS 的机器。它们的 IP 地址分别列在上面。我们将在这些机器上部署最新的 Elastic Stack 8.5.3。

创建 CentOS 虚拟机

如果你已经有自己的 CentOS 机器,那你就可以直接tgcode跳过这个部分。针对没有 CentOS 机器的开发者来说,Vagrant 是一个不错的选择。请参照我之前的教程 “Vagrant 入门教程” 来进行学习。

我们首先在自己的电脑中创建一个目录,并创建如下的一个 Vagrantfile 文件:

Vagrantfile

# vi: set ft=ruby :

ENV['VAGRANT_NO_PARALLEL'] = 'yes'

Vagrant.configure(2) do |config|

  config.vm.provision "shell", path: "bootstrap.sh"

  config.vm.define "es1" do |es1|
    es1.vm.box = "centos/7"
    es1.vm.hostname = "es1.example.com"
    es1.vm.network "private_network", ip: "172.42.42.10"
    es1.vm.provider "virtualbox" do |vb|
      vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
      vb.name = "es1"
      vb.memory = 4096
      vb.cpus = 2
    end
  end

  config.vm.define "es2" do |es2|
    es2.vm.box = "centos/7"
    es2.vm.hostname = "es2.example.com"
    es2.vm.network "private_network", ip: "172.42.42.20"
    es2.vm.provider "virtualbox" do |vb|
      vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]      
      vb.name = "es2"
      vb.memory = 2048
      vb.cpus = 1
    end
  end

  config.vm.define "es3" do |es3|
    es3.vm.box = "centos/7"
    es3.vm.hostname = "es3.example.com"
    es3.vm.network "private_network", ip: "172.42.42.30"
    es3.vm.provider "virtualbox" do |vb|
      vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]      
      vb.name = "es3"
      vb.memory = 2048
      vb.cpus = 1
    end
  end

end

如上所示,它创建三个 CentOS 的虚拟机。我们分别为它们设置相应的 IP 地址。在上面,它还引用了一个 bootstrap.sh 文件。它是用来帮我们安装一下必要的包及进行相应的配置。它的定义如下:

bootstrap.sh

#!/bin/bash

# Update the system
echo "[TASK 1] Updating the system"
yum update -y >/dev/null 2>&1

# Install desired packages
echo "[TASK 2] Installing desired packages"
yum install -y -q vim redhat-lsb-core net-tools bind-utils >/dev/null 2>&1

# Set up global aliases and exports
echo "[TASK 3] Creating global aliases and functions"
cat >>/etc/bashrc > /etc/vimrc

# Enable password authentication
echo "[TASK 4] Enabling password authentication in sshd config"
sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl reload sshd

# Disable SELinux
echo "[TASK 5] Disable SELinux"
setenforce 0
sed -i --follow-symlinks 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux

# Set Root password
echo "[TASK 6] Set root password"
echo "admin" | passwd --stdin root >/dev/null 2>&1

# Disable and stop firewalld
echo "[TASK 5] Disable and stop firewalld"
systemctl disable firewalld >/dev/null 2>&1
systemctl stop firewalld

# Update hosts file
echo "[TASK 6] Update /etc/hosts file"
cat >>/etc/hosts

如上所示,它禁用了 firewall,以便机器之间能互相连接。在实际的使用中,这个并不推荐。我们需要通过 iptable 来进行配置。另外在上面,我们为 root 用户创建了一个 admin 的密码。这个在下面的命令中将会被使用。

这样我们目录里的文件就是:

$ pwd
/Users/liuxg/data/elk/elastic8
$ ls
Vagrantfile  bootstrap.sh

我们在这个目录下,打入如下的命令:

%title插图%num

%title插图%num

如果你遇到上面的错误信息,你可以继续使用上面的 vagrant up 命令运行:

%title插图%num

如上所示,在更新完系统后,上面的错误信息就不见了。我们需要为 es2 及 es3 重复这个步骤。等全部安装完毕后,我们可以使用如下的命令来查看:

%title插图%num

vagrant status
Current machine states:

es1                       running (virtualbox)
es2                       running (virtualbox)
es3                       running (virtualbox)

This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.

上面显示我们的三个虚拟机都已经运行起来了。我们可以在 virtualbox 里进行查看:

%title插图%num

上面的安装并没有帮我们安装 Virtualbox Guest Additions。我接着做如下的操作:

vagrant reload

%title插图%num

%title插图%num

它会在 reload 的过程中自动帮我们安装好 Guest Additions。等安装好后,我们可以直接在 host 里打入如下的命令:

ping 172.42.42.10
$ ping 172.42.42.10
PING 172.42.42.10 (172.42.42.10): 56 data bytes
64 bytes from 172.42.42.10: icmp_seq=0 ttl=64 time=0.416 ms
64 bytes from 172.42.42.10: icmp_seq=1 ttl=64 time=0.654 ms

很显然,在 host 上面,我们可以访问 es1。我们也可以同样测试一下 es2 及 es3。

这样,我们的 CentOS 的安装就已经完成了。

安装 Elastic Stack

禁用 firewalld

我们可以使用如下的命令来登录已经创建好的 CentOS:

vagrant ssh es1
$ vagrant ssh es1
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
[vagrant@es1 ~]$ hostname
es1.example.com

在上面的一步中,我们在 bootstrap.sh 禁止了 firewall 的使用。针对非虚拟机的开发者来说,你可以登录每个 CentOS 机器后,我们可以通过如下的命令来检查 firewalld 的状态:

systemctl status firewalld
[vagrant@es1 ~]$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

上面显示的是 inactive 的状态,这个是因为我们在 bootstrap.sh 里已经做过了。如果你的是 active 的状态,那么你可以使用如下的命令来停止 firewalld

systemctl stop firewalld
systemctl disable firewalld

在上面,我们禁用 firewalld。我们可以再次使用:

systemctl status firewalld

来检查状态。我们按照上面的步骤对三个 CenOS 做同样的操作,确保 firewalld 被禁用。

导入 Elasticsearch GPG key

为了方便安装,我们使用 root 用户来进行操作。我们打入命令 su:

[vagrant@es1 ~]$ su
Password: 
[root@es1 vagrant]# 

在上面我们输入密码 admin 即可。这个密码是在 bootstrap.sh 里指定的。

Elastic 使用带有指纹的 Elasticsearch 签名密钥(PGP 密钥D88E42B4,可从https://pgp.mit.edu获得)对所有的包进行签名:

4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4

下载并安装公共签名密钥:

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

在 /etc/yum.repos.d/ 目录中为基于 RedHat 的发行版创建两个名为 elasticsearch.repo 及 elastic.repo的文件,或在 /etc/zypp/repos.d/ 目录中为基于 OpenSuSE 的发行版创建一个文件,其中包含:

elasticsearch.repo

[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

elastic.repo (在 es2 及 es3 上可不创建)

[elastic-8.x]
name=Elastic repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
[root@es1 yum.repos.d]# pwd
/etc/yum.repos.d
[root@es1 yum.repos.d]# cat elastic.repo 
[elastic-8.x]
name=Elastic repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

我们接下来使用如下的命令来安装 Elasticsearch:

sudo yum install --enablerepo=elasticsearch elasticsearch

%title插图%num

%title插图%num%title插图%num

在安装的过程中,它会显示 elastic 超级用户的密码。我们可以把这个密码记下来。

我们接下来配置 CentOS 启动后,自动启动 Elasticsearch 服务。打入如下的命令:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

我们为 es2 及 es3 做同样的操作。

等我们把 Elasticsearch 在所有的机器上安装好以后,我们在第一个机器 es1 上安装 Kibana:

yum install kibana

同样,我们需要需要运行如下命令来使得 Kibana 在机器重新启动时自动运行:

systemctl daemon-reload
systemctl enable kibana

至此,我们的安装步骤已经完成。我们接下来需要来进行一些配置。

配置第一个节点

我们先对 es1 机器进行配置。我们通过如下的命令可以查看当前机器的 IP 地址:

ip addr

或者如下的命令:

ifconfig | grep inet
[root@es1 yum.repos.d]# ifconfig | grep inet
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::5054:ff:fe4d:77d3  prefixlen 64  scopeid 0x20
        inet 172.42.42.10  netmask 255.255.255.0  broadcast 172.42.42.255
        inet6 fe80::a00:27ff:fede:461f  prefixlen 64  scopeid 0x20
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10

我们接下来配置 elasticsearch.yml 文件:

/etc/elasticsearch/elasticsearch.yml

我们首先修改 cluster.name 为我们喜欢的名称:

%title插图%num

%title插图%num

%title插图%num

%title插图%num

保存好文件,我们接着使用如下的命令来启动 Elasticsearch:

systemctl start elasticsearch

我们可以通过如下的方法来查看 elasticsearch 服务的日志:

journalctl -u elasticsearch
[root@es1 elasticsearch]# journalctl -u elasticsearch
-- Logs begin at Tue 2022-12-13 01:04:47 UTC, end at Tue 2022-12-13 02:51:23 UTC. --
Dec 13 02:50:39 es1.example.com systemd[1]: Starting Elasticsearch...
Dec 13 02:51:23 es1.example.com systemd[1]: Started Elasticsearch.

如果我们想看更详细的日志,我们可以使用如下的命令:

tail -f /var/log/elasticsearch/liuxg.log

记得这里的 liuxg 是我的 cluster 的名字。在上面的 elasticsearch.yml 中定义的。如果在任何时候我们修改 elasticsearch.yml 文件,那么我们需要使用如下的命令来重新启动 elasticsearch:

systemctl  restart elasticsearch.service

一旦 Elasticsearch 被成功地启动,我们可以在 es1 的 terminal 中打入如下的命令来查看:

 curl -k -u elastic:xW4lz=-LeMspuQpTX0jz https://es1:9200
[root@es1 vagrant]# curl -k -u elastic:xW4lz=-LeMspuQpTX0jz https://es1:9200
{
  "name" : "node-1",
  "cluster_name" : "liuxg",
  "cluster_uuid" : "lMsFhaLaSaKpd_hTCOJpVg",
  "version" : {
    "number" : "8.5.3",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "4ed5ee9afac63de92ec98f404ccbed7d3ba9584e",
    "build_date" : "2022-12-05T18:22:22.226119656Z",
    "build_snapshot" : false,
    "lucene_version" : "9.4.2",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

上面显示 elasticsearch 正常。我们也可以使用如下的命令来查看有几个 nodes:

curl -k -u elastic:xW4lz=-LeMspuQpTX0jz https://es1:9200/_cat/nodes
[root@es1 vagrant]# curl -k -u elastic:xW4lz=-LeMspuQpTX0jz https://es1:9200/_cat/nodes
172.42.42.10 19 94 1 0.00 0.03 0.05 cdfhilmrstw * node-1

上面的命令显示它只有一个节点。名称为 node-1。

我们接下来使用如下的命令来生成一个 enrollment token:

/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node
[root@es1 vagrant]# /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node
eyJ2ZXIiOiI4LjUuMyIsImFkciI6WyIxNzIuNDIuNDIuMTA6OTIwMCJdLCJmZ3IiOiJhYjY0MzI2MjE3NzVhY2NiZDk5MDEwYzgyYzg2OTcyODQwNGQyMDFiNjk5NDdjMWZlOTYxNWYwNGNhMTI1NTk0Iiwia2V5Ijoic0ctSUNZVUIzQWIyNm5TMnVCT1g6Ym45R0JRQWFRUjJHd2JHVWc0Y2xZUSJ9

我们把这个 enrollment token 拷贝下来。

配置其它的节点

我们接下来先不需要针对 es2 及 es3 的节点的 Elasticsearch 的配置文件做任何的修改。我们在它们的 teminal 中打入如下的命令:

/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token 
 /usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token eyJ2ZXIiOiI4LjUuMyIsImFkciI6WyIxNzIuNDIuNDIuMTA6OTIwMCJdLCJmZ3IiOiJhYjY0MzI2MjE3NzVhY2NiZDk5MDEwYzgyYzg2OTcyODQwNGQyMDFiNjk5NDdjMWZlOTYxNWYwNGNhMTI1NTk0Iiwia2V5Ijoic0ctSUNZVUIzQWIyNm5TMnVCT1g6Ym45R0JRQWFRUjJHd2JHVWc0Y2xZUSJ9

请用你自己的 token 替换上面的 enrollment-token 值。

[root@es2 yum.repos.d]# /usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token eyJ2ZXIiOiI4LjUuMyIsImFkciI6WyIxNzIuNDIuNDIuMTA6OTIwMCJdLCJmZtgcode3IiOiJhYjY0MzI2MjE3NzVhY2NiZDk5MDEwYzgyYzg2OTcyODQwNGQyMDFiNjk5NDdjMWZlOTYxNWYwNGNhMTI1NTk0Iiwia2V5Ijoic0ctSUNZVUIzQWIyNm5TMnVCT1g6Ym45R0JRQWFRUjJHd2JHVWc0Y2xZUSJ9

This node will be reconfigured to join an existing cluster, using the enrollment token that you provided.
This operation will overwrite the existing configuration. Specifically: 
  - Security auto configuration will be removed from elasticsearch.yml
  - The [certs] config directory will be removed
  - Security auto configuration related secure settings will be removed from the elasticsearch.keystore
Do you want to continue with the reconfiguration process [y/N]y

我们在 es2 的 terminal 中启动 elasticsearch 服务:

systemctl start elasticsearch

我们通过如下的命令来查看它的运行状态:

systemctl status elasticsearch
[root@es2 yum.repos.d]# systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-12-13 03:55:15 UTC; 26s ago
     Docs: https://www.elastic.co
 Main PID: 15827 (java)
   CGroup: /system.slice/elasticsearch.service
           ├─15827 /usr/share/elasticsearch/jdk/bin/java -Xms4m -Xmx64m -XX:+UseSeri...
           ├─15891 /usr/share/elasticsearch/jdk/bin/java -Des.networkaddress.cache.t...
           └─15911 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/...

Dec 13 03:54:20 es2.example.com systemd[1]: Starting Elasticsearch...
Dec 13 03:55:15 es2.example.com systemd[1]: Started Elasticsearch.

很显然它处于运行状态。我们在 es1 的 terminal 中打入如下的命令来查看 nodes 的情况:

 curl -k -u elastic:xW4lz=-LeMspuQpTX0jz https://es1:9200/_cat/nodes
[root@es1 vagrant]# curl -k -u elastic:xW4lz=-LeMspuQpTX0jz https://es1:9200/_cat/nodes
172.42.42.10 5 94 0 0.02 0.04 0.05 cdfhilmrstw * node-1
[root@es1 vagrant]# 

很显然,它还是一个单独的 node。那为啥新的节点 es2 没有加入到已有的集群呢?

我们需要针对 es2 上的 elasticsearch.yml 进行一些配置:

/etc/elasticsearch/elasticsearch.yml

%title插图%num

%title插图%num

修改完后,我们需要重新启动 Elasticsearch:

systemctl restart elasticsearch

使用如下的命令来查看它的运行状态:

systemctl status elasticsearch
[root@es2 yum.repos.d]# systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-12-13 04:04:20 UTC; 37s ago
     Docs: https://www.elastic.co
 Main PID: 16015 (java)
   CGroup: /system.slice/elasticsearch.service
           ├─16015 /usr/share/elasticsearch/jdk/bin/java -Xms4m -Xmx64m -XX:+UseSeri...
           ├─16079 /usr/share/elasticsearch/jdk/bin/java -Des.networkaddress.cache.t...
           └─16099 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/...

Dec 13 04:03:54 es2.example.com systemd[1]: Stopped Elasticsearch.
Dec 13 04:03:54 es2.example.com systemd[1]: Starting Elasticsearch...

我们可以在 es1 的 log 里看到如下的信息:

%title插图%num

我们再次在 es1 的 terminal 中打入如下的命令:

curl -k -u elastic:xW4lz=-LeMspuQpTX0jz https://es1:9200/_cat/nodes
[root@es1 vagrant]# curl -k -u elastic:xW4lz=-LeMspuQpTX0jz https://es1:9200/_cat/nodes
172.42.42.10 46 95 1 0.00 0.04 0.05 cdfhilmrstw * node-1
172.42.42.20 29 95 3 0.18 0.29 0.21 cdfhilmrstw - node-2

很显然,这个时候,我们看到了两个节点:node-1 及 node-2。

如法炮制,我们需要针对 es3 做同样的配置。只不过我们需要为它取另外一个名字 node-3。我们也需要把它的 IP 地址填入进去。

%title插图%num

%title插图%num

修改完毕后,重新启动 Elasticsearch:

systemctl restart elasticsearch

我们在 es1 的日志信息中可以看到如下的输出:

%title插图%num

可以看到 node-3 已经添加进入到已有的集群中了。

我们再次使用如下的命令来查看节点:

curl -k -u elastic:xW4lz=-LeMspuQpTX0jz https://es1:9200/_cat/tgcodenodes
[root@es1 vagrant]# curl -k -u elastic:xW4lz=-LeMspuQpTX0jz https://es1:9200/_cat/nodes
172.42.42.30 65 94 6 0.33 0.29 0.14 cdfhilmrstw - node-3
172.42.42.20 63 95 0 0.02 0.08 0.13 cdfhilmrstw - node-2
172.42.42.10  6 95 0 0.09 0.05 0.05 cdfhilmrstw * node-1

很显然,我们已经得到了3个节点的集群。

我们也可以在浏览器中进行访问:

%title插图%num

我们在上面的界面中打入 thisisunsafe 字母,然后我们可以看到界面:

%title插图%num

%title插图%num

我们可以看到如上所示的输出。

启动 Kibana

在上面,我们还没有启动 Kibana。为了能够让 Kibana 被外网所访问,我们需要对 Kibana 做如下的配置:

/etc/kibana/kibana.yml

%title插图%num

我们可以使用如下的命令来进行启动:

systemctl start kibana

我们使用如下的命令来查看它运行的日志信息:

journalctl -u kibana

%title插图%num

如上所示,我们可看到让我们去启动 Kibana 的链接。我们在浏览器中输入地址:http://172.42.42.10:5601/?code=203501

%title插图%num

在上面,它要求我们填入一个 enrollment token。我们可以在 es1 的 terminal 下输入如下的命令:

/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
[root@es1 elasticsearch]# /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
eyJ2ZXIiOiI4LjUuMyIsImFkciI6WyIxNzIuNDIuNDIuMTA6OTIwMCJdLCJmZ3IiOiJhYjY0MzI2MjE3NzVhY2NiZDk5MDEwYzgyYzg2OTcyODQwNGQyMDFiNjk5NDdjMWZlOTYxNWYwNGNhMTI1NTk0Iiwia2V5Ijoic21fQkNZVUIzQWIyNm5TMlpCTVc6Tm9oOGJaZGtSNmlSZGFqWXBHS2NrZyJ9

把上面的 token 拷贝下来,并粘贴到上面的输入框中。

%title插图%num

%title插图%num

在上面,我们输入超级用户 elastic 的密码:

%title插图%num

%title插图%num

这样我们就进入到 Kibana 的界面了。我也可以在 console 中查看 nodes 的情况:

%title插图%num

为 Kibana 配置安全

在上面的配置中,Kibana 的访问是以 HTTP 的形式来访问的。我们可以为 Kibana 也配置 HTTPS 的访问。首先,我们先卸载之前安装的 Kibana。然后再重新安装一遍。

yum remove kibana

我们同时确保不留下任何的之前安装的文件:

 rm -rf /etc/kibana/

我们再次安装 Kibana:

yum install kibana

我 Kibana 自动启动配置:

systemctl daemon-reload
systemctl enable kibana

我们进入到 Kibana 的安装目录中 /etc/kibana,并打入如下的命令来生成一个证书:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

%title插图%num

对生成的证书文件修改权限:

chmod 777 cert.pem
chmod 777 key.pem 
[root@es1 kibana]# pwd
/etc/kibana
[root@es1 kibana]# ls
cert.pem  key.pem  kibana.keystore  kibana.yml  node.options
[root@es1 kibana]# chmod 777 cert.pem 
[root@es1 kibana]# chmod 777 key.pem 

我们接下来需要针对 kibana.yml 文件进行配置:

/etc/kibana/kibana.yml

%title插图%num

%title插图%num

elasticsearch.hosts: ["https://172.42.42.10:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "r67=Q_o*9GhuuoEpyL*+"
server.ssl.enabled: true
server.ssl.certificate: /etc/kibana/cert.pem
server.ssl.key: /etc/kibana/key.pem
server.ssl.keyPassphrase: "123456"
elasticsearch.ssl.verificationMode: none

我们可以通过如下的命令来设置 kibana_system 密码:

/usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana_system
[root@es1 vagrant]# /usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana_system
This tool will reset the password of the [kibana_system] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]y


Password for the [kibana_system] user successfully reset.
New value: r67=Q_o*9GhuuoEpyL*+

我们使用如下的命令来启动 kibana:

systemctl start kibana

我们可以使用如下的命令来检查 kibana 的服务状态:

systemctl status kibana
[root@es1 kibana]# systemctl status kibana
● kibana.service - Kibana
   Loaded: loaded (/usr/lib/systemd/system/kibana.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-12-13 05:14:09 UTC; 49s ago
     Docs: https://www.elastic.co
 Main PID: 17285 (node)
   CGroup: /system.slice/kibana.service
           └─17285 /usr/share/kibana/bin/../node/bin/node /usr/share/kibana/bin/../s...

我们通过如下的方式来查看 Kibana 的日志:

tail -f /var/log/kibana/kibana.log

%title插图%num

我们在浏览器中来访问 Kibana:

%title插图%num

在上面的界面中打入 thisisunsafe 字母:

%title插图%num

在上面打入超级用户 elastic 的密码。你就可以进入到 Elasticsearch 了。

%title插图%num

%title插图%num

文章来源于互联网:Elasticsearch:如何在 CentOS 上创建多节点的 Elasticsearch 集群 – 8.x

相关推荐: Elasticsearch:词分析中的 Normalizer 的使用

在 Elasticstgcodeearch 的词分析中,normalizer 与 analyzer 类似,只是它们只能发出一个 token。 因此,它们没有 tokenizer,只接受可用 char filters 和 token filters 的子集。 只…