-
Notifications
You must be signed in to change notification settings - Fork 43
Elastic Stack 설치 및 환경 설정.
Gee edited this page Feb 11, 2018
·
8 revisions
- 다양한 설치법 중 한 가지를 소개합니다
- 테스트 환경 설정이므로 실 사용시에는 사용자 needs에 맞게 설정하기를 권장합니다.
- AWS EC2에서 Elastic IP 설정을 안하면 서버를 Stop/Start 할 때 마다 elasticsearch.yml과 kibana.yml에서 IP 주소를 변경해야 합니다.
- Java 1.8 설치
- 설치
- 환경설정
- Elasticsearch
- Logstash
- Kibana
- 애플리케이션 실행
$ java -version
$ sudo yum remove java-1.7.0-openjdk.x86_64 -y
$ sudo yum install java-1.8.0-openjdk-devel.x86_64 -y
$ java -version
$ cd ~
$ mkdir fc
$ cd fc
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.tar.gz
$ tar -xzvf elasticsearch-5.6.4.tar.gz
$ rm elasticsearch-5.6.4.tar.gz
$ wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.4.tar.gz
$ tar -xzvf logstash-5.6.4.tar.gz
$ rm logstash-5.6.4.tar.gz
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.4-linux-x86_64.tar.gz
$ tar -xzvf kibana-5.6.4-linux-x86_64.tar.gz
$ rm kibana-5.6.4-linux-x86_64.tar.gz
-
max file descriptors 늘려주기
-
설명
- Mac OS 및 Linux만 해당 (Windows는 불필요)
- Elasticsearch를 구동중인 사용자의 open files descriptors를 65536까지 올려야 함
- RPM and Debian 패키지의 경우 default로 65536으로 설정되어 있으므로 이 설정이 불필요하다
-
방법
- 작업 전 확인 :
$ ulimit -Hn
(default로 4096이 출력될 것이다) - limits.conf 편집 :
$ sudo vim /etc/security/limits.conf
- 편집 모드로 변경 :
i
누르기 - 아래 코드를 limits.conf 가장 아래 입력
* hard nofile 65536 * soft nofile 65536
- 저장 :
ESC 누른 후 :wq 입력 후 Enter 누르기
- 재접속
$ sudo su $ su - ec2-user
- 작업 후 재확인 :
$ ulimit -Hn
- 작업 전 확인 :
-
-
virtual memory areas 늘리기
- 설명
- Elasticsearch는
mmapfs
디렉토리에 index를 저장한다 (default 설정) -
mmap counts
에 대한 운영체제의 limit이 default로는 낮게 되어 있어서 높혀주지 않으면 out of memory 발생
- Elasticsearch는
- 방법
-
임시 (재접속시 해제)
- 작업 전 확인 :
$ sudo sysctl -a | grep vm.max_map_count
=> 65530 - 늘리기 :
sudo sysctl -w vm.max_map_count=262144
- 작업 후 확인 :
$ sudo sysctl -a | grep vm.max_map_count
=> 262144
- 작업 전 확인 :
-
영구적 (재접속 후에도 효과 지속)
$ sudo vim /etc/sysctl.conf
- 편집 모드 변경 :
i
입력 - sysctl.conf 가장 아래에
vm.max_map_count=262144
입력 - 저장 :
ESC 누르고 :wq 입력 후 Enter
- 재시작 :
$ sudo reboot
- AWS EC2 재접속
- Mac
- 형식 :
$ ssh -i "{키 페어 이름}" {사용자 이름/ID}@{Public DNS}
- 예시 :
$ ssh -i "fc-test.pem" [email protected]
- 형식 :
- Windows
- Putty.exe 실행
- 저장한 Settings 불러오기
- Category - Session에서 저장한 Settings Load 선택
- 밑에 Open 선택
- 저장한 Settings가 없는 경우 : 수동으로 다시 접속
- Mac
-
- 설명
-
설명
- minimum heap size (Xms)와 maximum heap size (Xmx) 일치 권장
- 일반적으로는 서버 메모리의 절반정도 할당할 것 권장 (나머지는 시스템 사용 위해 남겨둔다)
- JVM heap size를 높게 설정하면 caching을 더 많이할 수 있지만 지나치게 많을 경우 garbage collection pause이 길게 발생할 수 있다
- 테스트 환경에서 Free Tier EC2 Instance를 선택했기에 JVM의 Heat Size를 줄여줘야 한다
- 넉넉한 EC2 Instance를 선택했다면 이 작업은 스킵해도 된다
-
방법
- elasticsearch config 디렉토리 이동 :
$ cd /home/ec2-user/fc/elasticsearch-5.6.4/config
- jvm 설정 파일 편집 :
$ vim jvm.options
- 편집 모드 :
i
입력 - Xms와 Xmx를 모두 128m로 변경
-Xms128m -Xmx128m
- 저장 :
ESC 누르고 :wq 입력 후 Enter
- elasticsearch config 디렉토리 이동 :
- elasticsearch config 디렉토리 이동 :
$ cd /home/ec2-user/fc/elasticsearch-5.6.4/config
- elasticsearch.yml 파일 편집 :
$ vim elasticsearch.yml
- 입력 모드 전환 :
i
입력 - network.host에 EC2 Instance Public DNS 주소를 입력한다
- 형식 :
network.host: {Public DNS}
- 예시 :
network.host: "ec2-12-345-67-891.ap-northeast-2.compute.amazonaws.com"
- 형식 :
- 저장 :
ESC 입력 후 :wq 후 Enter
-
설명
- 테스트 환경에서 Free Tier EC2 Instance를 선택했기에 JVM의 Heat Size를 줄여줘야 한다
- 넉넉한 EC2 Instance를 선택했다면 이 작업은 스킵해도 된다
-
방법
- logstash config 디렉토리 이동 :
$ cd /home/ec2-user/fc/logstash-5.6.4/config
- jvm 설정 파일 편집 :
$ vim jvm.options
- 편집 모드 :
i
입력 - Xms와 Xmx를 모두 128m로 변경
-Xms128m -Xmx128m
- 저장 :
ESC 누르고 :wq 입력 후 Enter
- logstash config 디렉토리 이동 :
- Kibana config 디렉토리 이동 :
$ cd /home/ec2-user/fc/kibana-5.6.4-linux-x86_64/config
- kibana.yml 파일 편집 :
$ vim kibana.yml
- 입력 모드 전환 :
i
입력 - server.host와 elasticsearch.url 수정
- 형식
server.host: "{Public DNS}" elasticsearch.url: "http://{IPv4 Public IP address}:9200"
- 예시
server.host: "ec2-12-345-67-891.ap-northeast-2.compute.amazonaws.com" elasticsearch.url: "http://12.345.67.891:9200"
- 형식
- Elasticsearch Home Directory 이동 :
cd /home/ec2-user/fc/elasticsearch-5.6.4
- 시작
- 일반 시작 :
$ bin/elasticsearch
- 데몬 시작 :
$ bin/elasticsearch -d
- 백그라운드 시작 :
$ nohup bin/elasticsearch &
- 일반 시작 :
- 확인
- 브라우저로 확인 :
http://12.345.67.891:9200
접속 - 콘솔로 확인 :
$ curl http://52.78.156.86:9200
- 브라우저로 확인 :
- 주의할 점은 Elasticsearch를 작동 중인 상태에서 Kibana를 실행해야 한다는 것이다
- 이를 위해 Elasticsearch를 한 번 중단 시키고 background에서 재실행한다
- 중단 : 터미널에서
Control + c
입력 - background 실행 :
$ nohup bin/elasticsearch &
- 중단 : 터미널에서
- Kibana Home Directory 이동 :
$ cd /home/ec2-user/fc/kibana-5.6.4-linux-x86_64
- Kibana 실행
- 일반 시작 :
$ bin/kibana
- 백그라운드 시작 :
$ nohup bin/kibana &
- 일반 시작 :
- 확인 : 브라우저로
http://12.345.67.891:5601
접속