当前位置: 首页 > news >正文

Elasticsearch:如何使用自定义的证书安装 Elastic Stack 8.x

在我之前的文章 “如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch”,我详细描述了如何在各个平台中安装 Elastic Stack 8.x。在其中的文章中,我们大多采用默认的证书来安装 Elasticsearch。在今天的文章中,我们用自己创建的证书一步一步地来安装 Elastic Stack 8.x。我们可以参考之前的文章:

  • Security:如何安装 Elastic SIEM 和 EDR

  • Elasticsearch: 使用 Debian 安装包来安装 Elasticsearch 8.x

  • Elasticsearch:使用 Docker compose 来一键部署 Elastic Stack 8.x

我们将在 Ubuntu 20.04 上来进行展示。我们将安装最新的 Elastic Stack 8.7.1。

如何使用自定义的证书安装 Elastic Stack 8.x

安装 Elasticsearch

我们首先在 Ubuntu 系统上参照文章 “Elasticsearch: 使用 Debian 安装包来安装 Elasticsearch 8.x” 来安装 Elasticsearch。当然,我们可以使用默认的证书来使得 Elasticsearch 顺利运行,这个是没有任何问题的。但是,在实际的部署中,有很多开发者希望使用自己的证书来进行安装,一方面可控,另一方可以延续之前的 7.x 的安装证书。

在我们运行如下的命令之后:

sudo apt-get update && sudo apt-get install elasticsearch
parallels@liuxg:~$ sudo apt-get update && sudo apt-get install elasticsearch
Hit:1 https://artifacts.elastic.co/packages/8.x/apt stable InRelease
Hit:2 https://download.docker.com/linux/ubuntu focal InRelease            
Hit:3 http://ports.ubuntu.com/ubuntu-ports focal InRelease                
Get:4 http://ports.ubuntu.com/ubuntu-ports focal-updates InRelease [114 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports focal-backports InRelease [108 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease [114 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 DEP-11 Metadata [275 kB]
Get:8 http://ports.ubuntu.com/ubuntu-ports focal-updates/universe arm64 DEP-11 Metadata [408 kB]
Get:9 http://ports.ubuntu.com/ubuntu-ports focal-backports/main arm64 DEP-11 Metadata [5,236 B]
Get:10 http://ports.ubuntu.com/ubuntu-ports focal-backports/universe arm64 DEP-11 Metadata [30.5 kB]
Get:11 http://ports.ubuntu.com/ubuntu-ports focal-security/main arm64 DEP-11 Metadata [59.8 kB]
Get:12 http://ports.ubuntu.com/ubuntu-ports focal-security/universe arm64 DEP-11 Metadata [95.0 kB]
Fetched 1,210 kB in 5s (246 kB/s)              
Reading package lists... Done
N: Skipping acquire of configured file 'stable/binary-aarch64/Packages' as repository 'https://download.docker.com/linux/ubuntu focal InRelease' doesn't support architecture 'aarch64'
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:elasticsearch
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 397 MB of archives.
After this operation, 660 MB of additional disk space will be used.
Get:1 https://artifacts.elastic.co/packages/8.x/apt stable/main arm64 elasticsearch arm64 8.7.1 [397 MB]
Fetched 397 MB in 1min 24s (4,728 kB/s)                                                                                
Selecting previously unselected package elasticsearch.
(Reading database ... 230412 files and directories currently installed.)
Preparing to unpack .../elasticsearch_8.7.1_arm64.deb ...
Creating elasticsearch group... OK
Creating elasticsearch user... OK
Unpacking elasticsearch (8.7.1) ...
Setting up elasticsearch (8.7.1) ...
--------------------------- Security autoconfiguration information ------------------------------Authentication and authorization are enabled.
TLS for the transport and HTTP layers is enabled and configured.The generated password for the elastic built-in superuser is : xsYCh*5qOz7hSpkH-fHCIf this node should join an existing cluster, you can reconfigure this with
'/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>'
after creating an enrollment token on your existing cluster.You can complete the following actions at any time:Reset the password of the elastic built-in superuser with 
'/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'.Generate an enrollment token for Kibana instances with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.Generate an enrollment token for Elasticsearch nodes with 
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'.-------------------------------------------------------------------------------------------------
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemdsudo systemctl daemon-reloadsudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executingsudo systemctl start elasticsearch.service

上面显示了 elastic 超级用户的密码已经 kibana 的 enrollment token 等信息。如果这个时候我们直接启动 elasticsearch 服务,那么它将顺利启动并运行。假如你之前已经生成过自己的证书,那么这个时候,你可以直接进行配置 config/elasticsearch.yml 文件即可。如果你没有,请阅读下一节来创建自己的证书。

创建证书

创建根证书

