스프링 마이크로 서비스 코딩 공작소 개정 2판 챕터 11
실습 중, docker-compose up을 했다. 그런데 kibana 포트로 접속했더니 kibana server is not ready yet
발생한다.
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.11.1
container_name: elasticsearch
environment:
- node.name=elasticsearch
- discovery.type=single-node
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9300:9300
- 9200:9200
networks:
backend:
aliases:
- "elasticsearch"
kibana:
image: docker.elastic.co/kibana/kibana:7.13.0
container_name: kibana
environment:
ELASTICSEARCH_URL: "http://elasticsearch:9300"
ports:
- 5601:5601
networks:
backend:
aliases:
- "kibana"
logstash:
image: docker.elastic.co/logstash/logstash:7.12.0
container_name: logstash
command: logstash -f /etc/logstash/conf.d/logstash.conf
volumes:
- ./config:/etc/logstash/conf.d
ports:
- "5000:5000"
networks:
backend:
aliases:
- "logstash"
volumes:
esdata1:
driver: local
다음은 앨라스틱 서치 로그다.
"max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]"
그리고 키바나 로그다.
{"type":"log","@timestamp":"2022-12-12T07:52:50+00:00","tags":["error","savedobjects-service"],"pid":952,"message":"This version of Kibana (v7.13.0) is incompatible with the following Elasticsearch nodes in your cluster: v7.11.1 @ 192.168.48.11:9200 (192.168.48.11)"}
로그를 보면 버전 호환 문제 또는 도커 메모리 부족 문제인 것 같다.
일단, 키바나 버전 호환 문제인지 확인했다.
구글링해보니 ELK 스택은 각각 제품 호환성이 맞아야 하더라...
공식 사이트를 참조해보니 다음 페이지가 있었다.
https://www.elastic.co/kr/support/matrix#show_compatibility
열을 대조해서 보면, 엘라스틱 서치 7.11.X인 경우에는 키바나 버전은 7.11.X여야 하며 로그 스태시는 6.8.x-7.17.x 여야 작동함을 알 수 있었다.
그래서 다음과 같이 버전을 바꿨다.
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.11.1
kibana:
image: docker.elastic.co/kibana/kibana:7.11.1
logstash:
image: docker.elastic.co/logstash/logstash:7.12.0
이렇게 바꾸고 실행했더니 5061 포트에 잘 접속되었다.
도커 메모리 문제는 아닌 것 같으니 그대로 냅뒀다.