天天看點

Elasticsearch7.2.1 部署dockerElasticsearch7.2.1 部署docker

文章目錄

  • Elasticsearch7.2.1 部署docker
    • 安裝docker
    • 安裝docker-compose 單機容器編排工具
    • 安裝es7
    • 安裝kibana
    • docker環境下es和kibana權限認證
    • 安裝logstash

Elasticsearch7.2.1 部署docker

安裝docker

1.uname -a 檢視目前系統版本

Elasticsearch7.2.1 部署dockerElasticsearch7.2.1 部署docker

其中:

uname -r:發行版号  3.10
3.10.0-693.2.2.el7.x86_64
uname -v: 核心編譯日期
#1 SMP Tue Sep 12 22:26:13 UTC 2017
uname -o:作業系統
GNU/Linux
           

2.yum -y install docker 下載下傳安裝docker 或者sudo wget -qO- https://get.docker.com | sh 下載下傳最新版本

運作docker version檢視docker版本

Elasticsearch7.2.1 部署dockerElasticsearch7.2.1 部署docker

3.啟動docker服務 service docker start

docker info檢視docker存儲位置
docker ps 檢視是否有docker程序
           

Docker常用指令:

docker logs -f 容器名 檢視日志
docker images  檢視鏡像檔案

docker ps  檢視正在運作的容器

docker ps –a  檢視所有的容器

docker stop CONTAINER_ID 停止容器

docker container exec -it f0b1c8ab3633 /bin/bash  進入到容器

exit 退出

docker version  檢視版本

docker run -d -p 81:80 nginx 啟動nginx容器

docker rmi imgageid 删除鏡像

docker rm 容器id 删除容器

docker volumes ls  檢視所有volume存儲名稱
docker volumes inspect volumeName  檢視指定存儲名稱的路徑
           

安裝docker-compose 單機容器編排工具

1.linux安裝

curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
           

2.Apply executable permissions to the binary:應用(可執行)的權限 即戴綠帽

chmod +x /usr/local/bin/docker-compose
chmod a+x和chmod +x 一緻
	u代表使用者,g代表使用者組,o代表其他,a代表所有
           

檢視版本 $ docker-compose --version

docker-compose version 1.24.1, build 1110ad01

3. 建立軟連結 相當于windows的快捷方式

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
/usr/bin下存在以下快捷方式
docker-compose -> /usr/local/bin/docker-compose
           
  1. 啟動
docker-compose up & 背景啟動  若配置檔案修改了會重建容器,沒有持久化的修改丢失
docker-compose -f es.yml up &  指定别名-f 
           

停止:

docker-compose down 删除所有容器
docker-compose stop 停止所有容器
docker-compose stop 容器名 service 如es01和es02
           

注意:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vm.max_map_count kernel setting needs to be set to at least 262144
故而sysctl -w vm.max_map_count=262144  即/etc/sysctl.conf檔案下新增這一條
sysctl -p使其生效
           

安裝es7

1.拉取鏡像

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.1
           

2.運作es

docker run --name es7 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.2.1

--name es7将這個容器命名es7
起名之後 docker restart es7  容器的重新開機通過自定義的命名進行操作
-p 9200:9200 将宿主端口映射到Docker容器中的9200端口 此時可通路容器中的es服務   主機:容器
           

3.修改配置

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
           

檢視叢集狀态:

curl http://127.0.0.1:9200/_cat/health
           

檢視所有結點:

curl http://127.0.0.1:9200/_cat/nodes
           

修改容器的配置檔案:

docker exec -it es01[容器名] bash
vi config/elasticsearch.yml
exit退出容器
           

安裝kibana

1.拉取鏡像

docker pull docker.elastic.co/kibana/kibana:7.2.1
           

設定配置:

通過環境變量設定  優先使用環境變量
services:
  kibana:
    image: docker.elastic.co/kibana/kibana:7.2.1
    environment:
      SERVER_NAME: kibana.example.org # 預設kibana
      ELASTICSEARCH_URL: http://elasticsearch.example.org # 預設localhost:9200
綁定配置:
services:
  kibana:
    image: docker.elastic.co/kibana/kibana:7.2.1
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
           

docker環境下es和kibana權限認證

修改docker-compose

Elasticsearch7.2.1 部署dockerElasticsearch7.2.1 部署docker
version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.2.1
    container_name: es01
    environment:
      - node.name=es01
      - discovery.seed_hosts=es02
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"

    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata01:/usr/share/elasticsearch/data
      - esconfig01:/usr/share/elasticsearch/config
    ports:
      - 9200:9200
    networks:
      - esnet
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.2.1
    container_name: es02
    environment:
      - node.name=es02
      - discovery.seed_hosts=es01
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata02:/usr/share/elasticsearch/data
      - esconfig02:/usr/share/elasticsearch/config
      
    networks:
      - esnet
  kibana:
    image: docker.elastic.co/kibana/kibana:7.2.1 
    container_name: kibana
    environment:
      SERVER_NAME: kibana
      ELASTICSEARCH_HOSTS: http://對外ip:9200
      ELASTICSEARCH_URL: http://對外ip:9200
    ports:
      - 5601:5601
    volumes:
      - kibana:/usr/share/kibana/config

volumes:
  esdata01:
    driver: local
  esdata02:
    driver: local
  esconfig01:
    driver: local
  esconfig02:
    driver: local
  kibana:
    driver: local

networks:
  esnet:
           

es:7.2.1利用x-pack進行權限認證

首先生成證書 
	docker-compose up es01& 開啟容器
	docker exec -it es01 bash  進入容器
	再執行
    bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
前提是volumes同步了config檔案下的證書
           

修改配置檔案

在master結點下的config下elasticsearch.yml配置檔案中添加如下配置
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
然後重新啟動
           

設定密碼

bin/elasticsearch-setup-passwords interactive  # auto 自動設定密碼,interactive手動設定密碼
Changed password for user [apm_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]
           

同步叢集其他結點:

将證書和以下配置同步到其他結點的config檔案夾下
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
           

最後重新開機所有結點

此時通路9200需要認證

Elasticsearch7.2.1 部署dockerElasticsearch7.2.1 部署docker

設定kibana:

修改配置檔案kibana.yml
elasticsearch.username: "kibana"
elasticsearch.password: "你設定的密碼"
           

此時通路kibana

Elasticsearch7.2.1 部署dockerElasticsearch7.2.1 部署docker

安裝logstash

1.拉取鏡像

docker pull docker.elastic.co/logstash/logstash:7.2.1