일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JavaScript
- sample
- MSSQL
- API
- Linux
- error
- elasticsearch
- Git
- unity
- Python
- JS
- Windows
- Kibana
- 설정
- ssh
- 영어
- 유니티
- ChatGPT
- s3
- AWS
- MySQL
- 엘라스틱서치
- nodejs
- Ai
- build
- mariadb
- 구글
- logstash
- docker
- Today
- Total
가끔 보자, 하늘.
Elasticsearch cluster 설정 본문
쉽다길래 별 생각 안했는데.. 설정할게 많네 -_-
ERROR. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
ERROR. memory locking requested for elasticsearch process but memory is not locked
위 두 에러가 발생하면 아래 내용을 참고하여 수정하면 된다.
클러스터를 구성하기 위해서는 리소스 사용에 대한 제한을 풀어줘야 한다.
아래 command로 현재 리소스 제한 사항을 볼 수 있으며,
ulimit -Sa
vi /etc/security/limits.conf
로 들어가서 아래와 같이 설정한다.
es-user hard memlock unlimited >> 하드 세팅으로 메모리 락 제한 없도록 설정
es-user soft memlock unlimited >> 소프트 세팅으로 메모리 락 제한 없도록 설정
es-user hard nofile 65536 >> 하드 세팅으로 65536번의 파일을 열어 볼 수 있게 설정
es-user soft nofile 65536 >> 소프트 세팅으로 65536번의 파일을 열어 볼 수 있게 설정
es-user hard nproc 65536 >> 하드 세팅으로 65536번의 프로시저를 실행 할 수 있게 설정
es-user soft nproc 65536 >> 소프트 세팅으로 65536번의 프로시저를 실행 할 수 있게 설정
ERROR. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
하나의 프로세스가 가질 수 있는 메모리 맵 영역의 최대 수를 말하는데 아래와 같이 수정이 가능함.
sysctl -w vm.max_map_count=262144
(root 권한으로 실행)
재실행 없이 바로 적용됨. /etc/sysctl.conf에 추가하면 재부팅시 적용됨.
ERROR. failed to send join request to master ...
config 파일에서 수정해야 할 내용들
config/jvm.options
메모리 관련된 설정인데 역할에 따라 다르다. 찾아보면 다양한 정보가 나오는데 아직 경험하지 못해서 이렇다 저렇다 적기가 뭐 하네. 일단 아래 두 가지를 적절히 수정. 해당 서버의 리소스에 맞춰 수정이 필요.
-Xms 와 -Xmx 를 master는 2g , data는 4g로 수정해 봄.
-------------------------------------------------------------------------------------------------------------------
config/elasticsearch.yml
cluster.name: es-cluster << 적절한 이름으로 설정. 클러스터마다 고유해야 함.
node.master : true << 마스터 노드인 경우 true 아니면 false
node.data: false << 데이터 전용 노드인 경우 true 아니면 false
bootstrap.memory_lock: true << bootstrap 검사. 5버전부터 추가 된 듯. 주요 설정들이 잘못된 경우 상용 모드에서는 서버가 실행되지 않고, 개발 모드에서는 경고 메세지 출력 처리. memory_lock은 jvm 메모리의 swapping lock 여부를 확인한다.
'개발 이야기 > 인프라 구축 및 운영' 카테고리의 다른 글
ES의 shard initialize 에 대해... (365) | 2019.01.31 |
---|---|
시스템 기본 사양 확인하기 (0) | 2018.08.30 |
logstash와 mysql 연동 (54) | 2018.07.24 |
logstash 인덱스 수정, 조건 설정하는 방법 (23) | 2018.07.16 |
Kibana systemd 에 등록하기 (3) | 2018.07.11 |