ELK/elasticsearch

[Elasticsearch] 엘라스틱서치 시스템 유저 비밀번호 설정하기.(elasticsearch-setup-passwords)

코딩하는흑구 2023. 3. 8. 01:41

안녕하세요.

 

지난 시간까지 엘라스틱서치를 생짜로 설치해보고 환경설정해보고 클러스터링과 클러스터링 통신간에 tls 를 적용해보았습니다.

- 엘라스틱서치 설치하기

- 엘라스틱서치 환경설정(Bootstrap Checks)

- 엘라스틱서치 클러스터 구성하기

- 엘라스틱서치 클러스터 내 노드 통신에 TLS 적용(Elasticsearch security)

 

이번에는 401 때문에 요청할 수 없는 현재상황에 엘라스틱서치 시스템 유저를 설정하여 클러스터링 현황을 확인해보겠습니다.

 

현재 필자는 이전 TSL 포스팅에 바로 이어서 작성하고 있기 때문에 TLS가 적용된 상태로 1, 2, 3번 노드가 모두 활성화되어있는 상태입니다. 이 점을 동일시 맞춰놓으시고 진행하시면 어렵지 않게 따라오실 수 있으실 겁니다.


먼저 엘라스틱서치에서 시스템 유저의 패스워드를 설정할 수 있는 모듈은 elasticsearch-setup-passwords 입니다.

해당 모듈에는 두가지 옵션이 있는데요.

- auto : 자동으로 패스워드를 설정해줍니다.

- interactive : 두번씩 더블체크하면서 시스템 계정의 비밀번호를 인풋으로 입력받게 됩니다.

 

저는 interactive 옵션으로 시스템 비밀번호를 등록하겠습니다. 우선 이전 포스팅에서처럼 공개키의 비밀번호를 그대로 활용하겠습니다.

 

터미널에서 새로운 세션을 열어서 1번 노드로 ssh 접근한 후 엘라스틱서치 루트 디렉토리로 이동합니다.

 

[1번 노드 서버의 엘라스틱서치 루트 디렉토리에서]

./bin/elasticsearch-setup-passwords interactive

Enter와 Reenter로 더블체크해가면서 패스워드를 설정하도록 합니다. 1번노드에서 설정을 완료하면 현재 클러스터링 되어있는 2번노드와 3번노드에도 그대로 적용이 되어있을 것입니다.

 


엘라스틱서치의 시스템 유저는 elastic 입니다. 이에 기반하여 http request를 curl 명령어로 하나 요청해보겠습니다.

[1번 노드 서버의 엘라스틱서치 루트 디렉토리에서]

curl "http://localhost:9200/_cat/nodes?v" -u elastic:blackdog

 

엘라스틱서치 각 노드간에 클러스터링이 잘 완료되어있는 모습을 authorization을 포함한 http 요청으로 확인할 수 있었습니다.

 

감사합니다.