Dockerize Elasticsearch

 

@seapy

 

Docker Korea

로그 수집 구성

불편한점

  • Cloud 서버의 기능 부족
  • 잦은 버전 업그레이드
  • 클러스터 추가에 따른 운영문제

 

새로운 서버 추가하거나

설치 할때마다 설치 + 설정작업이 문제

Dockerize

Dockerfile

FROM dockerfile/elasticsearch
MAINTAINER ChangHoon Jeong <iamseapy@gmail.com>

ENV ES_HEAP_SIZE 1g

ADD logging.yml /data/conf/logging.yml
ADD elasticsearch.yml /data/conf/elasticsearch.yml

// elasticsearch-HQ
RUN ["/elasticsearch/bin/plugin", "--install", "-Des.config=/data/conf/elasticsearch.yml", "royrusso/elasticsearch-HQ"]
// bigdesk
RUN ["/elasticsearch/bin/plugin", "--install", "-Des.config=/data/conf/elasticsearch.yml", "lukas-vlcek/bigdesk"]
// elasticsearch-kopf
RUN ["/elasticsearch/bin/plugin", "--install", "-Des.config=/data/conf/elasticsearch.yml", "lmenezes/elasticsearch-kopf"]
// elasticsearch-head
RUN ["/elasticsearch/bin/plugin", "--install", "-Des.config=/data/conf/elasticsearch.yml", "mobz/elasticsearch-head"]
// elasticsearch-paramedic
RUN ["/elasticsearch/bin/plugin", "--install", "-Des.config=/data/conf/elasticsearch.yml", "karmi/elasticsearch-paramedic"]

ENTRYPOINT ["/elasticsearch/bin/elasticsearch", "--path.conf=/data/conf"]

https://github.com/seapy/dockerfiles/tree/master/elasticsearch

실행

# x.x.x.x server
$ docker run -d -p 9200:9200 -p 9300:9300 \
    -v /data/elasticsearch:/data/mnt \
    seapy/elasticsearch \
     --node.name=$(hostname) \
     --network.publish_host=$(hostname -i) \
     --discovery.zen.ping.multicast.enabled=false \
     --discovery.zen.ping.unicast.hosts=x.x.x.x:9300,y.y.y.y:9300


# y.y.y.y server
$ docker run -d -p 9200:9200 -p 9300:9300 \
    -v /data/elasticsearch:/data/mnt \
    seapy/elasticsearch \
     --node.name=$(hostname) \
     --network.publish_host=$(hostname -i) \
     --discovery.zen.ping.multicast.enabled=false \
     --discovery.zen.ping.unicast.hosts=x.x.x.x:9300,y.y.y.y:9300

빠른가요?
문제는 없나요?

적용 몇일후

  • fluentd 에서 elasticsearch 서버에 접근하지 못함
  • fluentd 재시작 하면 다시 되지만 31시간후 재발
  • Dockerize 하다보니 네트워크 많이 쓰는거라 문제가 있나보다...
  • 왠지 kibana, 플러그인들 응답속도가 느려진것 같다

Docker 탓하기

미안하다

  • fluentd elasticsearch 플러그인 문제
    • dockerize 하면서 fluentd 업그레이드 했었음
  • 플러그인들도 이제 빠릿빠릿하지만 적응된걸수도
    • 실제 사용하는데 불편함이 없음

현재 운영 상황

- 웹서버 로그 일일 6천만 ROW 

- 유지하는 document 8억건(400G)

- elasticsearch 6대 클러스터

  (8vCPU, 16G RAM, 100G 네트워크 스토리지)

하고싶다

CoreOS, 

etcd, Fleet

Made with Slides.com