我们使用如下的命令来生成根证书:

/usr/share/elasticsearch/bin/elasticsearch-certutil ca --silent --pem -out config/certs/ca.zip

我们去 Elasticsearch 的配置文件目录进行查看:

root@ubuntu2004:/usr/share/elasticsearch/config/certs# pwd
/usr/share/elasticsearch/config/certs
root@ubuntu2004:/usr/share/elasticsearch/config/certs# ls
ca.zip

我们接下来解压缩上面得到的 ca.zip 文件:

root@ubuntu2004:/usr/share/elasticsearch# pwd
/usr/share/elasticsearch
root@ubuntu2004:/usr/share/elasticsearch# unzip config/certs/ca.zip -d config/certs
Archive:  config/certs/ca.zipcreating: config/certs/ca/inflating: config/certs/ca/ca.crt  inflating: config/certs/ca/ca.key  

上面显示,ca.zip 含有两个文件 ca.crt 及 ca.key。

为各个 节点生成证书文件

我们在 /usr/share/elasticsearch/config/certs 目录底下创建一个 instances.yml 文件,它将包含我们要使用 SSL 保护的不同节点的实例。就我而言,我的机器的情况如下:

root@ubuntu2004:/usr/share/elasticsearch# ifconfig | grep inetinet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255inet 192.168.0.8  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::d246:4880:928b:f508  prefixlen 64  scopeid 0x20<link>inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>
root@ubuntu2004:/usr/share/elasticsearch# hostname
ubuntu2004

如上所示,我当前的机器的 IP 地址为 192.168.0.8,而我的 hostname 是 ubuntu2004。我们甚至可以在 /etc/hosts 中添加如下的项:

127.0.0.1 localhost
192.168.0.8 parallels
192.168.0.8 ubuntu2004

这样当我们 ping ubuntu2004 时,它的响应是:

ping ubuntu2004
PING ubuntu2004 (192.168.0.8) 56(84) bytes of data.
64 bytes from parallels (192.168.0.8): icmp_seq=1 ttl=64 time=0.112 ms
64 bytes from parallels (192.168.0.8): icmp_seq=2 ttl=64 time=0.250 ms

/usr/share/elasticsearch/config/certs/instances.yml

instances:- name: elasticsearch1dns:- localhost- ubuntu2004ip:- "192.168.0.8"- name: elasticsearch2dns:- localhost- ubuntu2204ip:- "192.168.0.9"- name: elasticsearch3dns:- localhost- macip:- "192.168.0.3"- name: "kibana"ip:- "192.168.0.8"

在上面,我们列举了三个节点的 Elasticsearch。根据你实际的使用情况,你可以添加或减少。在本文的实例中,我将创建一个单节点的 IP 地址为 192.168.0.8 的 Elasticsearch 集群。我们使用如下的命令:

/usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key
root@ubuntu2004:/usr/share/elasticsearch# pwd
/usr/share/elasticsearch
root@ubuntu2004:/usr/share/elasticsearch# ls config/certs/
ca  ca.zip  instances.yml
root@ubuntu2004:/usr/share/elasticsearch# /usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key
root@ubuntu2004:/usr/share/elasticsearch# ls config/certs
ca  ca.zip  certs.zip  instances.yml

从上面,我们可以看出来它生成了一个叫做 certs.zip 的文件。

我们接下来使用如下的命令来解压缩上面得到的 certs.zip 文件:

root@ubuntu2004:/usr/share/elasticsearch# pwd
/usr/share/elasticsearch
root@ubuntu2004:/usr/share/elasticsearch# ls config/certs/
ca  ca.zip  instances.yml
root@ubuntu2004:/usr/share/elasticsearch# /usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key
root@ubuntu2004:/usr/share/elasticsearch# ls config/certs
ca  ca.zip  certs.zip  instances.yml
root@ubuntu2004:/usr/share/elasticsearch# unzip config/certs/certs.zip -d config/certs
Archive:  config/certs/certs.zipcreating: config/certs/elasticsearch1/inflating: config/certs/elasticsearch1/elasticsearch1.crt  inflating: config/certs/elasticsearch1/elasticsearch1.key  creating: config/certs/elasticsearch2/inflating: config/certs/elasticsearch2/elasticsearch2.crt  inflating: config/certs/elasticsearch2/elasticsearch2.key  creating: config/certs/elasticsearch3/inflating: config/certs/elasticsearch3/elasticsearch3.crt  inflating: config/certs/elasticsearch3/elasticsearch3.key  creating: config/certs/kibana/inflating: config/certs/kibana/kibana.crt  inflating: config/certs/kibana/kibana.key  

如上所示,我们可以看到所有生成的证书文件:

