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,MacOS 及 Windows 上进行安装 Elasticsearch”,我详细描述了如何在各个平台中安装 Elastic Stack 8.x。在其中的文章中,我们大多采用默认的证书来安装 Elasticsearch。在今天的文章中,我们用自己创…...
HADOOP--yarn ,, git
Yarn架构体系 主从架构 也是采用 master(Resource Manager)- slave (Node Manager)架构,Resource Manager 整个集群只有一个,一个可靠的节点。 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.基本类型 (1)整数类型 short intintlong intlong long int &…...

什么是微服务中的熔断器设计模式?
在本文中,我将解释什么是熔断器设计模式以及它解决了什么问题。 我们将仔细研究熔断器设计模式,并探讨如何使用Spring Cloud Netflix Hystrix在Java中实现它。到本文结束时,您将更好地了解如何使用熔断器设计模式提高微服务架构的弹性。 熔断…...
Ubuntu查看系统日志的几种方法
在 Ubuntu 22.10 中,你可以查看系统日志来排查错误。以下是几种查看日志的方法: 一、Journalctl 命令: 使用 journalctl 命令可以查看系统日志信息,包括引起闪退的错误信息。你可以运行以下命令来查看最新的系统日志:…...
【ubuntu】安装ZIP
【ubuntu】安装ZIP 输入如下命令安装zip $ sudo apt-get install zip 输出信息如下: 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的方式输入, 格式: 不管受体还是配体, 输入可以是序列或者3维结构的文件 如果蛋白输入的是序列,需要计算蛋白的三维结构&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…...

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

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

Linux学习 Day3
目录 1. 时间相关的指令 2. cal指令 3. find指令:(灰常重要) -name 4. grep指令 5. zip/unzip指令 6. tar指令(重要):打包/解包,不打开它,直接看内容 7. bc指令 8. uname –…...

前端开发推荐vscode安装什么插件?
前言 可以参考一下下面我推荐的插件,注意:插件的目的是用于提高开发的效率,节约开发的时间,像类似检查一些bug、拼写错误等这些可以使用插件快速的识别,避免在查找错误上浪费过多的时间,但切记不要过度依赖…...
如何打造完整的客户服务体系?
对于企业来说,提供优质的客户服务是保持竞争力和赢得市场份额的关键因素之一。一个高效、专业、人性化的客户服务体系,对于企业吸引和留住客户,提升品牌声誉,甚至增加销售额都有着不可忽视的作用。本文将从多个方面来阐述如何打造…...

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

从期望最大化(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. 是什么意思
今天写题的时候遇见了这个记号:s.t.,查了一下百度。 s.t.,全称 subject to,意思是“使得……满足”。 比如这个: 意思是存在 i i i,使得 i i i 满足 A i ≠ B i A_i\neq B_i AiBi. 运用这个记号…...

flink watermark介绍及watermark的窗口触发机制
Flink的三种时间 在谈watermark之前,首先需要了解flink的三种时间概念。在flink中,有三种时间戳概念:Event Time 、Processing Time 和 Ingestion Time。其中watermark只对Event Time类型的时间戳有用。这三种时间概念分别表示: …...
Spring Cloud: 云原生微服务实践
文章目录 1. Spring Cloud 简介2. Spring Cloud Eureka:服务注册与发现在Spring Cloud中使用Eureka 3. Spring Cloud Config:分布式配置中心在Spring Cloud中使用Config 4. Spring Cloud Hystrix:熔断器在Spring Cloud中使用Hystrix 5. Sprin…...

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

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...