ballqs 님의 블로그
[Elasticsearch] Elasticsearch 설치하기 본문
강의를 보면서 Elasticsearch를 설치 따라 해보면서 정리한 글이라 작성해봅니다.
ElasticSearch 설치를 Oracle VM VirtualBox 를 사용하여 진행했습니다.
Oracle VM VirtualBox
작성자는 Window 환경이라서 Window 버전을 다운로드하여 진행했습니다.
Ubuntu
Ubuntu 22.04버전을 다운로드 했고 받으면 7z 형식으로 압축되어 있는데 이는 압축 풀수 있는 프로그램으로 해제합시다.
VM VirtualBox에 새로 추가하기
이름 : 가상 머신 이름
폴더 : 해당 가상머신 경로
ISO 이미지 : 선택안함
종류 : Linux
버전 : Ubuntu (64-bit)
설정해서 다음으로 넘어가면
기본 메모리는 4GB 정도가 적당하다고 합니다.
프로세서는 CPU사양에 따라 적절하게 고르면 될거 같아서 초록색선 안에서 적당하게 2개로 했습니다.
기존 가상 하드 디스크 파일을 사용해서 아까 Ubuntu 를 다운로드한 경로를 찾아서 선택해주고 만들면 됩니다.
Elasticsearch 설치
계정명이 osboxes.org 로 나오는데 비밀번호 또한 osboxes.org 입니다!
터미널로 이동하여 아래와 같이 진행해줍니다.
Elasticsearch 저장소의 GPG 키를 다운로드하고, gpg 명령어로 키를 변환하여 시스템의 안전한 키 저장소(/usr/share/keyrings/elasticsearch-keyring.gpg)에 저장
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
HTTPS 프로토콜을 통해 APT(패키지 관리 시스템) 저장소에 접근할 수 있게 필요한 패키지를 설치
sudo apt-get install apt-transport-https
※ 혹시 apt-transport-https 가 설치가 안될 경우
sudo rm /var/lib/dpkg/info/*
sudo apt-get update
Elasticsearch의 APT 저장소를 시스템에 추가
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt-get update: APT 패키지 목록을 다시 업데이트 및 sudo apt-get install elasticsearch: Elasticsearch를 설치
sudo apt-get update && sudo apt-get install elasticsearch
Elasticsearch 설정 변경
Elasticsearch의 주요 설정 파일(elasticsearch.yml)을 nano 편집기로 열기
sudo nano /etc/elasticsearch/elasticsearch.yml
node.name 를 node-1로 설정해줍니다.
network.host를 0.0.0.0으로 설정해줍니다.
왜냐하면 외부 호스트가 아닌 로컬 머신에서 실행할 것이기 때문입니다.
discovery.seed_hosts 를 [”127.0.0.1”] 로 설정해줍니다.
보안을 비활성화처리 해야합니다.
Elasticsearch 8의 새로운 점은 보안이 기본적으로 활성화 되어 있다는 점인데 하지만 지금 하는 방식에는 로컬 머신 즉 가상 머신에서 실행하고 있어서 필요하지 않아서 비활성화 하는 것입니다.
xpack.security.enabled 를 false로 설정해줍니다.
cluster.initial_master_nodes 는 앞에서 설정해준 node-1로 설정해줍니다.
systemctl로 실행할수 있는 elasticsearch.service를 nano 편집기로 열기
sudo nano /lib/systemd/system/elasticsearch.service
TimeoutStartSec를 찾아서 600으로 설정해줍니다.
엘라스틱서치 로그를 확인할수 있게 접근 권한을 주기
sudo chmod 755 -R /var/log/elasticsearch/
오류를 피하기 위해 시스템이 부팅될 때 Elasticsearch가 자동으로 시작되도록 설정하기
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
Elasticsearch 시작하기
sudo /bin/systemctl start elasticsearch.service
Elasticsearch 상태확인하기
sudo /bin/systemctl status elasticsearch.service
Elasticsearch 동작 확인
※ curl로 해볼 예정이라 없다면 설치하기
sudo apt-get install curl
curl -XGET 127.0.0.1:9200
제대로 응답이 오는 것을 확인할수 있습니다.
그리고 어떤 매개변수도 없이 Elasticsearch에 접근하면 검색을 위한 태그 라인이 포함된 일반적인 응답이 반환됩니다.
실제로 데이터를 넣어보고 매핑되는지 확인해보는 작업을 보겠습니다.
sudo wget http://media.sundog-soft.com/es8/shakes-mapping.json
less shake-mapping.json
각자 데이터가 어떤 유형인지 확인이 가능합니다.
이를 바탕으로 우리가 유형에 지정할 속성들을 엘라스틱서치에 넣어보겠습니다.
curl -H "Content-Type: application/json" -XPUT 127.0.0.1:9200/shakespeare --data-binary @shakes-mapping.json
sudo wget http://media.sundog-soft.com/es8/shakespeare_8.0.json
less shakespeare_8.0.json
curl -H "Content-Type: application/json" -XPUT '127.0.0.1:9200/shakespeare/_bulk' --data-binary @shakespeare_8.0.json
이렇게 데이터가 들어간 것을 볼 수 있다.
Elasticsearch에 넣어둔 데이터 -XGET으로 가져오기!!
curl -H "Content-Type: application/json" -XGET '127.0.0.1:9200/shakespeare/_search?pretty' -d '
{
"query" : {
"match_phrase" : {
"text_entry" : "to be or not to be"
}
}
}'
text_entry에 To be, or not to be가 담긴 햄릿의 내용을 가져오는 것이 확인이 되었습니다.