root@ubuntu2004:/usr/share/elasticsearch# tree -L 4 config/
config/
└── certs├── ca│   ├── ca.crt│   └── ca.key├── ca.zip├── certs.zip├── elasticsearch1│   ├── elasticsearch1.crt│   └── elasticsearch1.key├── elasticsearch2│   ├── elasticsearch2.crt│   └── elasticsearch2.key├── elasticsearch3│   ├── elasticsearch3.crt│   └── elasticsearch3.key├── instances.yml└── kibana├── kibana.crt└── kibana.key

我们接下来把上面生成的证书拷贝到 /etc/elasticsearch/certs 下面去。

root@ubuntu2004:/usr/share/elasticsearch# pwd
/usr/share/elasticsearch
root@ubuntu2004:/usr/share/elasticsearch# cd config/certs/
root@ubuntu2004:/usr/share/elasticsearch/config/certs# ls
ca  ca.zip  certs.zip  elasticsearch1  elasticsearch2  elasticsearch3  instances.yml  kibana
root@ubuntu2004:/usr/share/elasticsearch/config/certs# cp -R ca /etc/elasticsearch/certs/ 
root@ubuntu2004:/usr/share/elasticsearch/config/certs# cp -R elasticsearch1 /etc/elasticsearch/certs/ 

这样在 /etc/elasticsearch/certs 下的文件如下:

root@ubuntu2004:/etc/elasticsearch/certs# ls
ca  elasticsearch1  http_ca.crt  http.p12  transport.p12
root@ubuntu2004:/etc/elasticsearch/certs# tree -L 2
.
├── ca
│   ├── ca.crt
│   └── ca.key
├── elasticsearch1
│   ├── elasticsearch1.crt
│   └── elasticsearch1.key
├── http_ca.crt
├── http.p12
└── transport.p12

请注意上面的 http_ca.crt,http.p12 及 transport.p12 是安装时默认生成的证书文件。

我们接下来修改证书文件的权限:

chown -R root:elasticsearch ca
chown -R root:elasticsearch elasticsearch1/
root@ubuntu2004:/etc/elasticsearch# cd certs
root@ubuntu2004:/etc/elasticsearch/certs# ls -alh
total 40K
drwxr-x--- 4 root elasticsearch 4.0K May 12 17:35 .
drwxr-s--- 4 root elasticsearch 4.0K May 12 17:40 ..
drwxr-xr-x 2 root root          4.0K May 12 17:35 ca
drwxr-xr-x 2 root root          4.0K May 12 17:35 elasticsearch1
-rw-rw---- 1 root elasticsearch 1.9K May 12 16:12 http_ca.crt
-rw-rw---- 1 root elasticsearch 9.8K May 12 16:12 http.p12
-rw-rw---- 1 root elasticsearch 5.7K May 12 16:12 transport.p12
root@ubuntu2004:/etc/elasticsearch/certs# chown -R root:elasticsearch ca
root@ubuntu2004:/etc/elasticsearch/certs# chown -R root:elasticsearch elasticsearch1/
root@ubuntu2004:/etc/elasticsearch/certs# ls -alh
total 40K
drwxr-x--- 4 root elasticsearch 4.0K May 12 17:35 .
drwxr-s--- 4 root elasticsearch 4.0K May 12 17:40 ..
drwxr-xr-x 2 root elasticsearch 4.0K May 12 17:35 ca
drwxr-xr-x 2 root elasticsearch 4.0K May 12 17:35 elasticsearch1
-rw-rw---- 1 root elasticsearch 1.9K May 12 16:12 http_ca.crt
-rw-rw---- 1 root elasticsearch 9.8K May 12 16:12 http.p12
-rw-rw---- 1 root elasticsearch 5.7K May 12 16:12 transport.p12
root@ubuntu2004:/etc/elasticsearch/certs# ls -alh ca
total 16K
drwxr-xr-x 2 root elasticsearch 4.0K May 12 17:35 .
drwxr-x--- 4 root elasticsearch 4.0K May 12 17:35 ..
-rw-r--r-- 1 root elasticsearch 1.2K May 12 17:35 ca.crt
-rw-r--r-- 1 root elasticsearch 1.7K May 12 17:35 ca.key

配置 Elasticsearch 节点

在上面我们已经生成了 Elasticsearch 及 Kibana 的证书文件。我们接下来使用上面的文件来对 Elasticsearch 进行配置:

/etc/elasticsearch/elasticsearch.yml

