在我之前的文章 “Elasticsearch:使用 RPM 安裝包來安裝 Elastic Stack 8.x” 里,我詳細(xì)地介紹了如何使用 RPM 安裝包來安裝 Elastic Stack 8.x。在今天的文章中,我來詳細(xì)描述如何從零開始來創(chuàng)建一個(gè)含有三個(gè)節(jié)點(diǎn)的 Elasticsearch 集群。我們最終實(shí)現(xiàn)的是如下的 Elasticsearch 集群。
如上所示,我們有三臺(tái)運(yùn)行 CentOS 的機(jī)器。它們的 IP 地址分別列在上面。我們將在這些機(jī)器上部署最新的 Elastic Stack 8.5.3。
創(chuàng)建 CentOS 虛擬機(jī)
如果你已經(jīng)有自己的 CentOS 機(jī)器,那你就可以直接跳過這個(gè)部分。針對(duì)沒有 CentOS 機(jī)器的開發(fā)者來說,Vagrant 是一個(gè)不錯(cuò)的選擇。請(qǐng)參照我之前的教程 “Vagrant 入門教程” 來進(jìn)行學(xué)習(xí)。
我們首先在自己的電腦中創(chuàng)建一個(gè)目錄,并創(chuàng)建如下的一個(gè) 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
如上所示,它創(chuàng)建三個(gè) CentOS 的虛擬機(jī)。我們分別為它們?cè)O(shè)置相應(yīng)的 IP 地址。在上面,它還引用了一個(gè) bootstrap.sh 文件。它是用來幫我們安裝一下必要的包及進(jìn)行相應(yīng)的配置。它的定義如下:
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,以便機(jī)器之間能互相連接。在實(shí)際的使用中,這個(gè)并不推薦。我們需要通過 iptable 來進(jìn)行配置。另外在上面,我們?yōu)?root 用戶創(chuàng)建了一個(gè) admin 的密碼。這個(gè)在下面的命令中將會(huì)被使用。
這樣我們目錄里的文件就是:
$ pwd
/Users/liuxg/data/elk/elastic8
$ ls
Vagrantfile bootstrap.sh
我們?cè)谶@個(gè)目錄下,打入如下的命令:
?
如果你遇到上面的錯(cuò)誤信息,你可以繼續(xù)使用上面的? vagrant up 命令運(yùn)行:
?
如上所示,在更新完系統(tǒng)后,上面的錯(cuò)誤信息就不見了。我們需要為 es2 及 es3 重復(fù)這個(gè)步驟。?等全部安裝完畢后,我們可以使用如下的命令來查看:
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`.
上面顯示我們的三個(gè)虛擬機(jī)都已經(jīng)運(yùn)行起來了。我們可以在 virtualbox 里進(jìn)行查看:
?
上面的安裝并沒有幫我們安裝 Virtualbox Guest Additions。我接著做如下的操作:
vagrant reload
?
它會(huì)在 reload 的過程中自動(dòng)幫我們安裝好 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。我們也可以同樣測(cè)試一下 es2 及 es3。
這樣,我們的 CentOS 的安裝就已經(jīng)完成了。
安裝 Elastic Stack
禁用 firewalld
我們可以使用如下的命令來登錄已經(jīng)創(chuàng)建好的 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
在上面的一步中,我們?cè)?bootstrap.sh 禁止了 firewall 的使用。針對(duì)非虛擬機(jī)的開發(fā)者來說,你可以登錄每個(gè) CentOS 機(jī)器后,我們可以通過如下的命令來檢查 firewalld 的狀態(tài):
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 的狀態(tài),這個(gè)是因?yàn)槲覀冊(cè)?bootstrap.sh 里已經(jīng)做過了。如果你的是 active 的狀態(tài),那么你可以使用如下的命令來停止 firewalld?
systemctl stop firewalld
systemctl disable firewalld
在上面,我們禁用 firewalld。我們可以再次使用:
systemctl status firewalld
來檢查狀態(tài)。我們按照上面的步驟對(duì)三個(gè) CenOS 做同樣的操作,確保 firewalld 被禁用。
導(dǎo)入 Elasticsearch GPG key
為了方便安裝,我們使用 root 用戶來進(jìn)行操作。我們打入命令 su:
[vagrant@es1 ~]$ su
Password:
[root@es1 vagrant]#
在上面我們輸入密碼 admin 即可。這個(gè)密碼是在 bootstrap.sh 里指定的。
Elastic 使用帶有指紋的 Elasticsearch 簽名密鑰(PGP 密鑰?D88E42B4,可從?https://pgp.mit.edu?獲得)對(duì)所有的包進(jìn)行簽名:
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
下載并安裝公共簽名密鑰:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
在 /etc/yum.repos.d/ 目錄中為基于 RedHat 的發(fā)行版創(chuàng)建兩個(gè)名為 elasticsearch.repo 及 elastic.repo?的文件,或在 /etc/zypp/repos.d/ 目錄中為基于 OpenSuSE 的發(fā)行版創(chuàng)建一個(gè)文件,其中包含:
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 上可不創(chuàng)建)
[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
?
?在安裝的過程中,它會(huì)顯示 elastic 超級(jí)用戶的密碼。我們可以把這個(gè)密碼記下來。
?我們接下來配置 CentOS 啟動(dòng)后,自動(dòng)啟動(dòng) Elasticsearch 服務(wù)。打入如下的命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
我們?yōu)?es2 及 es3 做同樣的操作。
等我們把 Elasticsearch 在所有的機(jī)器上安裝好以后,我們?cè)诘谝粋€(gè)機(jī)器 es1 上安裝 Kibana:
yum install kibana
同樣,我們需要需要運(yùn)行如下命令來使得 Kibana 在機(jī)器重新啟動(dòng)時(shí)自動(dòng)運(yùn)行:
systemctl daemon-reload
systemctl enable kibana
至此,我們的安裝步驟已經(jīng)完成。我們接下來需要來進(jìn)行一些配置。
配置第一個(gè)節(jié)點(diǎn)
我們先對(duì) es1 機(jī)器進(jìn)行配置。我們通過如下的命令可以查看當(dāng)前機(jī)器的 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 為我們喜歡的名稱:
?
保存好文件,我們接著使用如下的命令來啟動(dòng) Elasticsearch:
systemctl start elasticsearch
我們可以通過如下的方法來查看 elasticsearch 服務(wù)的日志:
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.
如果我們想看更詳細(xì)的日志,我們可以使用如下的命令:
tail -f /var/log/elasticsearch/liuxg.log
記得這里的 liuxg 是我的 cluster 的名字。在上面的 elasticsearch.yml 中定義的。如果在任何時(shí)候我們修改 elasticsearch.yml 文件,那么我們需要使用如下的命令來重新啟動(dòng) elasticsearch:
systemctl restart elasticsearch.service
一旦 Elasticsearch 被成功地啟動(dòng),我們可以在 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 正常。我們也可以使用如下的命令來查看有幾個(gè) 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
上面的命令顯示它只有一個(gè)節(jié)點(diǎn)。名稱為 node-1。
我們接下來使用如下的命令來生成一個(gè) 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
我們把這個(gè) enrollment token 拷貝下來。
配置其它的節(jié)點(diǎn)
我們接下來先不需要針對(duì) es2 及 es3 的節(jié)點(diǎn)的 Elasticsearch 的配置文件做任何的修改。我們?cè)谒鼈兊?teminal 中打入如下的命令:
/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <enrollment-token>
/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token eyJ2ZXIiOiI4LjUuMyIsImFkciI6WyIxNzIuNDIuNDIuMTA6OTIwMCJdLCJmZ3IiOiJhYjY0MzI2MjE3NzVhY2NiZDk5MDEwYzgyYzg2OTcyODQwNGQyMDFiNjk5NDdjMWZlOTYxNWYwNGNhMTI1NTk0Iiwia2V5Ijoic0ctSUNZVUIzQWIyNm5TMnVCT1g6Ym45R0JRQWFRUjJHd2JHVWc0Y2xZUSJ9
請(qǐng)用你自己的 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
我們?cè)?es2 的 terminal 中啟動(dòng) elasticsearch 服務(wù):
systemctl start elasticsearch
我們通過如下的命令來查看它的運(yùn)行狀態(tài):
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.
很顯然它處于運(yùn)行狀態(tài)。我們?cè)?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]#
很顯然,它還是一個(gè)單獨(dú)的 node。那為啥新的節(jié)點(diǎn) es2 沒有加入到已有的集群呢?
我們需要針對(duì) es2 上的 elasticsearch.yml 進(jìn)行一些配置:
/etc/elasticsearch/elasticsearch.yml
?
修改完后,我們需要重新啟動(dòng) Elasticsearch:
systemctl restart elasticsearch
使用如下的命令來查看它的運(yùn)行狀態(tài):
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 里看到如下的信息:
我們?cè)俅卧?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
?很顯然,這個(gè)時(shí)候,我們看到了兩個(gè)節(jié)點(diǎn):node-1 及 node-2。
如法炮制,我們需要針對(duì) es3 做同樣的配置。只不過我們需要為它取另外一個(gè)名字 node-3。我們也需要把它的 IP 地址填入進(jìn)去。
?
修改完畢后,重新啟動(dòng) Elasticsearch:
systemctl restart elasticsearch
我們?cè)?es1 的日志信息中可以看到如下的輸出:
可以看到 node-3 已經(jīng)添加進(jìn)入到已有的集群中了。
我們?cè)俅问褂萌缦碌拿顏聿榭垂?jié)點(diǎn):
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
?很顯然,我們已經(jīng)得到了3個(gè)節(jié)點(diǎn)的集群。
我們也可以在瀏覽器中進(jìn)行訪問:
我們?cè)谏厦娴慕缑嬷写蛉?thisisunsafe 字母,然后我們可以看到界面:
?
?
我們可以看到如上所示的輸出。?
啟動(dòng) Kibana
在上面,我們還沒有啟動(dòng) Kibana。為了能夠讓 Kibana 被外網(wǎng)所訪問,我們需要對(duì) Kibana 做如下的配置:
/etc/kibana/kibana.yml
?我們可以使用如下的命令來進(jìn)行啟動(dòng):
systemctl start kibana
我們使用如下的命令來查看它運(yùn)行的日志信息:
journalctl -u kibana
如上所示,我們可看到讓我們?nèi)?dòng) Kibana 的鏈接。我們?cè)跒g覽器中輸入地址:http://172.42.42.10:5601/?code=203501?
在上面,它要求我們填入一個(gè) 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 拷貝下來,并粘貼到上面的輸入框中。
?
在上面,我們輸入超級(jí)用戶 elastic 的密碼:
?
這樣我們就進(jìn)入到 Kibana 的界面了。我也可以在 console 中查看 nodes 的情況:
?
為 Kibana 配置安全
在上面的配置中,Kibana 的訪問是以 HTTP 的形式來訪問的。我們可以為 Kibana 也配置 HTTPS 的訪問。首先,我們先卸載之前安裝的 Kibana。然后再重新安裝一遍。
yum remove kibana
我們同時(shí)確保不留下任何的之前安裝的文件:
rm -rf /etc/kibana/
我們?cè)俅伟惭b Kibana:
yum install kibana
我 Kibana 自動(dòng)啟動(dòng)配置:
systemctl daemon-reload
systemctl enable kibana
我們進(jìn)入到 Kibana 的安裝目錄中 /etc/kibana,并打入如下的命令來生成一個(gè)證書:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
對(duì)生成的證書文件修改權(quán)限:
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
?我們接下來需要針對(duì) kibana.yml 文件進(jìn)行配置:
/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
我們可以通過如下的命令來設(shè)置 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*+
我們使用如下的命令來啟動(dòng) kibana:
systemctl start kibana
我們可以使用如下的命令來檢查 kibana 的服務(wù)狀態(tài):
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
我們?cè)跒g覽器中來訪問 Kibana:
?
在上面的界面中打入 thisisunsafe 字母:
?
在上面打入超級(jí)用戶 elastic 的密碼。你就可以進(jìn)入到 Elasticsearch 了。
文章來源:http://www.zghlxwxcb.cn/news/detail-416560.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-416560.html
到了這里,關(guān)于Elasticsearch:如何在 CentOS 上創(chuàng)建多節(jié)點(diǎn)的 Elasticsearch 集群 - 8.x的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!