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
Dockerize Elasticsearch
By ChangHoon Jeong
Dockerize Elasticsearch
Elasticsearch 클러스터 서버들을 Dockerize 한 경험. Docker Korea 캐주얼 토크 #1 발표. 2014년 10월 15일(수) 오후 7시
- 3,279