cluster.name: es-demo
network.host: 192.168.0.8
http.port: 9200# Enable security features
xpack.security.enabled: truexpack.security.enrollment.enabled: true# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:enabled: truekey: /etc/elasticsearch/certs/elasticsearch1/elasticsearch1.keycertificate: /etc/elasticsearch/certs/elasticsearch1/elasticsearch1.crtcertificate_authorities: /etc/elasticsearch/certs/ca/ca.crtverification_mode: certificate# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:enabled: truekey: /etc/elasticsearch/certs/elasticsearch1/elasticsearch1.keycertificate: /etc/elasticsearch/certs/elasticsearch1/elasticsearch1.crtcertificate_authorities: /etc/elasticsearch/certs/ca/ca.crtverification_mode: certificate

我们需要做如上的配置。

启动 Elasticsearch

我们使用如下的命令来启动 elasticsearch 服务:

root@ubuntu2004:~# service elasticsearch status
● elasticsearch.service - ElasticsearchLoaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: https://www.elastic.co
root@ubuntu2004:~# service elasticsearch start
root@ubuntu2004:~# service elasticsearch status
● elasticsearch.service - ElasticsearchLoaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)Active: active (running) since Fri 2023-05-12 17:59:43 CST; 2s agoDocs: https://www.elastic.coMain PID: 29755 (java)Tasks: 79 (limit: 9379)Memory: 4.2GCGroup: /system.slice/elasticsearch.service├─29755 /usr/share/elasticsearch/jdk/bin/java -Xms4m -Xmx64m -XX:+UseSerialGC -Dcli.name=server -Dcli.scri>├─29814 /usr/share/elasticsearch/jdk/bin/java -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.n>└─29840 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-aarch64/bin/controllerMay 12 17:59:34 ubuntu2004 systemd[1]: Starting Elasticsearch...
May 12 17:59:43 ubuntu2004 systemd[1]: Started Elasticsearch.

我们可以看到 elasticsearch 服务已经启动。我们可以通过如下的命令来查看它的日志:

journalctl -u elasticsearch

我们使用如下的命令来检查安装是否成功:

curl -k -u elastic:xsYCh*5qOz7hSpkH-fHC https://192.168.0.8:9200

在上面,请用在安装时提供的 elastic 超级用户密码来进行替换:

curl -k -u elastic:xsYCh*5qOz7hSpkH-fHC https://192.168.0.8:9200
{"name" : "ubuntu2004","cluster_name" : "es-demo","cluster_uuid" : "2-rpYdtJQeOifbwljN2LHA","version" : {"number" : "8.7.1","build_flavor" : "default","build_type" : "deb","build_hash" : "f229ed3f893a515d590d0f39b05f68913e2d9b53","build_date" : "2023-04-27T04:33:42.127815583Z","build_snapshot" : false,"lucene_version" : "9.5.0","minimum_wire_compatibility_version" : "7.17.0","minimum_index_compatibility_version" : "7.0.0"},"tagline" : "You Know, for Search"
}

很显然,我们的安装时成功的。

安装 Kibana

我们可以参考文章 “Kibana:使用 Debian 安装包来安装 Kibana 8.x” 来安装 Kibana。由于我们已经修改了 Elasticsearch 的证书,我们需要对 Kibana 进行配置。在运行如下的命令之后:

sudo apt-get update && sudo apt-get install kibana
root@ubuntu2004:~# sudo apt-get update && sudo apt-get install kibana
Hit:1 https://download.docker.com/linux/ubuntu focal InRelease
Hit:2 https://artifacts.elastic.co/packages/8.x/apt stable InRelease         
Hit:3 http://ports.ubuntu.com/ubuntu-ports focal InRelease
Get:4 http://ports.ubuntu.com/ubuntu-ports focal-updates InRelease [114 kB]
Hit:5 http://ports.ubuntu.com/ubuntu-ports focal-backports InRelease
Hit:6 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease
Fetched 114 kB in 2s (46.4 kB/s)
Reading package lists... Done
N: Skipping acquire of configured file 'stable/binary-aarch64/Packages' as repository 'https://download.docker.com/linux/ubuntu focal InRelease' doesn't support architecture 'aarch64'
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:kibana
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 255 MB of archives.
After this operation, 716 MB of additional disk space will be used.
Get:1 https://artifacts.elastic.co/packages/8.x/apt stable/main arm64 kibana arm64 8.7.1 [255 MB]
Fetched 255 MB in 17s (14.9 MB/s)                                                                                      
Selecting previously unselected package kibana.
(Reading database ... 231678 files and directories currently installed.)
Preparing to unpack .../kibana_8.7.1_arm64.deb ...
Unpacking kibana (8.7.1) ...
Setting up kibana (8.7.1) ...
Restarting kibana service... OK

我们针对 Kibana 进行配置。首先,我们把证书拷贝过来:

