SW/리눅스

Ubuntu 18.04 : Elasticsearch 설치 방법, 예제, 명령어

얇은생각 2021. 6. 24. 07:30
반응형

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

Elasticsearch는 대형 전자 상거래 상점 및 분석 애플리케이션과 같은 복잡한 검색 요구 사항이있는 애플리케이션을 지원하는 가장 인기있는 검색 엔진 중 하나입니다.

이 튜토리얼에서는 Ubuntu 18.04 Elasticsearch를 설치하는 방법을 보여줍니다. Ubuntu 16.04 Linux Mint, Kubuntu Elementary OS를 포함한 모든 Ubuntu 기반 배포에 동일한 지침이 적용됩니다.

 

 

Ubuntu 18.04 : Elasticsearch 설치 방법, 예제, 명령어

 

 

전제 조건

Ubuntu 시스템에 패키지를 설치하려면 sudo 권한이있는 사용자로 로그인해야합니다.

 

 

 

Elasticsearch 설치

Ubuntu 18.04 Elasticsearch를 설치하는 가장 쉬운 방법은 공식 Elasticsearch 저장소에서 deb 패키지를 설치하는 것입니다.

작성할 당시 Elasticsearch의 최신 버전은 7.0.0이며 시스템에 Java 8을 설치해야합니다.

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

sudo apt update
sudo apt install apt-transport-https

 

 

OpenJDK 8 설치 :

sudo apt install openjdk-8-jdk

 

Java 버전을 출력하는 다음 명령을 실행하여 Java 설치를 확인하십시오.

출력은 다음과 같아야합니다.

java -version

# openjdk version "1.8.0_191"
# OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12)
# OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

 

 

Java가 설치되었으므로 다음 단계는 Elasticsearch 저장소를 추가하는 것입니다.

다음 wget 명령을 사용하여 저장소의 GPG를 가져옵니다.

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

 

 

위의 명령은 OK를 출력해야합니다. 이는 키를 성공적으로 가져 왔고이 저장소의 패키지가 신뢰할 수있는 것으로 간주된다는 의미입니다.

다음으로 다음을 실행하여 Elasticsearch 저장소를 시스템에 추가합니다.

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

 

 

이전 버전의 Elasticsearch를 설치하려면 위 명령에서 7.x를 필요한 버전으로 변경하십시오.

리포지토리가 활성화되면 다음을 입력하여 apt 패키지 목록을 업데이트하고 Elasticsearch 엔진을 설치합니다.

sudo apt update
sudo apt install elasticsearch

 

 

Elasticsearch 서비스는 설치 프로세스가 완료된 후 자동으로 시작되지 않습니다. 서비스를 시작하고 서비스 실행을 활성화하려면 :

 

sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

 

 

다음 curl 명령을 사용하여 localhost의 포트 9200 HTTP 요청을 전송하여 Elasticsearch가 실행 중인지 확인할 수 있습니다.

curl -X GET "localhost:9200/"

# {
#   "name" : "kwEpA2Q",
#   "cluster_name" : "elasticsearch",
#   "cluster_uuid" : "B-5B34LXQFqDeIYwSgD3ww",
#   "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 초가 걸립니다. 몇 초 동안 기다린 후 다시 시도하십시오.

Elasticsearch 서비스에서 기록한 메시지를 보려면 아래 명령을 사용할 수 있습니다.

sudo journalctl -u elasticsearch

 

 

이제 Ubuntu 서버에 Elasticsearch가 설치되어 있습니다.

 

 

 

Elasticsearch 구성

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

기본적으로 Elasticsearch localhost에서만 수신하도록 구성됩니다. 데이터베이스에 연결하는 클라이언트도 동일한 호스트에서 실행 중이고 단일 노드 클러스터를 설정하는 경우 기본 구성 파일을 변경할 필요가 없습니다.

 

 

 

원격 액세스

즉시 사용 가능한 Elasticsearch HTTP API에 액세스 할 수있는 모든 사람이 액세스 할 수 있도록 인증을 구현하지 않습니다. Elasticsearch 서버에 대한 원격 액세스를 허용하려면 방화벽을 구성하고 신뢰할 수있는 클라이언트에서만 Elasticsearch 포트 9200에 대한 액세스를 허용해야합니다.

Ubuntu에는 UFW라는 방화벽 구성 도구가 함께 제공됩니다. 기본적으로 UFW는 설치되지만 활성화되지는 않습니다. UFW 방화벽을 활성화하기 전에 먼저 들어오는 SSH 연결을 허용하는 규칙을 추가하십시오.

sudo ufw allow 22

 

 

신뢰할 수있는 원격 IP 주소에서 평가 허용 :

sudo ufw allow from 192.168.100.20 to any port 9200

 

 

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

다음을 입력하여 UFW를 활성화합니다.

sudo ufw enable

 

 

마지막으로 방화벽 상태를 확인하십시오.

sudo ufw status

# Status: active
# 
# To                         Action      From
# --                         ------      ----
# 22                         ALLOW       Anywhere
# 9200                       ALLOW       192.168.100.20
# 22 (v6)                    ALLOW       Anywhere (v6)

 

 

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

이렇게하려면 elasticsearch.yml 구성 파일을 엽니 다.

sudo nano /etc/elasticsearch/elasticsearch.yml

 

 

network.host가 포함 된 줄을 검색하고 주석 처리를 제거하고 값을 0.0.0.0으로 변경합니다.

# /etc/elasticsearch/elasticsearch.yml

network.host: 0.0.0.0

 

 

머신에 여러 네트워크 인터페이스가있는 경우 Elasticsearch가 지정된 인터페이스에서만 수신하도록하는 인터페이스 IP 주소를 지정할 수 있습니다.

변경 사항을 적용하려면 Elasticsearch 서비스를 다시 시작하십시오.

sudo systemctl restart elasticsearch

 

 

이제 원격 위치에서 Elasticsearch 서버에 연결할 수 있습니다.

반응형