![]()
🏷?個人主頁:牽著貓散步的鼠鼠?
🏷?系列專欄:云原生與服務部署專欄
🏷?個人學習筆記,若有缺誤,歡迎評論區指正?
目錄
1. 前言
2. 服務搭建
2.1. 部署ElasticSearch
2.2. 部署Kibana
3. 總結
1. 前言
發現有段時間沒更文了,突然想到ES還沒有發過相關的文章,翻了翻以前的筆記,又可以水幾篇筆記了哈哈。
博主這里推薦使用至少2G運行內存的的服務器作為學習平臺,因為ES服務占用的內存還是比較大的,除去ElasticSearch外我們還需要部署一個可視化操作工具Kibana。如果你是Linux centos系統的話,下面的指令可以一路CV完成服務的部署。
2. 服務搭建
2.1. 部署ElasticSearch
拉取docker鏡像
docker pull elasticsearch:7.17.21
?創建掛載卷目錄
mkdir /local/es-data -p
mkdir /local/es-plugins -p
mkdir /local/es-config -p
chmod 777 /local/es-data
chmod 777 /local/es-plugins
chmod 777 /local/es-config
第一次啟動容器
docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \-e "discovery.type=single-node" \--privileged \--network es-net \-p 9200:9200 \-p 9300:9300 \
elasticsearch:7.17.21
拷貝出配置文件?
docker cp es:/usr/share/elasticsearch/config/ /local/es-config/
刪除容器
docker rm -f es
以單機模式運行容器(也可以結合K8S進行集群部署,我們在后面的K8S系列文章中應該也會講到)
docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \-e "discovery.type=single-node" \-e "ELASTICSEARCH_USERNAME=root" \-e "ELASTICSEARCH_PASSWORD=你的密碼" \-v /local/es-data:/usr/share/elasticsearch/data \-v /local/es-plugins:/usr/share/elasticsearch/plugins \-v /local/es-config/config:/usr/share/elasticsearch/config \--privileged \--network es-net \-p 9200:9200 \-p 9300:9300 \
elasticsearch:7.17.21
- ?`-e "cluster.name=es-docker-cluster"`:設置集群名稱
- `-e "http.host=0.0.0.0"`:監聽的地址,可以外網訪問
- `-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m"`:內存大小
- `-e "discovery.type=single-node"`:非集群模式
- `-v es-data:/usr/share/elasticsearch/data`:掛載邏輯卷,綁定es的數據目錄
- `-v es-logs:/usr/share/elasticsearch/logs`:掛載邏輯卷,綁定es的日志目錄
- `-v es-plugins:/usr/share/elasticsearch/plugins`:掛載邏輯卷,綁定es的插件目錄
- `--privileged`:授予邏輯卷訪問權
- `--network es-net` :加入一個名為es-net的網絡中
- `-p 9200:9200`:端口映射配置
進入容器內生成密碼
docker exec -it es /bin/bash
生成密碼 ,他會讓你為各個預設角色設置密碼,包括 apm_system、kibana、kibana_system、logstash_system、beats_system、remote_monitoring_user 以及 elastic。
elasticsearch-setup-passwords interactive
訪問9200端口,測試服務是否正常啟動,若正常啟動會看到要求輸入賬號密碼,我們這里賬號輸入elastic,密碼輸入你設置的
賬號密碼正確就會看到如下信息
2.2. 部署Kibana
拉取docker鏡像
docker pull kibana:7.17.21
第一次運行容器
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.12.1
?拷貝出kibana配置文件
docker cp kibana:/usr/share/kibana/config/ /local/kibana-config
刪除容器
docker rm -f kibana
?修改/local/kibana-config/config/kibana.yml配置文件,添加如下配置,讓kibana有權限去訪問ES
elasticsearch.username: "kibana_system"
elasticsearch.password: "你的密碼"
重啟容器并掛載配置文件目錄
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
-v /local/kibana-config/config:/usr/share/kibana/config \
--network=es-net \
-p 5601:5601 \
kibana:7.17.21
訪問5601端口,訪問kibana界面,輸入賬號密碼(賬號就是預設用戶,比如elastic,密碼就是你在es容器中設置的密碼)登錄
?如果網頁能夠進入,但是一直報錯,可以嘗試清空瀏覽器緩存,重新訪問
3. 總結
部署ES主要是部署兩個服務,一是ES服務本身,二是Kibana作為可視化面板。目前ES的部署模式使用的是單機模式,操作比較簡單,后續我們可能會結合K8S實現ES的集群部署,保證ES服務的高可用。