docker安裝elastic search和kibana


安裝目標

使用docker安裝elastic searchkibana,版本均為7.17.1

安裝es

1. docker pull

去dockerhub看具體版本,這里用7.17.1

docker pull elasticsearch:7.17.1
docker pull kibana:7.17.1

2. 臨時安裝生成文件

 docker run -d --name elasticsearch  -p 9200:9200 -p 9300:9300 -e  "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" elasticsearch:7.17.1

參數說明

  • -d 后台啟動
  • –name 起別名即:NAMES
  • -p 9200:9200 將端口映射出來
    elasticsearch的9200端口是供外部訪問使用;9300端口是供內部訪問使用集群間通訊
  • -e "discovery.type=single-node"單節點啟動
  • -e ES_JAVA_OPTS="-Xms256m -Xmx256m" 限制內存大小

確保成功啟動

docker ps

3. 設置外部數據卷

  1. 執行
mkdir -p /data/elasticsearch/{config,data,logs,plugins}
yml
  1. 將容器內文件拷貝出來
docker cp elasticsearch:/usr/share/elasticsearch/config /data/elasticsearch
docker cp elasticsearch:/usr/share/elasticsearch/logs /data/elasticsearch
docker cp elasticsearch:/usr/share/elasticsearch/data /data/elasticsearch
docker cp elasticsearch:/usr/share/elasticsearch/plugins /data/elasticsearch
  1. 設置elasticsearch.yml的內容
vi /data/elasticsearch/config/elasticsearch.yml
  • 確保有以下幾個配置,原有的配置可以不改動
cluster.name: "docker-cluster"
network.hosts:0.0.0.0
# 跨域
http.cors.allow-origin: "*"
http.cors.enabled: true
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

4. 停止並刪除臨時容器

docker stop elasticsearch
docker rm elasticsearch

5. 重新起容器並掛載外部文件夾

docker run -d --name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
elasticsearch:7.17.1

等docker容器起來一分鍾左右,再訪問9200 端口,會返回

因為安裝的是V7版本的,默認沒開啟x-pack(v8默認開啟),所以能直接訪問

[root@iZuf6ai62xce7wexx4wwi9Z config]# curl "http://localhost:9200"
{
  "name" : "6a1036c69d59",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "0zgLiGhESGKQYTYy9gH4iA",
  "version" : {
    "number" : "7.17.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "e5acb99f822233d62d6444ce45a4543dc1c8059a",
    "build_date" : "2022-02-23T22:20:54.153567231Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
[root@iZuf6ai62xce7wexx4wwi9Z config]#

安裝kibana

1. 運行臨時容器

docker run -d --name kibana -p 5601:5601 kibana:7.17.1

2. 創建本地掛載文件

mkdir -p /data/kibana/config
docker cp kibana:/usr/share/kibana/config /data/kibana/

在本地就能看到拷貝出來的kibana.yml文件,

vim /data/kibana/config/kibana.yml

修改配置為

#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://localhost:9100" ] # 記得修改ip
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"

3. 停掉臨時容器並重新啟動

  1. 停掉舊的
docker stop kibana
docker rm kibana
  1. 重新啟動掛載了地址的新的容器
docker run -d --name kibana -p 5601:5601 -v /data/kibana/config:/usr/share/kibana/config kibana:7.17.1

4. 進入elasticsearch容器獲取token

  1. 訪問kibana發現需要token

  2. 進入es容器獲取token

docker exec -it {elastic_search_container_id} /bin/bash
bin/elasticsearch-create-enrollment-token --scope kibana
  1. 拷貝token到kibana的ui上輸入

5. 進入kibana容器獲取驗證碼

  1. 進入kibana容器獲取token
docker exec -it kibana /bin/bash

# 執行生成驗證碼命令
bin/kibana-verification-code 

6. 重置elastic密碼

進入es容器

docker exec -it {elastic_search_container_id} /bin/bash
bin/elasticsearch-reset-password --username elastic -i

后面就使用elastic賬戶和密碼登錄kibana

為es和kibana設置密碼

  1. es開啟x-pack
vim /data/elasticsearch/config/elasticsearch.yml

增加以下xpack.security.enabled

cluster.name: "docker-cluster-01"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

# 此處開啟xpack
xpack.security.enabled: true

重啟es容器

docker restart elasticsearch
  1. 進入es容器修改密碼
docker exec -ti elasticsearch /bin/bash
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

然后會分別讓重置以下的密碼,這里重置成123456

Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y


Enter password for [elastic]:
passwords must be at least [6] characters long
Try again.
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana_system]:
Reenter password for [kibana_system]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
  1. 重置完畢之后帶上用戶就可以訪問了
[root@k8s-master ~]# curl localhost:9200 -u elastic
Enter host password for user 'elastic':
{
  "name" : "cd52e7fbacd1",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "0S-V9zElSie_zXtcDRssAQ",
  "version" : {
    "number" : "8.1.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "31df9689e80bad366ac20176aa7f2371ea5eb4c1",
    "build_date" : "2022-03-29T21:18:59.991429448Z",
    "build_snapshot" : false,
    "lucene_version" : "9.0.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}
[root@k8s-master ~]#

修改kibana的密碼

  1. 修改配置文件
vi /data/kibana/config/kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://172.17.0.3:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
# 此處設置elastic的用戶名和密碼
elasticsearch.username: elastic
elasticsearch.password: "123456"

  1. 重啟容器
docker restart kibana

安裝elastic-head

docker run -d \
--name=elasticsearch-head \
-p 9100:9100 \
mobz/elasticsearch-head:5-alpine
  1. 連接集群 不能連localhost:9200,而是
http://{ip}:9200/
  1. 后續帶x-pack的認證信息的訪問
  • url上帶上用戶名密碼
http://{ip}:9100/?auth_user=elastic&auth_password=123456


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM