自己看網上的資料寫了一個日誌蒐集項目要保存收集數據到elasticsearch,所以就用docker搭建了一個。
搭建環境的時候還是推薦創建一個network,讓兩個容器都在一個局域網內部訪問。
ES辦公網站的文檔很詳細,自己找找就能得到docker的部署方法。
https://www.elastic.co/guide/index.html
- 安裝elasticsearch
https://www.elastic.co/guide/en/elastic-stack/current/index.html
https://www.elastic.co/guide/en/elasticsearch/reference/7.15/docker.html
在文檔頁面找到docker方式安裝的連接,就可以得到詳細的方法。
docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.0
#掛載宿主機目錄
mkdir -p /docker/es/config
mkdir -p /docker/es/data
chmod -R 777 /docker/es/data
echo "http.host: 0.0.0.0" >> /docker/es/config/elasticsearch.yml
docker run -p 9200:9200 -p 9300:9300 \
--name es --net elastic \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /docker/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /docker/es/data:/usr/share/elasticsearch/data \
-v /docker/es/plugins:/usr/share/elasticsearch/plugins \
-d docker.elastic.co/elasticsearch/elasticsearch:7.15.0
其中elasticsearch.yml是掛載的配置文件,data是掛載的數據,plugins是es掛載的插件,如ik。 數據掛載需要權限,需要設置data文件的權限爲可讀可寫,需要下邊的指令。
chmod -R 777 [路徑]
-e "discovery.type=single-node" 設置爲單節點
特別注意: -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \ 測試環境下,設置ES的初始內存和最大內存,否則導致過大啓動不了ES
訪問測試鏈接:http://192.168.1.7:9200/
- 安裝kibana
https://www.elastic.co/guide/en/kibana/7.15/install.html
docker pull docker.elastic.co/kibana/kibana:7.15.0
docker run --name kib01 --net elastic -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://es:9200" -d docker.elastic.co/kibana/kibana:7.15.0
訪問測試連接:
- 中文分詞器ik安裝
進入容器 docker exec -it es /bin/bash
執行安裝命令:(注意:ik跟es的版本要一致)
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.15.0/elasticsearch-analysis-ik-7.15.0.zip
查看 plugins 目錄可以看到IK分詞器已經安裝成功
退出容器並重啓容器 docker restart es