SW/리눅스

Debian 9 : Elasticsearch 설치 방법, 예제, 명령어

얇은생각 2021. 8. 16. 07:30
반응형

Elastic 검색은 오픈 소스 분산 전체 텍스트 검색 및 분석 엔진입니다. RESTful 작업을 지원하며 대용량 데이터를 실시간으로 저장, 검색 및 분석할 수 있습니다.

탄력적 검색은 대형 전자상거래 스토어 및 분석 응용프로그램과 같은 복잡한 검색 요구사항을 가진 응용프로그램을 구동하는 가장 인기 있는 검색 엔진 중 하나입니다.

Debian 9에 Elastic 검색을 설치하는 과정을 안내합니다.

 

 

Debian 9 : Elasticsearch 설치 방법, 예제, 명령어

 

 

전제조건

Debian 서버에 패키지를 설치하려면 sudo 권한을 가진 사용자로 로그인해야 합니다.

 

 

 

ElasticsSearch 설치

Debian에 Elastic 검색을 설치하는 가장 쉬운 방법은 공식 Elastic 검색 저장소를 사용하는 것입니다. Elastic 검색의 최신 버전은 7.0.0이며 시스템에 Java 8을 설치해야 합니다.

먼저 패키지 인덱스를 업데이트하고 HTTPS를 통해 저장소에 액세스하는 데 필요한 apt-transport-https 패키지를 설치합니다.

sudo apt update
sudo apt install apt-transport-https
sudo apt install openjdk-8-jdk

 

 

Java 버전을 인쇄하여 Java 설치를 확인합니다.

java -version

# openjdk version "1.8.0_181"
# OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
# OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

 

 

다음 단계는 Elastic 검색 저장소를 추가하는 것입니다.

다음 wget 명령을 사용하여 리포지토리의 공개 키를 가져옵니다.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

 

 

위의 명령은 확인을 출력해야 합니다. 즉, 키를 성공적으로 가져왔으며 이 리포지토리에서 패키지를 신뢰할 수 있는 것으로 간주됩니다.

그런 다음 다음을 실행하여 Elastic 검색 저장소를 시스템에 추가합니다.

sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'

 

 

다른 버전의 Elastic 검색을 설치하려면 위의 명령에서 필요한 버전으로 7.x를 변경하십시오.

패키지 인덱스를 업데이트하고 Elastic 검색 엔진을 설치합니다.

설치 프로세스가 완료되면 다음 명령을 사용하여 서비스를 시작하고 활성화하십시오.

sudo apt update
sudo apt install elasticsearch
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

 

 

Elastic 검색이 실행 중인지 확인하려면 다음 curl 명령을 사용하여 로컬 호스트의 포트 9200에 HTTP 요청을 보냅니다.

curl -X GET "localhost:9200/"

# {
#   "name" : "stretch",
#   "cluster_name" : "elasticsearch",
#   "cluster_uuid" : "Nj2W3PswRuWvJW8JG75O1Q",
#   "version" : {
#     "number" : "7.0.0",
#     "build_flavor" : "default",
#     "build_type" : "deb",
#     "build_hash" : "b7e28a7",
#     "build_date" : "2019-04-05T22:55:32.697037Z",
#     "build_snapshot" : false,
#     "lucene_version" : "8.0.0",
#     "minimum_wire_compatibility_version" : "6.7.0",
#     "minimum_index_compatibility_version" : "6.0.0-beta1"
#   },
#   "tagline" : "You Know, for Search"
# }

 

 

서비스를 시작하는 데 5-10초가 걸릴 수 있습니다. 컬이 표시되면 (7) 로컬 호스트 포트 9200에 연결하지 못했습니다. 연결이 거부되었습니다. 몇 초간 기다린 후 다시 시도하십시오.

Elastic 검색 서비스에서 기록한 메시지를 보려면 아래 명령을 사용하십시오.

sudo journalctl -u elasticsearch

 

 

Debian 서버에 탄력적인 검색이 설치되었습니다.

 

 

 

ElasticSearch 구성

ElasticSearch 데이터는 /var/lib/elasticSearch 디렉토리에 저장됩니다. 구성 파일은 /etc/elasticSearch에 있으며 Java 시작 옵션은 /etc/default/elasticSearch 파일에서 구성할 수 있습니다. 

기본적으로 Elastic 검색은 로컬 호스트에서만 수신하도록 구성됩니다. 데이터베이스에 연결하는 클라이언트도 동일한 호스트에서 실행 중이고 단일 노드 클러스터를 설정하는 경우에는 원격 액세스를 설정할 필요가 없습니다.

 

 

원격 액세스

기본적으로 Elastic 검색은 HTTP API에 액세스할 수 있는 사용자가 액세스할 수 있도록 인증을 구현하지 않습니다. Elastic 검색 서버에 대한 원격 액세스를 허용하려면 방화벽을 구성하고 신뢰할 수 있는 클라이언트에서만 Elastic 검색 포트 9200에 대한 액세스를 허용해야 합니다.

UFW를 선택한 방화벽 도구로 사용하는 경우 다음 명령을 실행하여 신뢰할 수 있는 원격 IP 주소의 포트 9200에 대한 평가를 허용합니다.

sudo ufw allow from 192.168.100.20 to any port 9200

 

 

원격 IP 주소로 192.168.100.20을 변경하는 것을 잊지 마십시오.

그렇지 않으면 일반 이전 iptables를 사용하는 경우 다음을 실행합니다.

sudo iptables -A INPUT -p tcp -s 192.168.100.20 --dport 9200 -j ACCEPT

 

 

방화벽이 구성되면 다음 단계는 구성을 편집하고 외부 연결을 수신하도록 ElasticSearch을 설정하는 것입니다.

이렇게 하려면 elastic search.yml 구성 파일을 여십시오.

sudo nano /etc/elasticsearch/elasticsearch.yml

 

 

네트워크가 포함된 줄을 검색합니다.호스트, 주석 달지 않고 값을 0.0.0.0으로 변경합니다.

# /etc/elasticsearch/elasticsearch.yml

network.host: 0.0.0.0

 

 

시스템에 네트워크 인터페이스가 여러 개 있는 경우 인터페이스 IP 주소를 지정할 수 있으며, 이로 인해 Elastic 검색은 지정된 인터페이스에서만 수신 대기하게 됩니다.

Elastic 검색 서비스를 다시 시작하여 변경 내용을 적용합니다.

sudo systemctl restart elasticsearch

 

 

이때 원격 위치에서 Elastic 검색 서버에 연결할 수 있습니다.

반응형