Elastic Search의 어느버전부터 인지는 정확하지 않지만,

초기설정은 외부에서 접근이 불가능 하고, 로컬에서만 접속 가능 하도록 설정 되어있다.

보안때문이지 않을까 싶다.


ElasticSearch는 기본적으로 9200/tcp 포트를 사용하도록 되어 있으나,

본인은 포트를 39200/tcp 으로 변경하여 사용한다.


그래서, netstat 를 쳐보면 아래와 같이 로컬IP만 LISTEN 하고 있다.

netstat -na -t | grep 39200

tcp        0      0 ::ffff:127.0.0.1:39200      :::*                        LISTEN      

tcp        0      0 ::1:39200                   :::*                        LISTEN       


위와 같이 되면 로컬에서만 접속가능 하기 때문에 공극적으로는

[root@DEV-SCOWAS01 ~]# netstat -na -t | grep 39200

tcp        0      0 :::39200                    :::*                        LISTEN      

[root@DEV-SCOWAS01 ~]#  


":::39200" 이나 "0.0.0.0:39200" 으로 LISTEN을 하고 있어야

외부에서 접근 할 수 있다.


1. 환경설정 파일 수정 (config/elasticsearch.yml )

항목 

값 

비고 

 cluster.name

 okayjava_seach

 cluster는 향후 설명하겠지만, 여러대의 서버로 클러스터링 할때 사용된다.

그래서, 프로젝트명이나 회사명등을 입력 하면된다. 

본인은 okayjava_search 로 하였다.

 node.name

 WAS01

 클러스터링(여러대의 서버에서 분산처리) 할때  각 노드의 identify 가 된다. cluster.name을 갖고있는 ES내에서 유니크하면된다.

동일서버에 여러인스턴스를 생성하지 않는 경우 HOST명으로 한는것이 문안 할것 같다.

 network.host

 0.0.0.0

 호스트에 여러개의 NIC가 설치된 경우 특정 NIC로 들어오는것만 허용할 수도 있다.

"0.0.0.0" 은 any nic 라고 할 수 있다.

공식홈페지의 레퍼런스에서는 아래표와 같이 설명하고 있다.

 http.port

 39200

 기본은 9200이지만 바꿨다. 


 항목

값 

_[networkInterface]_

Addresses of a network interface, for example _en0_.

_local_

Any loopback addresses on the system, for example 127.0.0.1.

_site_

Any site-local addresses on the system, for example 192.168.0.1.

_global_

Any globally-scoped addresses on the system, for example 8.8.8.8.

위와 같이 하거나, NIC에 할당된 IP를 적어도 무관한다.