root@ubuntu2004:/usr/share/elasticsearch/config/certs# pwd
/usr/share/elasticsearch/config/certs
root@ubuntu2004:/usr/share/elasticsearch/config/certs# ls
ca  ca.zip  certs.zip  elasticsearch1  elasticsearch2  elasticsearch3  instances.yml  kibana
root@ubuntu2004:/usr/share/elasticsearch/config/certs# cp -R ca /etc/kibana/certs/ 
root@ubuntu2004:/usr/share/elasticsearch/config/certs# cp -R kibana /etc/kibana/certs/ 

我们可以在 Kibana 的配置文件目录看到文件:

root@ubuntu2004:/etc/kibana/certs# ls -alh
total 16K
drwxr-sr-x 4 root kibana 4.0K May 14 10:27 .
drwxr-s--- 3 root kibana 4.0K May 14 10:22 ..
drwxr-sr-x 2 root kibana 4.0K May 14 09:59 ca
drwxr-sr-x 2 root kibana 4.0K May 12 18:17 kibana
root@ubuntu2004:/etc/kibana/certs# tree -L 2
.
├── ca
│   ├── ca.crt
│   └── ca.key
└── kibana├── kibana.crt└── kibana.key

我们可以利用上面的证书文件来配置 /etc/kibana/kibana.yml 文件。上面显示我们的证书文件的所有权是 root:kibana。如果你有不对的,请进行相应修改。

创建 elastic/kibana 服务账号

根据文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/service-accounts.html,我们创建一个 elastic/kibana 服务账号。我们在 terminal 下打入如下的命令:

root@ubuntu2004:/usr/share/elasticsearch/bin# ls
elasticsearch                          elasticsearch-geoip             elasticsearch-setup-passwords
elasticsearch-certgen                  elasticsearch-keystore          elasticsearch-shard
elasticsearch-certutil                 elasticsearch-node              elasticsearch-sql-cli
elasticsearch-cli                      elasticsearch-plugin            elasticsearch-sql-cli-8.7.1.jar
elasticsearch-create-enrollment-token  elasticsearch-reconfigure-node  elasticsearch-syskeygen
elasticsearch-croneval                 elasticsearch-reset-password    elasticsearch-users
elasticsearch-env                      elasticsearch-saml-metadata     systemd-entrypoint
elasticsearch-env-from-file            elasticsearch-service-tokens
root@ubuntu2004:/usr/share/elasticsearch/bin# ./elasticsearch-service-tokens --help
Manages elasticsearch service account file-tokensCommands
--------
create - Create a file token for specified service account and token name
delete - Remove a file token for specified service account and token name
list - List file tokens for the specified service accountNon-option arguments:
command              Option             Description        
------             -----------        
-E <KeyValuePair>  Configure a setting
-h, --help         Show help          
-s, --silent       Show minimal output
-v, --verbose      Show verbose output
root@ubuntu2004:/usr/share/elasticsearch/bin# ./elasticsearch-service-tokens create elastic/kibana kibana-token
SERVICE_TOKEN elastic/kibana/kibana-token = AAEAAWVsYXN0aWMva2liYW5hL2tpYmFuYS10b2tlbjpBQlVPWWpGRlNVQ2hhMWdlNzBpUXZn

我们记下这个 service token。将在下面的配置中使用。

我们是使用如下的命令来把上面的 service token 放进 keystore。我们可以在如下的地址发现已经存在一个叫做 kibana.keystore 的文件。我们无需去重新创建这个文件。

root@ubuntu2004:/etc/kibana# ls
certs  kibana.keystore  kibana.yml  node.options

参考链接 https://www.elastic.co/guide/en/kibana/current/secure-settings.html。我们打入如下的命令:

root@ubuntu2004:/usr/share/kibana/bin# ./kibana-keystore list

上面显示还没有任何的值在里面。我们使用如下的命令:

root@ubuntu2004:/usr/share/kibana/bin# pwd
/usr/share/kibana/bin
root@ubuntu2004:/usr/share/kibana/bin# ./kibana-keystore listroot@ubuntu2004:/usr/share/kibana/bin# ./kibana-keystore add elasticsearch.serviceAccountToken
Enter value for elasticsearch.serviceAccountToken: ************************************************************************
root@ubuntu2004:/usr/share/kibana/bin# ./kibana-keystore list
elasticsearch.serviceAccountToken

配置 Kibana

/etc/kibana/kibana.yml

server.port: 5601
server.host: "0.0.0.0"
server.publicBaseUrl: "https://ubuntu2004:5601"server.ssl.enabled: true
server.ssl.certificate: /etc/kibana/certs/kibana/kibana.crt
server.ssl.key: /etc/kibana/certs/kibana/kibana.keyelasticsearch.hosts: ["https://192.168.0.8:9200"]elasticsearch.ssl.verificationMode: full
elasticsearch.ssl.certificateAuthorities: [/etc/kibana/certs/ca/ca.crt]

我们接下来启动 kibana 服务:

service kibana start

