cs TIL : elasticsearch 오류 해결
본문 바로가기
  • 매일 한걸음씩
  • 매일 한걸음씩
개발/TIL

TIL : elasticsearch 오류 해결

by 시몬쯔 2021. 1. 5.
728x90
반응형

 

1. kibana 재설치

 

Kibana에서 status를 보니 다음과 같은 로그가 찍힘

 

● kibana.service - Kibana

   Loaded: loaded (/etc/systemd/system/kibana.service; enabled; vendor preset: enabled)

   Active: failed (Result: exit-code) since Tue 2021-01-05 11:36:08 KST; 1min 15s ago

  Process: 7276 ExecStart=/usr/share/kibana/bin/kibana (code=exited, status=1/FAILURE)

 Main PID: 7276 (code=exited, status=1/FAILURE)



 1월 05 11:36:08 freew systemd[1]: kibana.service: Service hold-off time over, scheduling restart.

 1월 05 11:36:08 freew systemd[1]: kibana.service: Scheduled restart job, restart counter is at 3.

 1월 05 11:36:08 freew systemd[1]: Stopped Kibana.

 1월 05 11:36:08 freew systemd[1]: kibana.service: Start request repeated too quickly.

 1월 05 11:36:08 freew systemd[1]: kibana.service: Failed with result 'exit-code'.

 1월 05 11:36:08 freew systemd[1]: Failed to start Kibana.

 

구글 검색에 갖가지 검색을 했지만 맞는 방법을 못 찾음.

 

👉🏻 kibana 삭제하고 재설치하기로 함.

 

👉🏻 kibana 삭제 : sudo apt remove kibana & sudo apt purge kibana

 

👉🏻 kibana 7.9.1 재설치(elasticsearch와 버전이 일치해야 함) (ubuntu 18.04)

 

  • https://www.elastic.co/downloads/kibana past releases에서 deb 파일 다운
  • sudo dpkg -i kibana-7.9.1-amd64.deb
  • /etc/kibana/kibana.yml에서 host "0.0.0.0"으로 바꿈(외부 접속 가능하도록)
  • sudo service kibana start
  • ip주소:5601 접속

✔️ kibana에서 모니터링을 위해 metricbeat 설치

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.9.1-amd64.deb

 

 


 

2. Elasticsearch 데이터 옮기기(스냅숏 이용)

 

💢 kibana의 dev tool 이용

 

PUT /_snapshot/mf1_backup

{

  "type": "fs",

  "settings": {

                "compress": true,

                "location": "/home/master/****/es_backup"

  }

}







PUT /_snapshot/mf1_backup/snapshot_0105_2?wait_for_completion=true

{

  "indices": "mf1",

  "ignore_unavailable": true, 

  "include_global_state": true

}

💢 위의 location은 /etc/elasticsearch/elasticsearch.yml의 path.repo와 일치해야 함.

 

💢 이전 스냅숏들과 헷갈려서 es_backup 폴더를 지우고 다시 만들어서 시도.

 

 

👉🏻 위와 같은 에러시 아래 명령어를 통해 권한 이전을 해줘야 elasticsearch가 해당 폴더에 접근 가능함.

 

sudo chown -R elasticsearch:elasticsearch ./es_backup

 

👉🏻 다시 작동 시 timeout을 늘려서 시도(디폴트 30s) 

 

 

 

👉🏻 성공!

💢snapshot 삭제 시:

 

curl -s -XGET localhost:9200/_snapshot/ 로 확인 후

curl -XDELETE localhost:9200/_snapshot/backup

 

다시 실행 시 

성공!

 

es_backup 폴더에

다음과 같은 파일들이 생김.

 

 

👉🏻 이 파일들을 ec2 서버로 옮김

 

다음과 같은 오류가 나며 elasticsearch 시작이 안됨.

Job for elasticsearch.service failed because the control process exited with error code.

See "systemctl status elasticsearch.service" and "journalctl -xe" for details.

 

 

👉🏻 journalctl -xe 실행 시 다음과 같이 나옴

 

Failed to connect to backoff(elasticsearch(http://XXX:9200)): Get "http://XXX:9200": dial tcp XXXX.

Jan 05 06:52:56 ip-172-31-4-165 metricbeat[858]: 2021-01-05T06:52:56.042Z        INFO        [publisher_pipeline_output]        pipeline/output.go:145 Attempting to reconnect to backoff(elasticsearch(http://XXX:9200)) with 21 reconnect attempt(s)

 

👉🏻 /var/log/elasticsearch/elasticsearch.log 보니 path.repo가 잘못되었었음(슬래쉬 하나 안 씀) 바꾸니 해결 😁

 

👉🏻 각 서버 kibana에서 확인 시 모두 일치하는 것을 확인!

 

 

 

 

728x90
반응형

댓글