[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)
댓글