我们查看它的状态:

我们回到 Elasticsearch 的配置目录:

root@ubuntu2004:/etc/elasticsearch# ls -al
total 76
drwxr-s---   4 root elasticsearch  4096 May 12 18:41 .
drwxr-xr-x 150 root root          12288 May 12 16:49 ..
drwxr-x---   4 root elasticsearch  4096 May 12 17:35 certs
-rw-rw----   1 root elasticsearch   536 May 12 16:12 elasticsearch.keystore
-rw-rw----   1 root elasticsearch  1042 Apr 27 12:37 elasticsearch-plugins.example.yml
-rw-rw----   1 root elasticsearch  4375 May 12 17:59 elasticsearch.yml
-rw-rw----   1 root elasticsearch  2623 Apr 27 12:37 jvm.options
drwxr-s---   2 root elasticsearch  4096 Apr 27 12:37 jvm.options.d
-rw-rw----   1 root elasticsearch 17770 Apr 27 12:37 log4j2.properties
-rw-rw----   1 root elasticsearch   473 Apr 27 12:37 role_mapping.yml
-rw-rw----   1 root elasticsearch   197 Apr 27 12:37 roles.yml
-rw-------   1 root elasticsearch   140 May 12 18:41 service_tokens
-rw-rw----   1 root elasticsearch     0 Apr 27 12:37 users
-rw-rw----   1 root elasticsearch     0 Apr 27 12:37 users_roles
root@ubuntu2004:/etc/elasticsearch# chown elasticsearch service_tokens 
root@ubuntu2004:/etc/elasticsearch# ls -alh
total 76K
drwxr-s---   4 root          elasticsearch 4.0K May 12 18:41 .
drwxr-xr-x 150 root          root           12K May 12 16:49 ..
drwxr-x---   4 root          elasticsearch 4.0K May 12 17:35 certs
-rw-rw----   1 root          elasticsearch  536 May 12 16:12 elasticsearch.keystore
-rw-rw----   1 root          elasticsearch 1.1K Apr 27 12:37 elasticsearch-plugins.example.yml
-rw-rw----   1 root          elasticsearch 4.3K May 12 17:59 elasticsearch.yml
-rw-rw----   1 root          elasticsearch 2.6K Apr 27 12:37 jvm.options
drwxr-s---   2 root          elasticsearch 4.0K Apr 27 12:37 jvm.options.d
-rw-rw----   1 root          elasticsearch  18K Apr 27 12:37 log4j2.properties
-rw-rw----   1 root          elasticsearch  473 Apr 27 12:37 role_mapping.yml
-rw-rw----   1 root          elasticsearch  197 Apr 27 12:37 roles.yml
-rw-------   1 elasticsearch elasticsearch  140 May 12 18:41 service_tokens
-rw-rw----   1 root          elasticsearch    0 Apr 27 12:37 users
-rw-rw----   1 root          elasticsearch    0 Apr 27 12:37 users_roles

修改过后,我们再次重新启动 elasticsearch 服务:

service elasticsearch restart

我们再次重新启动 kibana 服务:

service kibana restart

我们再查看 kibana 服务的状态:

这次我们没有看到错误信息了。

我们在浏览器中打入地址 https://localhost:5601:

 

 

这样就成功地登录 Kibana 了。

相关文章:

Elasticsearch:如何使用自定义的证书安装 Elastic Stack 8.x

在我之前的文章 “如何在 Linux&#xff0c;MacOS 及 Windows 上进行安装 Elasticsearch”&#xff0c;我详细描述了如何在各个平台中安装 Elastic Stack 8.x。在其中的文章中&#xff0c;我们大多采用默认的证书来安装 Elasticsearch。在今天的文章中&#xff0c;我们用自己创…...

HADOOP--yarn ,, git

Yarn架构体系 主从架构 也是采用 master&#xff08;Resource Manager&#xff09;- slave &#xff08;Node Manager&#xff09;架构&#xff0c;Resource Manager 整个集群只有一个&#xff0c;一个可靠的节点。 1、 每个节点上可以负责该节点上的资源管理以及任务调度&am…...

IOS开发指南之UITableView控件使用

1.创建一个IOS单页应用 2.双击Main.storyboard然后拖放UITableView到视图中 3.添加TableViewCell 成功添加Table View Cell 4.修改Table View Cell属性 选中Table View Cell 在右边的Image栏输入default.png回车 到此布局设计完成,现在运行还是显示 空白,要在代码中做相关的实…...

C语言中的数据类型

目录 一、数据类型 1.基本类型 2.sizeof运算符 3.signed和unsigned 二、基本数据类型的取值范围 1.比特位 2.字节 3.符号位 4.补码 5.基本数据类型的取值范围 一、数据类型 1.基本类型 &#xff08;1&#xff09;整数类型 short intintlong intlong long int &…...

