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

news2024/11/28 12:38:53

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

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

创建 CentOS 虚拟机

如果你已经有自己的 CentOS 机器,那你就可以直接跳过这个部分。针对没有 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 <<EOF
# Generated by Vagrant
alias vi='vim'
alias sudo='sudo '
export EDITOR=vim
export TERM=xterm
# Generated by Vagrant
EOF

echo "colorscheme elflord" >> /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<<EOF
172.42.42.10 es1.example.com es1
172.42.42.20 es2.example.com es2
172.42.42.30 es3.example.com es3
EOF

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

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

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

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

 

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

 

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

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 里进行查看:

 

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

vagrant reload

 

它会在 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

 

 在安装的过程中,它会显示 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<link>
        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<link>
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>

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

/etc/elasticsearch/elasticsearch.yml

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

 

保存好文件,我们接着使用如下的命令来启动 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 <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 eyJ2ZXIiOiI4LjUuMyIsImFkciI6WyIxNzIuNDIuNDIuMTA6OTIwMCJdLCJmZ3IiOiJhYjY0MzI2MjE3NzVhY2NiZDk5MDEwYzgyYzg2OTcyODQwNGQyMDFiNjk5NDdjMWZlOTYxNWYwNGNhMTI1NTk0Iiwia2V5Ijoic0ctSUNZVUIzQWIyNm5TMnVCT1g6Ym45R0JRQWFRUjJHd2JHVWc0Y2xZUSJ9

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

 

修改完后,我们需要重新启动 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 里看到如下的信息:

我们再次在 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 地址填入进去。

 

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

systemctl restart elasticsearch

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

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

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

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.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个节点的集群。

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

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

 

 

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

启动 Kibana

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

/etc/kibana/kibana.yml

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

systemctl start kibana

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

journalctl -u kibana

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

在上面,它要求我们填入一个 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 拷贝下来,并粘贴到上面的输入框中。

 

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

 

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

 

为 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

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

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 

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

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

 

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

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/85521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python文本处理尝试

Python文本处理尝试 最近打算看CSAPP&#xff0c;GitHub上看到有英语字幕ass源文件&#xff0c;想把字幕提取出来提高学习效率&#xff0c;先把ass文件转成txt文件&#xff0c;发现是这样&#x1f447; 都在Dialogue的后面&#xff0c;打算尝试提取一下 不太熟练&#xff0c;下…

解决 Eclipse 中不见 Maven 问题

在 Windows -> Preferences 不见 Maven 和 File -> New -> Project 均不见 Maven&#xff0c;但 Help -> Eclipse Marketplace -> installed 却可见已经安装&#xff0c;网上的各种方法都不能解决。 解决步骤&#xff1a; 关闭 Eclipse&#xff1b;清空目录 C:…

肿瘤网络平台

肿瘤网络平台是为广大肿瘤医生量身定做的学习&#xff0c;交流功能健全的网络平台&#xff0c;平台汇聚了会议、病例、专家讲堂等内容&#xff0c;广大的肿瘤医生可以随时分享、讨论专业知识。 一、平台价值 让医生 了解肿瘤前沿进展 提高业务水平 丰富临床经验 二、平台架构…

如何挖掘外贸客户需求

是客户的衣食父母。 俗话说“知己知彼&#xff0c;百战不殆”&#xff0c;外贸业务员都想把自己的产品推销给客户。除了知道自己产品的特点&#xff0c;还应该知道客户的需求是什么。因此&#xff0c;前期的客户调研工作非常重要。 不是所有的客户都是意向或潜在客户。只有当…

小程序canvas 缩放/拖动/还原/封装和实例--开箱即用

小程序canvas 缩放/拖动/还原/封装和实例一、预览二、使用2.1 创建和配置方法三、源码3.1 实例组件3.2 核心类一、预览 之前写过web端的canvas 缩放/拖动/还原/封装和实例。最近小程序也需要用到&#xff0c;但凡是涉及小程序canvas还是比较多坑的&#xff0c;而且难用多了&am…

[附源码]Node.js计算机毕业设计订餐系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

Linux中如何查看ntp是否同步?

Linux中如何查看ntp是否同步?在Linux中&#xff0c;查看ntp是否同步的方法主要有三种&#xff0c;分别是&#xff1a;ntpd命令、ntpstat命令、timedatectl命令&#xff0c;接下来是详细的内容介绍。  NTP用于将计算机客户或服务器的时间同步到另一服务器或参考时钟源。它使用…

