'Linux'에 해당되는 글 1건

  1. 2015/05/11 용비 03. Running as a service on linux

Elasticservice OS에서 서비스로 실행하기 위해서, reboot / upgrade하는 동안 제공되는 패키지를 통해서 elasticsearch 쉽게 시작하고 종료할 있다.


Linux

현재 우리 빌드 시스템은 자동으로 데비안 패키지와 RPM 생성한다. 다운로드 페이지를 통해서 이용할 있다. 패키지는 특별히 의존관계를 갖지는 않는다. 하지만, JDK 설치되었는지 확인이 필요하다.


각각의 패키지는 다음 파라미터들로 설정 파일을 설정할 있다.


ES_USER : 실행 사용자. 기본 : elasticsearch

ES_GROUP : 실행 그룹. 기본 : elasticsearch

ES_HEAP_SIZE : 시작할 때의 Heap 메모리 크기

ES_HEAP_NEWSIZE : 새로 생성하는 Heap 메모리 크기

ES_DIRECT_SIZE : Maximum Direct Memory

MAX_OPEN_FILES : Open file 최대값. 기본 : 65535

MAX_LOCKED_MEMORY : 최대 lock 메모리 크기. bootstrap.mlockall 옵션을 elasticsearch.yml 사용하려면 "unlimited" 설정하라. 또한 ES_HEAP_SIZE 설정해야 한다.

MAX_MAP_COUNT : 하나의 Process 가질 있는 최대 memory map area 수. Mmapfs index store type으로 사용한다면 값을 높은 값으로 설정하라. 자세한 정보를 위해서는 max_map_count 대한 linux kernel documentation (https://github.com/torvalds/linux/blob/master/Documentation/sysctl/vm.txt) 확인하라. Elasticsearch 시작하기 전에 sysctl 통해서 설정할 있다. Default값은 65535이다.
LOG_DIR :
로그 디렉토리. Default /var/log/elasticsearch이다.

DATA_DIR : 데이터 디렉토리. Default /var/lib/elasticsearch이다.

WORK_DIR : Work 디렉토리. Default /tmp/elasticsearch이다.

CONF_DIR : 설정 파일 위치 디렉토리. (elasticsearch.yml logging.yml 파일이 있는 위치). Default /etc/elasticsearch이다.

CONF_FILE : 설정 파일 경로. Default /etc/elasticsearch/elasticsearch.yml이다.

ES_JAVA_OPTS : 추가적인 java options. Node.name property 추가하려고 한다면 아주 유용하게 사용할 있다. 하지만, puppet이나 chef 같은 provisioning system 통해서 배포되기 때문에 외에는 elasticsearch.yml 파일의 내용을 변경하지 말라. 예를 들어 다음과 같이 사용할 있다. ES_JAVA_OPTS="-Des.node.name=search-01"

RESTART_ON_UPGRADE : restart package upgrade 대한 설정. Default는 false이다. Package 설치한 이후, elasticsearch instance 수동으로 restart해야 한다. Cluster에서 upgrade 기능은 네트워크 트래픽을 증가시키고, cluster 전체적으로 response time 좋게 하기 때문이다.


Debian/Ubuntu

데비안 패키지에는 표준 데비안 업데이트 툴인 update-rc.d 실행하면 필요한 모든 것이 포함되어 있다. 실행 스크립트는 /etc/init.d/elasticsearch이다. 설정 파일은 /etc/default/elasticsearch 있다.

데비안 패키지는 기본적으로 service 시작하지는 않는다. 적합하게 설정되어 있지 않으면 갑작스럽게 cluster 참여하지 않도록 하기 위해서이다. dpkg -i 설치한 이후, 다음 command 사용하여 system 부팅할 , elasticsearch 시작할 있다.


sudo update-rc.d elasticsearch defaults 95 10
sudo
/etc/init.d/elasticsearch start


Installing the oracle JDK

일반적으로 추천하는 것은 Oracle JDK 환경에서 elasticsearch 구동하는 것이다. 그러나 Ubuntu Debian에는 라이선스 이슈로 OpenJDK 탑재되어 있다. 하지만 쉽게 oracle installer 이용해 설치할 있다. 데비안이나 리눅스 환경에서 add-apt-repositry command 사용하여 Debian Wheezy python-software-properties 설치되어 있는지 확인하라.


sudo add-apt-repository ppa:webupd8team/java
sudo apt
-get update
sudo apt
-get install oracle-java7-installer
java
-version


마지막 command 사용하여 Oracle JDK 성공적으로 설치되었는지 확인할 있다. Java 8 설치하려면 apt-get install oracle-java8-installer 통해서 설치할 있다.


RPM based distributions

Using chkconfig

Chkconfig 사용하여 RPM기반 배포파일을 얻을 있다. Init script /etc/init.d/elasticsearch 있다. 설정 파일은 /etc/sysconfig/elasticsearch 있다. 데비안처럼 RPM 패키지는 기본적으로 install이후 실행되지 않는다. 다음 command 통해서 수동으로 실행해야 한다.


sudo /sbin/chkconfig --add elasticsearch
sudo service elasticsearch start


Using systemd

SUSE 배포판에서는 서비스 등록을 위해서 chkconfig 사용할 없다. 서비스 실행과 종료를 위해서 systemd /bin/systemctl 사용한다.  (가장 최신 버전에서는 chkconfig command 사용할 있다.) 설정 파일은 /etc/sysconfig/elasticsearch 있다. RPM 설치 , systemd 설정을 변경하고 elasticsearch 실행해야 한다.


sudo /bin/systemctl daemon-reload
sudo
/bin/systemctl enable elasticsearch.service
sudo
/bin/systemctl start elasticsearch.service


/etc/sysconfig/elasticsearch 있는 MAX_MAP_COUNT 변경하는 것은 아무 효과가 없다. 시작시점에 변경된 값을 반영하려면 /usr/lib/sysctl.d/elasticsearch.conf 변경해야 한다는 것에 유의하라.

받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/709