什么是微服务中的熔断器设计模式?

在本文中&#xff0c;我将解释什么是熔断器设计模式以及它解决了什么问题。 我们将仔细研究熔断器设计模式&#xff0c;并探讨如何使用Spring Cloud Netflix Hystrix在Java中实现它。到本文结束时&#xff0c;您将更好地了解如何使用熔断器设计模式提高微服务架构的弹性。 熔断…...

Ubuntu查看系统日志的几种方法

在 Ubuntu 22.10 中&#xff0c;你可以查看系统日志来排查错误。以下是几种查看日志的方法&#xff1a; 一、Journalctl 命令&#xff1a; 使用 journalctl 命令可以查看系统日志信息&#xff0c;包括引起闪退的错误信息。你可以运行以下命令来查看最新的系统日志&#xff1a;…...

【ubuntu】安装ZIP

【ubuntu】安装ZIP 输入如下命令安装zip $ sudo apt-get install zip 输出信息如下&#xff1a; Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: unzip The follo…...

DiffDock源码解析

DiffDock源码解析 数据预处理 数据输入方式 df pd.read_csv(args.protein_ligand_csv), 使用的是csv的方式输入&#xff0c; 格式&#xff1a; 不管受体还是配体&#xff0c; 输入可以是序列或者3维结构的文件 如果蛋白输入的是序列&#xff0c;需要计算蛋白的三维结构&am…...

1099 Build A Binary Search Tree(超详细注解+38行代码)

分数 30 全屏浏览题目 作者 CHEN, Yue 单位 浙江大学 A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes with keys less than the nodes key.The right subtree…...

[刷题]贪心入门

文章目录 贪心区间问题区间选点区间合并区间覆盖 哈夫曼树&#xff08;堆&#xff09;合并果子 排序不等式排队打水 绝对值不等式货仓选址 推出来的不等式耍杂技的牛 以前的题 贪心 贪心&#xff1a;每一步行动总是按某种指标选取最优的操作来进行&#xff0c; 该指标只看眼前&…...

项目集战略一致性

项目集战略一致性是识别项目集输出和成果&#xff0c;以便与组织的目标和目的保持一致的绩效领域。 本章内容包括&#xff1a; 1 项目集商业论证 2 项目集章程 3 项目集路线图 4 环境评估 5 项目集风险管理战略 项目集应与组织战略保持一致&#xff0c;并促进组织效益的实现。为…...

Linux学习 Day3

目录 1. 时间相关的指令 2. cal指令 3. find指令&#xff1a;&#xff08;灰常重要&#xff09; -name 4. grep指令 5. zip/unzip指令 6. tar指令&#xff08;重要&#xff09;&#xff1a;打包/解包&#xff0c;不打开它&#xff0c;直接看内容 7. bc指令 8. uname –…...

前端开发推荐vscode安装什么插件?

前言 可以参考一下下面我推荐的插件&#xff0c;注意&#xff1a;插件的目的是用于提高开发的效率&#xff0c;节约开发的时间&#xff0c;像类似检查一些bug、拼写错误等这些可以使用插件快速的识别&#xff0c;避免在查找错误上浪费过多的时间&#xff0c;但切记不要过度依赖…...

如何打造完整的客户服务体系?

对于企业来说&#xff0c;提供优质的客户服务是保持竞争力和赢得市场份额的关键因素之一。一个高效、专业、人性化的客户服务体系&#xff0c;对于企业吸引和留住客户&#xff0c;提升品牌声誉&#xff0c;甚至增加销售额都有着不可忽视的作用。本文将从多个方面来阐述如何打造…...

裸奔时代,隐私何处寻?

随着互联网的普及&#xff0c;人工智能时代的大幕初启&#xff0c;数据作为人工智能的重要支撑&#xff0c;数据之争成为“兵家必争之地”&#xff0c;随之而来的就是&#xff0c;各种花式手段“收割”个人信息&#xff0c;用户隐私暴露程度越来越高&#xff0c;隐私保护早已成…...

从期望最大化(EM)到变分自编码器(VAE)

本文主要记录了自己对变分自编码器论文的理解。 Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint arXiv:1312.6114, 2013. https://arxiv.org/abs/1312.6114 1 带有潜在变量的极大似然估计 假设我们有一个有限整数随机数发生器 z ∼ p θ ( z ) …...

【数学杂记】表达式中的 s.t. 是什么意思

今天写题的时候遇见了这个记号&#xff1a;s.t.&#xff0c;查了一下百度。 s.t.&#xff0c;全称 subject to&#xff0c;意思是“使得……满足”。 比如这个&#xff1a; 意思是存在 i i i&#xff0c;使得 i i i 满足 A i ≠ B i A_i\neq B_i Ai​Bi​. 运用这个记号…...

