728x90
나는 현재 엘라스틱 서치 8.1.2 버전을 사용중이고 3개의 클라우드 서버(AWS EC2)를 바인딩하여 사용중이다.
elasticsearch node 1 : 4GB , 2cpu t3.medium
elasticsearch node 2 : 2GB , 2cpu t3.small
elasticsearch node 3 : 2GB , 2cpu t3.small
문제 발생 :
- 상대적으로 저 스펙인 (노드2) 와 (노드3) 서버가 자주 꺼지는 문제 발생
문제를 해결하기 위해 elasticsearch.log 를 살펴보았지만 원인을 찾기 어려웠다.. 계속 디버깅중...
그래서 임시방편이기도 하면서 제일 간단한 방법인 죽으면 자동으로 다시 실행시키는 방법을 적용해보기로했다.
리눅스에는 크론탭(crontab)이라고해서 자동으로 스케줄링해주는 도구가 있다.
이를 활용해서 적용해보고자 한다.
Bash 파일 ( 쉘 스크립트 작성하기 )
크론탭을 적용하기 위해선 일단 커멘드 명령어의 집합인 bash 파일을 작성해야한다.
엘라스틱 서치 백그라운드(데몬)실행
vi start.sh
/home/{user}/{es_dir}/bin/elasticsearch -d -p es.pid
엘라스틱 서치 재실행
vi restart.sh
#!/bin/sh
# 엘라스틱 서치로 시작하는 프로세스 확인
pid=`ps -ef | grep "elasticsearch" | grep -v 'grep' | awk '{print $2}'`
# 엘라스틱 서치 프로세스가 죽었으면 start.sh 실행
if [ -z $pid ];
then
echo $(date)
bash /home/{user}/{es_dir}/start.sh
echo ""
fi
실행권한 변경 ( 실행 권한이 있어야 실행할 수 있다. )
chmod 755 *.sh
크론탭(crontab) 적용하기
crontab -e
0 */1 * * * bash /home/{user}/{es_dir}/restart.sh >> /home/{user}/{es_dir}/elastic_restart.log
위 크론탭 명령어의 해석은
매시간(정각)마다 restart.sh 파일을 실행시키라는 명령어이고 실행 로그를 저장하는 명령어이다.
크론탭 명령어의 자세한 내용은 다른 자료를 찾아보시면 다양하게 나와있습니다.
반응형
'API > ElasticSearch' 카테고리의 다른 글
[ElasticSearch]. 한국어 형태소 분석기 nori_analyzer 사용하기 (0) | 2022.12.05 |
---|---|
[ElasticSearch]. 다중 검색 종류 비교 : 비동기 검색(async_search) VS 멀티 서치(msearch) (0) | 2022.08.23 |
[ElasticSearch] SSL/TLS security https setting 외부에서 접속하기( version 8.x) (0) | 2022.04.06 |
[elasticSearch] 엘라스틱 서치 클라우드 배포 &셋팅하기 (0) | 2022.03.11 |
[ElasticSearch]. 개발하면서 발견한 특징들 (0) | 2022.02.24 |