본문 바로가기
Data/ELK

[2021.06.15] 인턴 +106 network host setting & bootstrap check(+@Google cloud에서 외부 접속 허용 방법)

by injekim97 2021. 6. 15.
반응형

[2021.06.15] 인턴 +106  network host setting & bootstrap check(+@Google cloud에서 외부 접속 허용 방법)

 

 

 

 

 

<elasticsearch/config/elasticsearch.yml 파일>

cluster.name: "elk-cluster-1"
node.name: "node-1"
network.host: "_site_"

network.host: "_site_"

-> 해당 옵션을 사용하면 자동적으로 내부IP주소값이 들어가게 됨

 

 

 

 

 

 

* 하지만, 다음과 같은 에러가 발생함 (3가지를 변경해줘야 함)

-> log를 잘 보면, 에러를 쉽게 해결할 수 있음

ERROR: [3] bootstrap checks failed. You must address the points described in the following [3] lines before starting Elasticsearch.
bootstrap check failure [1] of [3]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
bootstrap check failure [3] of [3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
ERROR: Elasticsearch did not exit normally - check the logs at /home/injekim97/elk/elasticsearch7.13.2/logs/elk-cluster-1.log

 

 

+@ 해당 에러는 elastic 공식 홈페이지에서 search를 통해 찾으면 쉽게 해결 할 수 있음

 

 

---------------------------------------------------------------------------------------------------------------------------

ERROR 1 : ulimit 해결 방법

https://www.elastic.co/guide/en/elasticsearch/reference/7.13/setting-system-settings.html  

 

 

/etc/security/limits.conf 경로 이동

elasticsearch(Linux-Username)  -  nofile  65535


 

 

즉, 나의 기준으로  injekim97  -  nofile  65535

 

 

 

위와 같이 명령어를 수행한 후, 다시 elasticsearch를 실행 해보겠다.(에러메세지가 3개에서 2개로 되었다)

-> 즉, 위의 명령어로 하나 해결함

ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
bootstrap check failure [1] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
bootstrap check failure [2] of [2]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
ERROR: Elasticsearch did not exit normally - check the logs at /home/injekim97/elk/elasticsearch7.13.2/logs/elk-cluster-1.log

------------------------------------------------------------------------------------------------------------------------------

ERROR 2 : max virtual memory areas vm.max_map_count [65530] 해결 방법

 

 

sudo vi /etc/sysctl.conf 

vm.max_map_count=262144 
sudo shutdown -r

------------------------------------------------------------------------------------------------------------------------------

해결 방법

ERROR 3 : the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discover
y.seed_providers, cluster.initial_master_nodes] must be configured

위에서 발생한 에러 3개중 2개가 해결 되었으며, 이제 남은 에러는 1개이다.

ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
ERROR: Elasticsearch did not exit normally - check the logs at /home/injekim97/elk/elasticsearch7.13.2/logs/elk-cluster-1.log

 

 

sudo nano elasticsearch/config/elasticsearch.yml 

cluster.name: "elk-cluster-1"
node.name: "node-1"
network.host: "_site_"
discovery.seed_hosts: ["elastic"]
cluster.initial_master_nodes: ["node-1"]

* discovery.seed_hosts: ["elastic"] 와 cluster.initial_master_nodes: ["node-1"] 은 한쌍임 (꼭 둘다 설정해줘야 함)

* cluster.initial_master_nodes: ["node-1"]는 node.name 명을 적어주면 됨

* discovery.seed_hosts:  에는 hostname을 적는 것인데, hostname 아는 방법(밑에 사진)

 

 

이제 이렇게 설정해주면 curl -XGET "localhost:9200"으로 해도 에러가 발생함

-> 내부 IP주소를 넣어줘야함(google-cloud)

즉,  curl -XGET "10.178.0.2:9200" 로 해야 정상적으로 나옴

 

-------------------------------------------------------------------------------------------------------------------------------

+@ Google cloud에서 외부 접속 허용 방법

 

1. 구글 클라우드 로그인 -> Computer Engine

2. 해당 VM에서 맨 오른쪽 : 클릭 -> 네트워크 세부정보 보기(View Network details) 클릭

 

 

1. 방화벽(Firewall) 클릭

2. 방화벽 규칙 만들기(Create a firewall rule)

 

 

 

 

<방화벽 규칙 만들기(Create a firewall rule)>

 

 

* 여기서 대상 태그의 값을 잘 기억해야함 (port 추가 한 후, 대상 태그를 추가해 줘야 하기 때문)

-> 여기선 elastic 으로 적어놨음

 

* 소스 IP 범위 주소는 0.0.0.0 이 아닌, 0.0.0.0/0 

-> 만들기 클릭

 

 

-> 완료된 모습이다. (하지만 여기서 아직 끝난 것이 아니다. tag 추가를 해야함)

 

 

 

<port를 추가한 이후, tag 추가하는 방법>

-> elastic 클릭

 

-> 수정 클릭

 

-> 네트워크 태그에 아까 저장한 태그명(elastic-9200)을 적어준 후, 저장

-----------------------------------------------------------------------------------------------------------------------------

 

-> 이제 내부 IP주소 및 외부 IP주소로 입력해도 출력이 잘 됨 (위의 과정을 설정안하면 외부IP주소에 아무 것도 실행X)

반응형

댓글