2. 커널파라메터 변경(http://okky.kr/article/364924 참고)

하나 하나가 정확히 뭘 의미 하는지 설명하려면 오래 걸리니 적당히 구글링을 해보면 나올것 같다.

운영하면서 적절히 조정하면서 사용하여야 한다.


vi /etc/security/limits.conf

아래부분을 추가 입력하고 저장한다.

was hard nofile 65536

was soft nofile 65536

was hard nproc 65536

was soft nproc 65536


was는 ES를 구동시키는 계정으로 변경



echo 1048575 > /proc/sys/vm/max_map_count

sysctl -w fs.file-max=65536

echo 65536 > /proc/sys/fs/file-max


reboot



위와 같이 설정후 리부팅하고, ES를 재구동 시키면 된다.


이상.

끝.




'linux' 카테고리의 다른 글

ElasticSearch 5.1.1 설치  (0) 2017.03.22
ElasticSearch 5.1.1 한글형태소(kr_analize) 지원(동전한닢)  (0) 2017.02.28
Apache + PHP + Oracle  (0) 2015.02.28
CentOS NFS 설정  (0) 2015.02.27
Linux shell(1분동안 계속 반복 수행)  (0) 2015.02.27



Elastic Search(이하 ES)는 설치는 아주 간단하다.

소스를 받아서 풀고, 실행만 시켜주면된다. 굳이 root권한도 필요 없었다.


소스를 다운 받는 방법은 아래를 참고하여 다운 받도록한다.

2017/02/28 - [linux] - ElasticSearch 5.1.1 한글형태소(kr_analize) 지원(동전한닢)


만일 한글형태소검색이 필요업다면, ES 버전에 제한없이 홈페이지에서 다운 받아도 무관한다.

(ES 홈페이지 : https://www.elastic.co/kr/)


다운받아서 tar 푸는 방법은 다 알것이기 때문에 추가 설명은 필요 없을 것이고.

만일 이 정도의 리눅스 상식이 없는 분이라면 ES 사용/운영은 어려울 것이다.

리눅스를 좀 더 공부하고, 재접근 하거나 주면지인의 도움을 받도록 하는것이 좋을것 같다.


나는 /app/local/ 밑에 풀었음.

가상환경이라 LVM을 사용하기 때문에 /usr/local 이런식으로 하지는 않앗고..

가상환경 예기는 나중에 기회가 되면 그때 보는걸로..


[was@DEV-SCOWAS01 elasticsearch-5.1.1]$ pwd

/app/local/elasticsearch-5.1.1

[was@DEV-SCOWAS01 elasticsearch-5.1.1]$ ll

합계 56

-rw-r--r--  1 was was 11358 2016-12-06 21:34 LICENSE.txt

-rw-r--r--  1 was was   150 2016-12-06 21:34 NOTICE.txt

-rw-r--r--  1 was was  9108 2016-12-06 21:34 README.textile

drwxr-xr-x  2 was was  4096 2017-03-22 14:03 bin

drwxr-xr-x  3 was was  4096 2017-03-22 14:03 config

drwxrwxr-x  3 was was  4096 2017-03-22 14:03 data

drwxr-xr-x  2 was was  4096 2016-12-06 21:39 lib

drwxr-xr-x  2 was was  4096 2017-03-22 14:03 logs

drwxr-xr-x 12 was was  4096 2016-12-06 21:39 modules

drwxr-xr-x  2 was was  4096 2016-12-06 21:39 plugins

[was@DEV-SCOWAS01 elasticsearch-5.1.1]$  



실행방법
데몬 형태(-d)로 띄워 주면된다.

bin/elasticsearch -d 

이후에 logs 폴더내에서 로그 파일을 보면서 디버깅을 하면된다.

아주 간단하다.


간혹 아래와 같이 오류 나는 경우가 있다.

Warning: Ignoring JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

Please pass JVM parameters via ES_JAVA_OPTS instead

[was@DEV-SCOWAS01 bin]$ Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/bootstrap/Elasticsearch : Unsupported major.minor version   .0

        at java.lang.ClassLoader.defineClass1(Native Method)

        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

.... 


이런 경우는 JAVA의 버전이 맞지 않기 때문이다.

1. ES는 JRE 1.8.x가 필요한데 1.7이나 1.6일 경우

2. $JAVA_HOME 의 경로와 $PATH에서의 경로가 다른 경우


이런 경우 시스템에서 하위버전(1.8 미만)을 사용하고 있기 때문에 JAVA_HOME을 함부로 변경 하기가 쉽지 않다.

ES를 구동할때만 JAVA 1.8을 사용하도록 수정 하자.

따라서,  bin/elasticsearch 파일을 열어서 JAVA_HOME 위치를 변경 하도록 한 줄을 추가 해주면 된다.


[was@DEV-SCOWAS01 elasticsearch-5.1.1]$ vi bin/elasticsearch

#!/bin/bash

.... 중략 ...

# Check to see if you are trying to run this without building it first. Gradle

# will replace the project.name with _something_.


JAVA_HOME=/app/local/jdk1.8.0_91


if echo 'distribution' | grep project.name > /dev/null ; then 


오늘은 여기까지 끝.





Elastic Search는 검색엔진이다.

기본적으로 한글 형태소가 지원되지 않아서

별도 한글형태소가 지원되도록 설치를 해줘야 한다.


한글형태소는 아는 사람은 쉬울수 있지만,

일반인에게는 검색이라는것 자체도 어려운 계념인데

한글형태소라는 말은 국어책을 다시 뒤지게 만드는 쉽지 않은 계념이다.

그런데 동전한잎 프로젝트(http://eunjeon.blogspot.kr/)에서 한글 형태소를 만들어서 배포한다.

Elastic Search의 Plugin 정도로 생각하면된다.


얼마전까지만 해도 Elastic Search의 최신버전을 지원하지 않아서 Elastic Search의 최신 버전을 사용할 수 없었으나

최근 16년 12월에 감사하게도 Elastic Search 5.1.1 을 지원하도록 만들어 주었다.

Lucene/Solr용

Elastic Search 용


나는 Elastic Search 에만 관심이 있기 때문에 본글은 Elastic Search기준으로 작성해본다.


형태소분석기는 "mecab-ko-dic은 오픈 소스 형태소 분석 엔진인 MeCab을 사용하여, 한국어 형태소 분석을 하기 위한 프로젝트입니다. 말뭉치 학습과 사전 목록 일부는 21세기 세종계획의 성과물을 사용하였습니다. " 이라고한다.

대충 이런것 같다.   Elastic Search 한글 검색 = (mecab + 동전한닢커스터마이징 ) + Elastic Search  뭐 이정도.??


라이센스 부분부터 훌터보자 mecab-ko-dic 는 Apache License Version 2.0 를 따르고 있기 때문에 사용 및 재배포가 자유롭다.

소스변경 후 재배포는 잘 모르겟네..


동전한닢프로젝트의 설치가이드는 elasticsearch 2.1.1 + mecab-kr 0.2.1로 되어 있는데

ElasticSearch 5.1.1 까지 지원된다고 하니 일단 ElasticSearch 5.1.1 + mecab-kr 0.2.1 를 CentOS 6.6에 설치하는것으로  진행 해보겠다. (잘되려나..)


일단 바이너리 파일만 받아놓고. 설치기는 다음에.


Elastic Search 5.1.1 

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.zip  전체파일은 여기서 받을 수 있다.

(tistory 10메가파일만 업로드되어 원시파일 압축해제 후 재 압축)

elasticsearch-5.1.1.zip.001

elasticsearch-5.1.1.zip.002

elasticsearch-5.1.1.zip.003

elasticsearch-5.1.1.zip.004

tar : https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.tar.gz


mecab-ko-dic v0.21

elasticsearch-analysis-mecab-ko-5.1.1.0.zip



'linux' 카테고리의 다른 글

ElasticSearch 5.1.1 외부에서 접근  (0) 2017.03.22
ElasticSearch 5.1.1 설치  (0) 2017.03.22
Apache + PHP + Oracle  (0) 2015.02.28
CentOS NFS 설정  (0) 2015.02.27
Linux shell(1분동안 계속 반복 수행)  (0) 2015.02.27

서버 시간 설정

[root@web102 ~]# crontab -l

MAILTO=""

0 0 * * * /usr/bin/rdate -s time.bora.net && /sbin/clock -w

 

 

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

 

yum -y install apr*  openssl-devel libtermcap-devel ncurses-devel libxml* curl-devel libjpeg* libpng* freetype-devel  libmcrypt* libmhash mhash* pcre-devel lua-devel libxml2-devel ncurses-devel zlib zlib-devel curl libtermcap-devel libc-client-devel bison gcc g++ cpp gcc-c++ freetype freetype-devel freetype-utils gd gd-devel libjpeg libjpeg-devel libpng libpng-devel curl curl-devel flex php-mbstring lrzsz libexif-devel libtool

 

 

wget http://downloads.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

wget http://downloads.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2

tar jxf libmcrypt-2.5.8.tar.bz2

cd libmcrypt-2.5.8

./configure

make

make install

ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2

 

 

wget http://www.youtu.kr/mirror/mhash-0.9.9.9.tar.gz

wget https://ko.osdn.net/frs/g_redir.php?m=kent\&f=mhash%2Fmhash%2F0.9.9.9%2Fmhash-0.9.9.9.tar.gz


# tar zxvf mhash-0.9.9.9.tar.gz

# cd /root/setup/etc/mhash-0.9.9.9; LD_LIBRARY_PATH=/usr/local/lib ./configure --prefix=/usr/local/

# make && make install

# ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2

# ln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2

 

 

Mcrypt download

http://downloads.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmcrypt%2Ffiles%2FMCrypt%2F2.6.8%2F&ts=1403153316&use_mirror=jaist

./configure

make && make install

 

/bin/rm: cannot remove `libtoolT': No such file or directory

# autoreconf --force --install 

# libtoolize --automake --force 

# automake --force --add-missing 

 

PHP Compile

./configure \

--with-apxs2=/usr/local/apache2/bin/apxs \

--with-config-file-path=/usr/local/apache2/conf \

--prefix=/usr/local/php \

--with-mysql=/usr/local/mysql \

--with-freetype-dir=/usr/include/freetype2/freetype \

--disable-debug \

--disable-rpath \

--enable-bcmath \

--enable-exif \

--enable-ftp \

--enable-ftp=shared \

--enable-gd-native-ttf \

--enable-inline-optimization \

--enable-mbregex \

--enable-mbstring \

--enable-sockets \

--enable-sysvsem \

--enable-sysvshm \

--enable-wddx \

--enable-zip \

--with-curl \

--with-freetype-dir=/usr \

--with-gd \

--with-gettext \

--with-iconv \

--with-jpeg-dir=/usr/local/lib \

--with-libxml-dir=/usr/lib \

--with-mcrypt \

--with-mhash \

--with-mysql \

--with-mysqli \

--with-openssl \

--with-png-dir=/usr/local/lib \

--with-libxml-dir=/usr/lib \

--with-zlib \

--with-pear

 

Note that the MySQL client library is not bundled anymore!

'./configure' \

'--with-apxs2=/svc/BVM/web/apache-2.2.23/bin/apxs' \

'--with-config-file-path=/svc/BVM/web/apache-2.2.23/conf' \

'--prefix=/svc/BVM/was/php-5.4.6' \

'--with-freetype-dir=/usr/include/freetype2/freetype' \

'--disable-debug' \

'--disable-rpath' \

'--enable-bcmath' \

'--enable-exif' \

'--enable-ftp' \

'--enable-ftp=shared' \

'--enable-gd-native-ttf' \

'--enable-inline-optimization' \

'--enable-mbregex' \

'--enable-mbstring' \

'--enable-sockets' \

'--enable-sysvsem' \

'--enable-sysvshm' \

'--enable-wddx' \

'--enable-zip' \

'--with-curl' \

'--with-freetype-dir=/usr' \

'--with-gd' \

'--with-gettext' \

'--with-iconv' \

'--with-jpeg-dir=/usr/local/lib' \

'--with-mcrypt' \

'--with-mhash' \

'--with-mysql=/svc/BVM/MYSQL/mysql-5.5.25a/' \

'--with-mysqli=/svc/BVM/MYSQL/mysql-5.5.25a/mysql_config' \

'--with-openssl' \

'--with-png-dir=/usr/local/lib' \

'--with-libxml-dir=/usr/lib' \

'--with-zlib' \

'--with-pear' \

"$@"

 

 

 

make && make install

 

 

/etc/hosts

#ORACLE

192.168.135.106 aoadb-scan

192.168.135.89  oradb1

192.168.135.90  oradb1

 

[root@aoacrm1 php-5.4.6]# cat > /usr/lib/oracle/tnsnames.ora

AOA =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = oradb1)(PORT = 1527))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = AOA)

    )

  )

 

OCI8 install

 

ln -s /svc/AOA/was/php-5.4.6/lib/php/extensions/no-debug-zts-20100525/oci8.so /svc/AOA/was/php-5.4.6/lib/php/extensions/oci8.so

 

 

 

 

cp /data/backup/php.ini /svc/AOA/web/apache-2.2.25/conf/php.ini

php -q /data/backup/test.php

 

 

 

 

오라클 설치

yum install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat

 

 

리눅스(CentOS 6.2)에 Oracle 11g 설치

 

ㅇ Package Requirements

 

binutils-2.20.51.0.2-5.11.el6.i686

compat-libcap1-1.10-1.i686

compat-libstdc++-33-3.2.3-69.el6.i686

gcc-4.4.4-13.el6.i686

gcc-c++-4.4.4-13.el6.i686

glibc-2.12-1.7.el6.i686

glibc-devel-2.12-1.7.el6.i686

ksh

libgcc-4.4.4-13.el6.i686

libstdc++-4.4.4-13.el6.i686

libstdc++-devel-4.4.4-13.el6.i686

libaio-0.3.107-10.el6.i686

libaio-devel-0.3.107-10.el6.i686

make-3.81-19.el6.i686

sysstat-9.0.4-11.el6.i686

 

 

[root@localhost ~]# yum install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat

 

 

 

ㅇ 그룹과 계정 생성

groupadd oinstall; groupadd dba;useradd -g oinstall -G dba oracle;passwd oracle

[root@localhost ~]# groupadd oinstall

[root@localhost ~]# groupadd dba    

[root@localhost ~]# id oracle       

id: oracle: No such user            

[root@localhost ~]# useradd -g oinstall -G dba oracle

[root@localhost ~]# passwd oracle

 

 

 

ㅇ 커널 파라미터 설정

 

/etc/sysctl.conf 파일 제일 아래쪽에 복사

 

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

 

 

ㅇ Resource Limits for Oracle

 

 etc/security/limits.conf 파일 제일 아래에 다음을 넣어준다.

 

oracle              soft    nproc   2047

oracle              hard    nproc   16384

oracle              soft    nofile  1024

oracle              hard    nofile  65536

oracle              soft    stack   10240

 

 

ㅇ 오라클 설치 디렉토리 만들기

 

[root@localhost test0]# mkdir -p /app

[root@localhost test0]# chown -R oracle:oinstall /app

[root@localhost test0]# chmod -R 775 /app

 

 

ㅇ 오라클 환경변수 만들기

 

[oracle@localhost ~]$ vi /home/oracle/bash_profile

 

(profile 파일 제일 아래에 추가)

 

export ORACLE_BASE=/app/oracle

export ORACLE_SID=CENTORA

export ORACLE_HOME=/app/oracle/dbhome

export ORACLE_HOME_LISTNER=$ORACLE_HOME/bin/lsnrctl

 

 

 

ㅇ 추가 프로그램 설치

 

# yum install unixODBC, unixODBC-devel, pdksh

 

# rpm -Uvh --nodeps pdksh-5.2.14-8.i386.rpm

 

 

 

< style type="text/css"> #hiddenmorepopup { display:block; }< /style>

아파치 2.2.x
wget
http://archive.apache.org/dist/httpd/httpd-2.2.13.tar.gz
tar -xvzf httpd-2.2.13.tar.gz
cd httpd-2.2.13
./configure --prefix=/usr/local/apache2 --enable-so \
              --enable-ssl --with-ssl=/usr/local/ssl \
              --enable-rewrite \
              --enable-suexec --with-suexec-caller=bin \
              --enable-deflate --enable-headers \
              --enable-dav \
              --with-included-apr
--enable-lib64 --libdir=/usr/lib64 \
              --with-mpm=worker

 

#--enable-lib64 --libdir=/usr/lib64 64비트 시스템일경우 추가
#--enable-ssl ssl https 인증서 사용시 필요
#--enable-rewrite 주소 재작성 모듈
#--enable-suexec cgi 실행 권한 관련
#--enable-deflate --enable-headers 압축관련(이미지등)
#--enable-dav subversion에서 사용됨
#--with-included-apr 아파치 소스에 포함된 apr을 그대로 사용하도록 지정
#--with-mpm=worker 아파치의 프로세스 동작 설정(기본 옵션은 prefork)

make && make install

 

출처: <http://wiki.nettem.co.kr/Wiki.jsp?page=Apache_Install_Linux>

+ Recent posts