Java基于微信小程序的计算机等级考试考练 毕业设计

网络的广泛应用给生活带来了十分的便利。所以把计算机等级考试考练与现在网络相结合&#xff0c;利用java技术建设计算机等级考试考练APP&#xff0c;实现计算机等级考试考练的信息化。则对于进一步提高计算机等级考试考练发展&#xff0c;丰富计算机等级考试考练经验能起到不少…

[附源码]Python计算机毕业设计电商后台系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

web前端期末大作业——HTML+CSS+JavaScript仿王者荣耀游戏网站设计与制作

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

基于kmeans算法的数据聚类matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 聚类算法也许是机器学习中“新算法”出现最多、最快的领域&#xff0c;一个重要的原因是聚类不存在客观标准&#xff0c;给定数据集总能从某个角度找到以往算法未覆盖的某种标准从而设计出新算法…

VR工厂:助力工厂数字化升级

近年来&#xff0c;疫情全球常态化和数字化进程加速&#xff0c;给传统制造业工厂在生产制作、业务销售上带来巨大考验。随着物联网、云计算、大数据和5G等信息技术的发展&#xff0c;制造工厂面临着第四次工业革命。2021年&#xff0c;国家发布“十四五规划”&#xff0c;着重…

Geometry空间几何数据的处理应用(全)

学前小故事 学前必备基础知识 WTK格式的Geomotry GeoJSON格式的Geomotry JTS(Java Topology Suite) Java拓扑套件 JTS(Java Topology Suite) 可视化界面 泰森多边形 向空间数据库插入数据 栅格 GDAL GeoTools QGIS 学前小故事 项目需求是跟用户当前位置判断是否在…

基于Android的校园新闻APP

功能需求&#xff1a; 客户端&#xff1a; 1&#xff1a;登录注册&#xff1a;用户可以通过自己的信息进行账号的注册和登录 2&#xff1a;校园新闻&#xff1a;本模块主要是介绍在本校的网站上面关于校园新闻的介绍&#xff0c;而本部分所针对的对象是所有人&#xff08;包括了…

数字孪生赋能农业与农村的背景

数字乡村是伴随网络化、信息化和数字化在农业农村经济社会发展中的应用&#xff0c;以及农民现代信息技能的提高而内生的农业农村现代化发展和转型进程&#xff0c;既是乡村振兴的战略方向&#xff0c;也是数字孪生赋能、推动构建数字中国的重要内容。 数字孪生赋能农业与农村的…

Document Dewarping with Control Points学习笔记

1 核心思想 论文&#xff1a;Document Dewarping with Control Points 代码&#xff1a;https://github.com/gwxie/document-dewarping-with-control-points 一种通过估计控制点和参考点来纠正失真文档图像的简单而有效的方法。 控制点和参考点由相同数量的顶点组成&#xff0…

MIT张锋教授的Science论文,成功转化出一家新公司,融资2亿美元

基因治疗或基因疗法&#xff08;Gene therapy&#xff09;是利用分子生物学方法将目的基因导入患者体内&#xff0c;使之达成目的基因产物&#xff0c;从而使疾病得到治疗。作为疾病治疗的新手段&#xff0c;基因治疗已有一些成功的应用&#xff0c;并且科学突破将继续推动基因…

全栈Jmeter接口测试(八):jmeter接口自动化测试操作流程,计数器,定时器

Jmeter(16)&#xff1a;jmeter接口自动化测试操作流程 在企业使用jmeter开展实际的接口自动化测试工具&#xff0c;建议按如下操作流程&#xff0c; 可以使整个接口测试过程更规范&#xff0c;更有效。 接口自动化的流程&#xff1a; 1、获取到接口文档&#xff1a;swagger、…

用openCV在图片上绘画标记

1.在图片上画图&#xff08;直线&#xff0c;矩形&#xff0c;圆形&#xff0c;多边形&#xff09; import numpy as np import cv2img cv2.imread(watch.jpg,cv2.IMREAD_COLOR)#给图片加线#参数分别表示&#xff0c;起始和终止点的坐标…

Git---本地仓库有多条commit,如何push某一条commit到远端

默认情况下&#xff0c;git push会推送暂存区所有提交&#xff08;也即HEAD及其之前的提交&#xff09;&#xff0c;使用下面的命令可以改变此默认行为&#xff1a; $ git push <remotename> <commit SHA>:<remotebranchname>举例如下&#xff1a; git pus…