Dockerfile+docker-composeインストールes+ik+kibana 6.4.2


docker-composeのインストール
1.githubでdocker composeを検索し、適切なバージョンを選択してダウンロードする
wget 'https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64'

2.名前変更の移動と実行権限の付与
 mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
 
 chmod 777 /usr/local/bin/docker-compose

3.環境変数の構成
vim /etc/profile
#   PATH      /usr/local/bin      

#        
source /etc/profile

4.テスト
docker-compose

インストールディレクトリの準備
sudo mkdir -p /opt/docker/elk /opt/docker/es /opt/docker/kibana
chmod 777 /opt/docker/elk /opt/docker/es /opt/docker/kibana

準備esのDockerfile
a.カスタム辞書の準備
cd /opt/docker/es && mkdir dic && cd /opt/docker/es/dic
#      
sudo vim custom_dict.dic

b.ik分詞のダウンロード
#     
sudo mkdir -p /opt/docker/es/plugins/ik
cd /opt/docker/es/plugins/ik

# github  ik   es、kibana     
wget "https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.2/elasticsearch-analysis-ik-6.4.2.zip"

#   
unzip elasticsearch-analysis-ik-6.4.2.zip

#   (docker es)         
sudo vim /opt/docker/es/plugins/ik/config/IKAnalyzer.cfg.xml

<entry key="ext_dict">/usr/share/elasticsearch/dic/custom_dict.dicentry>

c.docker esのconfigフォルダをホストにコピーする
#        es  
docker run -d --name es_temp -p 9200:9200 -p 9300:9300  elasticsearch:6.4.2

#        ,   id
docker ps 

#  es    config         
sudo docker cp   id:/usr/share/elasticsearch/config /opt/docker/es/

#           、    、    
docker stop es_temp
docker rm es_temp
docker rmi elasticsearch:6.4.2

コンテナの起動に失敗した場合はdocker logs es_を使用します.temp-fログの表示
私が出会った1つのエラー[1]:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
割り当てられた仮想メモリmax_map_countが低すぎる場合sudo sysctl-w vmを一時的に変更する.max_map_count=262144 sudo vim/etc/sysctlを永久に変更する.confにvmを付ける.max_map_count=262144保存終了しsudo sysctl-pで有効にする
d.Dockerfileの作成
sudo vim /opt/docker/es/Dockerfile
from elasticsearch:6.4.2
#       ik          
copy ./plugins/ /usr/share/elasticsearch/plugins/

kibana
a.ホストホストでプロファイルを準備する
sudo mkdir -p /opt/docker/kibana/config && cd /opt/docker/kibana/config/

sudo vim /opt/docker/kibana/config/kibana.yml
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
#    ip   es   ip,       ip
elasticsearch.url: "http://172.20.0.5:9200"
xpack.monitoring.ui.container.elasticsearch.enabled: false
elasticsearch.ssl.verificationMode: none

docker-compose
a.docker-composeファイルの作成
sudo vim /opt/docker/elk/docker-compose.yml
version: '3.7'
services:
  kibana:
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "2"
    image: kibana:6.4.2
    container_name: kibana6
    networks:
      elk_net:    #           
    ports:
      - 5601:5601
    volumes:
      - /opt/docker/kibana/config:/usr/share/kibana/config/ #   kibana     
  es:
    restart: always
    build:
      context: ../es/       # Dockerfile     
      dockerfile: Dockerfile   # Dockerfile    
    container_name: es6
    networks:
      elk_net:                  #           
        ipv4_address: "172.20.0.5"  #       ip
    ports:
      - 9300:9300
      - 9200:9200
    volumes:
      - /opt/docker/es/config/:/usr/share/elasticsearch/config/ #   es     
      - /opt/docker/es/dic/:/usr/share/elasticsearch/dic/     #          
      - /opt/docker/es/plugins/ik/config/IKAnalyzer.cfg.xml:/usr/share/elasticsearch/plugins/ik/config/IKAnalyzer.cfg.xml #   ik        

networks:      #           
  elk_net:
    ipam:
      config:
        - subnet: 172.20.0.0/16
          gateway: 172.20.0.1


保存終了
b.起動容器
cd /opt/docker/elk

sudo docker-compose up -d

コンテナのステータスの表示
docker ps -a

kibanaへのアクセス:http://127.0.0.1:5601