flink watermark介绍及watermark的窗口触发机制

Flink的三种时间 在谈watermark之前&#xff0c;首先需要了解flink的三种时间概念。在flink中&#xff0c;有三种时间戳概念&#xff1a;Event Time 、Processing Time 和 Ingestion Time。其中watermark只对Event Time类型的时间戳有用。这三种时间概念分别表示&#xff1a; …...

Spring Cloud: 云原生微服务实践

文章目录 1. Spring Cloud 简介2. Spring Cloud Eureka&#xff1a;服务注册与发现在Spring Cloud中使用Eureka 3. Spring Cloud Config&#xff1a;分布式配置中心在Spring Cloud中使用Config 4. Spring Cloud Hystrix&#xff1a;熔断器在Spring Cloud中使用Hystrix 5. Sprin…...

存bean和取bean

准备工作存bean获取bean三种方式 准备工作 bean:一个对象在多个地方使用。 spring和spring boot&#xff1a;spring和spring boot项目&#xff1b;spring相当于老版本 spring boot本质还是spring项目&#xff1b;为了方便spring项目的搭建&#xff1b;操作起来更加简单 spring…...

39. 组合总和

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被选取 。如…...

100行以内Python能做那些事

Python100 找到一个很好的python教程分享出来---->非本人 B站视频连接 100行以内的Pyhton代码可以做哪些有意思的事 按照难度1-5颗星&#xff0c;分为五个文件夹 希望大家可以补充 关于运行环境的补充 Python3.7 Pycharm社区版2019 关于用到的Python库,有些是自带的&am…...

Android 电源键事件流程分析

Android 电源键事件流程分析 电源按键流程处理逻辑在 PhoneWindowManager.java类中的 dispatchUnhandledKey 方法中 frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java从dispatchUnhandledKey方法开始分析 Overridepublic KeyEvent dis…...

游戏搬砖简述-1

游戏搬砖是一种在游戏中通过重复性的任务来获取游戏内货币或物品的行为。这种行为在游戏中非常普遍&#xff0c;尤其是在一些MMORPG游戏中。虽然游戏搬砖看起来很无聊&#xff0c;但是它确实是一种可以赚钱的方式&#xff0c;而且对于一些玩家来说&#xff0c;游戏搬砖也是一种…...

多线程基础总结

1. 为什么要有多线程&#xff1f; 线程&#xff1a;线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中&#xff0c;是进程中实际运行单位。 进程&#xff1a;进程是程序的基本执行实体。 什么是多线程&#xff1f; 有了多线程&#xff0c;我们就可以让程序同时做…...

视频理解AI模型分类与汇总

人工智能领域视频模型大体也经历了从传统手工特征&#xff0c;到卷积神经网络、双流网络&#xff08;2014年-2017年&#xff09;、3D卷积网络、transformer的发展脉络。为了时序信息&#xff0c;有的模型也结合用LSTM。 视频的技术大多借鉴图像处理技术&#xff0c;只是视频比…...

【Linux】多线程 --- 线程同步与互斥+生产消费模型

人生总是那么痛苦吗&#xff1f;还是只有小时候是这样&#xff1f; —总是如此 文章目录 一、线程互斥1.多线程共享资源访问的不安全问题2.提出解决方案&#xff1a;加锁&#xff08;局部和静态锁的两种初始化/销毁方案&#xff09;2.1 对于锁的初步理解和实现2.2 局部和全局锁…...

17.模型的定义

学习要点&#xff1a; 1.默认设置 2.模型定义 本节课我们来开始学习数据库的模型部分的定义和默认值的设置。 一&#xff0e;默认设置 1. 框架可以使用 Eloquent ORM 进行数据库交互&#xff0c;也就是关系对象模型&#xff1b; 2. 在数据库入门阶段&#xff0c;我们已经创建了…...

golang 记录交叉编译sqlite的报错信息 go build -ldflags

go build -ldflags ‘-s -w --extldflags “-static -fpic”’ -o go-web main.go [gos20230512]# CGO_ENABLED1 CCaarch64-linux-gnu-gcc CXXaarch64-linux-gnu-g GOOSlinux GOARCHarm64 go build -ldflags -s -w --extldflags "-static -fpic" -o go-web m…...

ChatGPT AI使用成本

LLM “经济学”&#xff1a;ChatGPT 与开源模型&#xff0c;二者之间有哪些优劣权衡&#xff1f;谁的部署成本更低&#xff1f; 太长不看版&#xff1a;对于日均请求在 1000 次左右的低频使用场景&#xff0c;ChatGPT 的实现成本低于部署在 AWS 上的开源大模型。但面对每天数以…...