3.1. ELK 설치하기 - elasticsearch (2)

# 외부와 연동하기 위한 설정 env 설정

elasticsearch 5.0 이상 부터는 elasticsearch가 원하는 시스템 스펙을 지원해줘야 정상작동을 합니다. ㅜㅜ 삽질했던 사항 1

설정을 안하고 elasticsearch 실행 했을 때 아래 에러 메시지가 발생합니다.

//error

ax file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

해당 문제를 해결 하기 위한 설정을 알아보겠습니다.


현재 설정되어 있는 리미트 값을 확인 하는 명령어


1
ulimit -Sa


스크린샷 2017-01-30 오후 4.06.01.png

첫번째 설정

1
sudo vi /etc/security/limits.conf
desc : limits.conf 시스템 사용자들이 자원을 제어 설정 할 수 있는 설정 파일 입니다. (한 프로세스가 다른 프로세스의 영향을 최소한 막아주는 역할 설정)


수정할 내용

vi edit를 통해 아래 내용을 추가 합니다.



# edit 내용으로는 아래 내용을 추가합니다. (2^16)

ec2-user hard nofile 65536 # ec2-user는 하드세팅(해당 쉘 최대값) 으로 한 번 접속할때 65536번의 파일을 열어 볼 수 있습니다.

ec2-user hard nofile 65536 # ec2-user는 소프트세팅(해당 설정 값) 으로 한 번 접속할때 65536번의 파일을 열어 볼 수 있습니다.

ec2-user hard nproc 65536 # ec2-user는 하드세팅으로 한 번 접속할때 65536번의 프로시저를 실행 할 수 있습니다.

ec2-user sort nproc 65536 # ec2-user는 소프트세팅으로 한 번 접속할때 65536번의 프로시저를 실행 할 수 있습니다.

두번째 설정


1
sudo vi /etc/rc.local
desc : rc.local은 리눅스가 부팅 될 때 자동으로 적용 될 수 있게 쉘 혹은 설정 파일을 등록 하여 활용 합니다.


수정할 내용

vi edit를 통해 아래 내용을 추가 합니다.


echo 1048575 > /proc/sys/vm/max_map_count # 특정 프로세스가 소유할 수 있는 가상 메모리 영역 설정

위의 설정외에 sudo passwd root 로 루트 비밀번호를 설정후 su - 로 루트로 접속하여 /proc/sys/vm/max_map_count 값을 변경하는 방법도 있습니다.


세번째 설정


1
sudo sysctl -w fs.file-max=262114

desc : sysctl 명령어는 커널 제어변수를 설정하여 시스템을 최적화 시키는 명령어 입니다. -a 는 설정값을 보는 옵션이고 -w 는 설정변수 값을 변경시 사용하는 옵션입니다.


위의 설정이 모두 끝나면 서버를 다시 시작 합니다.


1
sudo reboot 0 # 지금 당장 다시시작 해라 명령어

desc : 저는 주로 sudo init 6 명령어로 재부팅을 합니다. init 0 : 종료 init 1 : 단일사용자로(복구) init 2 : 다중사용자(network x) init 3 : 다중사용자 (network ok) init 4 : 미사용 init 5 : 다중사용자 그래픽 모드 init 6 : 재시작



# 설정하기


스크린샷 2017-01-27 오후 8.43.54.png


위의 구성 파일중 elasticsearch.yml 파일을 수정 합니다.


1
vi config/elasticsearch.yml


# ---------------------network-----------------------

#

# Set the bind address to a specific IP (IPv4 or IPv6) (yyp)=복사 붙여넣기

# ec2-user는 하드세팅(해당 쉘 최대값) 으로 한 번 접속할때 65536번의 파일을 열어 볼 수 있습니다.

# network.host: 192.168.0.1
network.host: 10.211.11.11 # 현재 linux의 내부 IP를 작성 합니다.

# 이하 아래내용 생략...

위의 내용을 설정 완료 후 elasticsearch를 시작 하면 아래와 같이 정상적으로 외부에서 접근이 가능한 화면을 확인 할 수 있습니다.


크롬에서 http://외부IP:9200 확인


스크린샷 2017-01-30 오전 1.17.21.png



elasticsearch 설치 완료


next