Linux·macOS 아카이브 설치
원본 보기Linux·macOS 아카이브 설치
Elasticsearch는 Linux 및 macOS용 .tar.gz 아카이브로 제공됩니다.
이 패키지에는 무료 기능과 구독 기능이 모두 포함되어 있습니다. 모든 기능을 사용해 보려면 30일 평가판을 시작하세요.
Elasticsearch의 최신 안정 버전은 Elasticsearch 다운로드 페이지에서 찾을 수 있습니다. 다른 버전은 이전 릴리스 페이지에서 찾을 수 있습니다.
Elasticsearch에는 JDK 유지 관리자가 제공하는 OpenJDK 번들 버전(GPLv2+CE)이 포함되어 있습니다. 자체 Java 버전을 사용하려면 JVM 버전 요구 사항을 참조하세요.
Elastic은 이 가이드의 명령어를 일반 사용자 계정으로 실행하고 root로 실행하지 않을 것을 권장합니다.
Elasticsearch를 설치하기 전에 다음을 수행하세요.
지원되는 운영 체제를 검토하고 Elasticsearch를 설치할 가상 또는 물리적 호스트를 준비합니다.
Elasticsearch는 목록에 있는 플랫폼에서 테스트되었지만 다른 플랫폼에서도 작동할 수 있습니다.
중요 시스템 구성 지침에 따라 운영 체제를 구성합니다.
Linux 또는 macOS용 아카이브를 다운로드하고 설치합니다.
Elasticsearch용 Linux 아카이브는 다음과 같이 다운로드하고 설치할 수 있습니다.
Elasticsearch 9.5.1 아카이브를 다운로드하고 설치하려면 다음을 입력합니다.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.5.1-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.5.1-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-9.5.1-linux-x86_64.tar.gz.sha512
tar -xzf elasticsearch-9.5.1-linux-x86_64.tar.gz
cd elasticsearch-9.5.1/
- 다운로드한
.tar.gz아카이브의 SHA와 공개된 체크섬을 비교합니다.elasticsearch-<version>-linux-x86_64.tar.gz: OK가 출력되어야 합니다. - 이 디렉터리를
$ES_HOME이라고 합니다.
<SPECIFIC.VERSION.NUMBER>를 원하는 Elasticsearch 버전 번호로 바꿉니다. 예를 들어 <SPECIFIC.VERSION.NUMBER>를 9.0.0으로 바꿀 수 있습니다.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-<SPECIFIC.VERSION.NUMBER>-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-<SPECIFIC.VERSION.NUMBER>-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-<SPECIFIC.VERSION.NUMBER>-linux-x86_64.tar.gz.sha512
tar -xzf elasticsearch-<SPECIFIC.VERSION.NUMBER>-linux-x86_64.tar.gz
cd elasticsearch-<SPECIFIC.VERSION.NUMBER>/
- 다운로드한
.tar.gz아카이브의 SHA와 공개된 체크섬을 비교합니다.elasticsearch-<SPECIFIC.VERSION.NUMBER>-linux-x86_64.tar.gz: OK가 출력되어야 합니다. - 이 디렉터리를
$ES_HOME이라고 합니다.
Elasticsearch용 macOS 아카이브는 다음과 같이 다운로드하고 설치할 수 있습니다.
Elasticsearch 9.5.1 아카이브를 다운로드하고 설치하려면 다음을 입력합니다.
curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.5.1-darwin-x86_64.tar.gz
curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.5.1-darwin-x86_64.tar.gz.sha512 | shasum -a 512 -c -
tar -xzf elasticsearch-9.5.1-darwin-x86_64.tar.gz
cd elasticsearch-9.5.1/
- 다운로드한
.tar.gz아카이브의 SHA와 공개된 체크섬을 비교합니다.elasticsearch-<version>-darwin-x86_64.tar.gz: OK가 출력되어야 합니다. - 이 디렉터리를
$ES_HOME이라고 합니다.
<SPECIFIC.VERSION.NUMBER>를 원하는 Elasticsearch 버전 번호로 바꿉니다. 예를 들어 <SPECIFIC.VERSION.NUMBER>를 9.0.0으로 바꿀 수 있습니다.
curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-<SPECIFIC.VERSION.NUMBER>-darwin-x86_64.tar.gz
curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-<SPECIFIC.VERSION.NUMBER>-darwin-x86_64.tar.gz.sha512 | shasum -a 512 -c -
tar -xzf elasticsearch-<SPECIFIC.VERSION.NUMBER>-darwin-x86_64.tar.gz
cd elasticsearch-<SPECIFIC.VERSION.NUMBER>/
- 다운로드한
.tar.gz아카이브의 SHA와 공개된 체크섬을 비교합니다.elasticsearch-<SPECIFIC.VERSION.NUMBER>-darwin-x86_64.tar.gz: OK가 출력되어야 합니다. - 이 디렉터리를
$ES_HOME이라고 합니다.
Apple이 더 엄격한 공증 요구 사항을 도입하면서 9.5.1 Elasticsearch 아티팩트의 공증에 영향을 미쳤습니다. Elasticsearch를 처음 실행할 때 macOS가 실행을 중단하는 대화 상자를 표시하면 실행을 허용하는 조치를 취해야 합니다.
Elasticsearch 파일에 대한 Gatekeeper 검사를 방지하려면 다운로드한 .tar.gz 아카이브 또는 압축을 푼 디렉터리에서 다음 명령어를 실행합니다.
xattr -d -r com.apple.quarantine <archive-or-directory>
또는 공증되지 않았거나 확인되지 않은 개발자가 제공한 앱을 열려는 경우 섹션에 설명된 Mac에서 앱을 안전하게 열기 지침에 따라 보안 예외를 추가할 수 있습니다.
이 섹션은 이전에 action.auto_create_index를 기본값에서 변경한 경우에만 필요합니다.
일부 기능은 Elasticsearch 내에 인덱스를 자동으로 생성합니다. 기본적으로 Elasticsearch는 인덱스 자동 생성을 허용하도록 구성되어 있으므로 추가 단계가 필요하지 않습니다. 그러나 Elasticsearch에서 인덱스 자동 생성을 비활성화했다면 기능이 다음 인덱스를 생성할 수 있도록 action.auto_create_index를 elasticsearch.yml에서 구성해야 합니다.
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
Logstash 또는 Beats를 사용한다면 action.auto_create_index 설정에 추가 인덱스 이름이 필요할 가능성이 높으며, 정확한 값은 로컬 구성에 따라 달라집니다. 환경에 맞는 값을 확신할 수 없다면 모든 인덱스의 자동 생성을 허용하는 *로 설정하는 방안을 고려할 수 있습니다.
Elasticsearch가 처음 시작되면 보안 자동 구성 프로세스는 HTTP 계층을 0.0.0.0에 바인딩하지만 전송 계층은 localhost에만 바인딩합니다. 이는 추가 구성 없이도 기본적으로 보안이 활성화된 단일 노드 클러스터를 시작할 수 있도록 의도된 동작입니다.
새 노드를 등록하기 전에 프로덕션 클러스터에서는 일반적으로 localhost가 아닌 주소에 바인딩하거나 부트스트랩 검사를 충족하는 등의 추가 작업이 필요합니다. 그동안 자동 생성된 등록 토큰이 만료될 수 있으므로 등록 토큰은 자동으로 생성되지 않습니다.
추가 구성 없이 클러스터에 참여할 수 있는 것은 같은 호스트의 노드뿐입니다. 다른 호스트의 노드가 클러스터에 참여하게 하려면 인스턴스에 접근할 수 있도록 설정해야 합니다.
클러스터 구성 프로세스에 대한 자세한 내용은 검색 및 클러스터 구성을 참조하세요.
여러 호스트에 걸친 다중 노드 클러스터의 첫 번째 노드를 설치하는 경우 다른 호스트가 연결할 수 있도록 노드를 구성해야 합니다.
클러스터에 추가 노드를 설치하는 경우 등록 토큰을 생성하고 Elasticsearch를 처음 시작할 때 전달해야 합니다.
다른 호스트가 이 첫 번째 노드에 연결할 수 있도록 elasticsearch.yml의 설정을 편집하여 Elasticsearch 구성을 업데이트합니다.
텍스트 편집기에서
elasticsearch.yml을 엽니다.다중 노드 Elasticsearch 클러스터에서는 모든 Elasticsearch 인스턴스의 이름이 같아야 합니다.
구성 파일에서
#cluster.name: my-application줄의 주석을 제거하고 Elasticsearch 인스턴스에 원하는 이름을 지정합니다.cluster.name: elasticsearch-demo기본적으로 Elasticsearch는
localhost에서 실행됩니다. 다른 노드의 Elasticsearch 인스턴스가 클러스터에 참여할 수 있게 하려면 라우팅 가능한 외부 IP 주소에서 실행되도록 Elasticsearch를 설정해야 합니다.#network.host: 192.168.0.1줄의 주석을 제거하고 기본 주소를0.0.0.0으로 바꿉니다.0.0.0.0설정을 사용하면 Elasticsearch가 사용 가능한 모든 네트워크 인터페이스에서 연결을 수신할 수 있습니다. 프로덕션 환경에서는 고정 IP 주소 또는 다른 값(예: 호스트의 네트워크 인터페이스 참조)을 사용할 수 있습니다.network.host: 0.0.0.0Elasticsearch가 다른 외부 호스트의 연결을 수신할 수 있도록 설정해야 합니다.
#transport.host: 0.0.0.0줄의 주석을 제거합니다.0.0.0.0설정을 사용하면 Elasticsearch가 사용 가능한 모든 네트워크 인터페이스에서 연결을 수신할 수 있습니다. 프로덕션 환경에서는 고정 IP 주소 또는 다른 값(예: 호스트의 네트워크 인터페이스 참조)을 사용할 수 있습니다.transport.host: 0.0.0.0팁network.host및transport.host설정에 대한 자세한 내용은 Elasticsearch 네트워크 설정 참조에서 확인할 수 있습니다.변경 사항을 저장하고 편집기를 닫습니다.
클러스터에 새 노드를 등록하려면 클러스터의 기존 노드에서 elasticsearch-create-enrollment-token 도구로 등록 토큰을 생성합니다. 그런 다음 --enrollment-token 매개변수로 새 노드를 시작하여 기존 클러스터에 참여시킬 수 있습니다.
새 노드를 등록하기 전에 클러스터의 첫 번째 노드에 접근할 수 있는지 확인하세요. 첫 번째 노드에 curl 명령어를 실행하여 테스트할 수 있습니다.
첫 번째 노드에 접근할 수 없다면 계속하기 전에 네트워크 구성을 수정하세요.
텍스트 편집기를 사용하여
cluster.name을elasticsearch.yml에서 클러스터의 다른 노드와 일치하도록 업데이트합니다.참고이 값을 업데이트하지 않고 기존 클러스터에 참여하려고 하면 다음 오류와 함께 연결에 실패합니다.
handshake failed: remote cluster name [cluster-to-join] does not match local cluster name [current-cluster-name]Elasticsearch가 실행 중인 터미널과 별도의 터미널에서 Elasticsearch를 설치한 디렉터리로 이동한 후
elasticsearch-create-enrollment-token도구를 실행하여 새 노드의 등록 토큰을 생성합니다../bin/elasticsearch-create-enrollment-token -s nodeElasticsearch 클러스터에 새 노드를 등록할 때 사용할 등록 토큰을 복사합니다.
등록 토큰의 유효 시간은 30분입니다. 추가하는 새 노드마다 새 등록 토큰을 생성해야 합니다.
새 노드의 설치 디렉터리에서 Elasticsearch를 시작하고
--enrollment-token매개변수로 등록 토큰을 전달합니다../bin/elasticsearch --enrollment-token <enrollment-token>Elasticsearch는 다음 디렉터리에 인증서와 키를 자동으로 생성합니다.
config/certs
클러스터에 추가하려는 각 Elasticsearch 노드에 대해 이 단계를 반복할 수 있습니다.
검색 및 샤드 할당에 대한 자세한 내용은 검색 및 클러스터 구성과 클러스터 수준 샤드 할당 및 라우팅 설정을 참조하세요.
Elasticsearch를 시작하는 방법은 여러 가지입니다.
기존 클러스터에 등록할 노드를 시작하는 경우 기존 클러스터에 노드 등록을 참조하세요.
명령줄에서 Elasticsearch를 시작하려면 다음 명령어를 실행합니다.
./bin/elasticsearch
기본적으로 Elasticsearch는 로그를 콘솔(stdout)과 <cluster name>.log 파일(로그 디렉터리 내)에 출력합니다. Elasticsearch는 시작 중에 일부 정보를 기록하지만 초기화가 완료된 후에는 포그라운드에서 계속 실행되며 기록할 만한 이벤트가 발생할 때까지 추가 로그를 남기지 않습니다. Elasticsearch가 실행 중일 때는 기본적으로 9200 포트에 있는 HTTP 인터페이스를 통해 상호 작용할 수 있습니다.
Elasticsearch를 중지하려면 Ctrl-C를 누릅니다.
Elasticsearch와 함께 패키징된 모든 스크립트에는 배열을 지원하는 Bash 버전이 필요하며 Bash가 /bin/bash에 있다고 가정합니다. 따라서 Bash는 직접 또는 심볼릭 링크를 통해 이 경로에서 사용할 수 있어야 합니다.
첫 번째 Elasticsearch 노드를 처음 시작하면 다음 보안 설정이 자동으로 수행됩니다.
- TLS 인증서를 전송 및 HTTP 계층용으로 생성
elasticsearch.yml에 TLS 구성 설정 적용elastic슈퍼유저의 비밀번호 설정- Kibana를 Elasticsearch에 안전하게 연결하기 위한 등록 토큰 생성
그런 다음 Kibana를 시작하고 30분 동안 유효한 등록 토큰을 입력할 수 있습니다. 이 토큰은 Elasticsearch 클러스터의 보안 설정을 자동으로 적용하고, 기본 제공 kibana 서비스 계정으로 Elasticsearch에 인증하며, 보안 구성을 kibana.yml에 기록합니다.
노드 시작 프로세스에서 노드가 이미 클러스터의 일부이거나 보안이 이미 구성되었거나 명시적으로 비활성화된 것을 감지하여 보안을 자동으로 구성할 수 없는 경우도 있습니다.
elastic 사용자의 비밀번호와 Kibana 등록 토큰이 터미널에 출력됩니다.
elastic 비밀번호를 셸의 환경 변수로 저장하는 것이 좋습니다. 예:
export ELASTIC_PASSWORD="your_password"
Elasticsearch 키 저장소를 비밀번호로 보호한 경우 키 저장소 비밀번호를 입력하라는 메시지가 표시됩니다. 자세한 내용은 보안 설정을 참조하세요.
이 비밀번호를 재설정하는 방법은 자체 관리형 클러스터에서 네이티브 및 기본 제공 사용자의 비밀번호 설정을 참조하세요.
Elasticsearch는 기본적으로 다음 위치에서 구성을 로드합니다.
$ES_HOME/config/elasticsearch.yml
이 구성 파일의 형식은 Elasticsearch 구성에 설명되어 있습니다.
구성 파일에 지정할 수 있는 모든 설정은 다음과 같이 -E 구문을 사용하여 명령줄에서도 지정할 수 있습니다.
./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
공백이 포함된 값은 따옴표로 묶어야 합니다. 예: -Epath.logs="C:\My Logs\logs".
일반적으로 cluster.name과 같은 클러스터 전체 설정은 elasticsearch.yml 구성 파일에 추가하고, node.name과 같은 노드별 설정은 명령줄에서 지정할 수 있습니다.
Elasticsearch를 데몬으로 실행하려면 명령줄에 -d를 지정하고 -p 옵션을 사용하여 프로세스 ID를 파일에 기록합니다.
./bin/elasticsearch -d -p pid
Elasticsearch 키 저장소를 비밀번호로 보호한 경우 키 저장소 비밀번호를 입력하라는 메시지가 표시됩니다. 자세한 내용은 보안 설정을 참조하세요.
로그 메시지는 $ES_HOME/logs/ 디렉터리에서 찾을 수 있습니다.
Elasticsearch를 종료하려면 pid 파일에 기록된 프로세스 ID를 종료합니다.
pkill -F pid
9200 포트를 통해 localhost로 HTTPS 요청을 보내 Elasticsearch 노드가 실행 중인지 테스트할 수 있습니다.
curl --cacert $ES_HOME/config/certs/http_ca.crt
-u elastic:$ELASTIC_PASSWORD https://localhost:9200
--cacert: HTTP 계층용으로 생성된http_ca.crt인증서의 경로입니다.$ELASTIC_PASSWORD를elastic슈퍼유저 비밀번호로 바꿉니다. 요청에https를 사용해야 하며, 그렇지 않으면 요청이 실패합니다.
호출은 다음과 같은 응답을 반환합니다.
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "9.0.0-SNAPSHOT",
"build_type" : "tar",
"build_hash" : "f27399d",
"build_flavor" : "default",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "10.0.0",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}
다중 노드 클러스터를 배포하는 경우 등록 프로세스는 새로 등록된 각 노드의 discovery.seed_hosts 설정에 기존 노드를 모두 추가합니다. 하지만 클러스터의 각 노드가 예상대로 다시 시작하고 클러스터에 재참여할 수 있도록 클러스터의 모든 노드로 돌아가 편집해야 합니다.
클러스터의 초기 노드는 단일 노드 클러스터로 부트스트랩되므로 discovery.seed_hosts가 구성되어 있지 않습니다. 이 설정은 다중 노드 클러스터에 필수이며 첫 번째 노드에 수동으로 추가해야 합니다.
클러스터의 각 노드에서 다음 단계를 수행합니다.
- 텍스트 편집기에서
elasticsearch.yml을 엽니다. cluster.initial_master_nodes설정이 있으면 주석 처리하거나 제거합니다.discovery.seed_hosts값에 클러스터 내 마스터 적격 Elasticsearch 노드 각각의 IP 주소와 포트가 포함되도록 업데이트합니다. 클러스터의 첫 번째 노드에는discovery.seed_hosts설정을 수동으로 추가해야 합니다.- 선택적으로 Elasticsearch 서비스를 다시 시작하여 구성 변경 사항을 검증합니다.
이 단계를 수행하지 않으면 하나 이상의 노드가 다시 시작될 때 검색 구성 부트스트랩 검사에 실패합니다.
자세한 내용은 검색 및 클러스터 구성을 참조하세요.
Elasticsearch를 처음 시작하면 HTTP 계층에 TLS가 자동으로 구성됩니다. CA 인증서가 생성되어 다음 디스크 위치에 저장됩니다.
$ES_HOME/config/certs/http_ca.crt
이 인증서의 16진수 인코딩 SHA-256 지문도 터미널에 출력됩니다. Elasticsearch 클라이언트, Beats, 독립 실행형 Elastic Agent, Logstash 등 Elasticsearch에 연결하는 모든 클라이언트는 Elasticsearch가 HTTPS에 사용하는 인증서를 신뢰하는지 검증해야 합니다. Fleet Server와 Fleet 관리형 Elastic Agent는 CA 인증서를 신뢰하도록 자동 구성됩니다. 다른 클라이언트는 CA 인증서의 지문 또는 CA 인증서 자체를 사용하여 신뢰를 설정할 수 있습니다.
자동 구성 프로세스가 이미 완료된 경우에도 보안 인증서의 지문을 가져올 수 있습니다. 또한 CA 인증서를 머신에 복사하고 클라이언트가 이를 사용하도록 구성할 수 있습니다.
Elasticsearch가 시작될 때 터미널에 출력되는 지문 값을 복사하고, 클라이언트가 Elasticsearch에 연결할 때 이 지문을 사용하여 신뢰를 설정하도록 구성합니다.
자동 구성 프로세스가 이미 완료된 경우에도 다음 명령어를 실행하여 보안 인증서의 지문을 가져올 수 있습니다. 이 경로는 HTTP 계층용으로 자동 생성된 CA 인증서를 가리킵니다.
openssl x509 -fingerprint -sha256 -in config/certs/http_ca.crt
이 명령어는 지문을 포함한 보안 인증서를 반환합니다. issuer는 Elasticsearch security auto-configuration HTTP CA여야 합니다.
issuer= /CN=Elasticsearch security auto-configuration HTTP CA
SHA256 Fingerprint=<fingerprint>
라이브러리가 지문 검증 방법을 지원하지 않는 경우 자동 생성된 CA 인증서는 각 Elasticsearch 노드의 다음 디렉터리에 생성됩니다.
$ES_HOME/config/certs/http_ca.crt
http_ca.crt 파일을 머신에 복사하고, 클라이언트가 Elasticsearch에 연결할 때 이 인증서를 사용하여 신뢰를 설정하도록 구성합니다.
아카이브 배포판은 완전히 독립적으로 구성되어 있습니다. 기본적으로 모든 파일과 디렉터리는 아카이브의 압축을 풀 때 생성되는 디렉터리인 $ES_HOME 안에 있습니다.
Elasticsearch를 사용하기 위해 디렉터리를 만들 필요가 없고 $ES_HOME 디렉터리만 제거하면 간단히 Elasticsearch를 제거할 수 있어 편리합니다. 하지만 나중에 중요한 데이터를 삭제하지 않도록 구성 디렉터리, 데이터 디렉터리, 로그 디렉터리의 기본 위치를 변경해야 합니다.
| 유형 | 설명 | 기본 위치 | 설정 |
|---|---|---|---|
| home | Elasticsearch 홈 디렉터리 또는 $ES_HOME |
아카이브의 압축을 풀어 생성된 디렉터리 | |
| bin | 노드를 시작하는 elasticsearch 및 플러그인을 설치하는 elasticsearch-plugin을 포함한 바이너리 스크립트 |
$ES_HOME/bin |
|
| conf | elasticsearch.yml을 포함한 구성 파일 |
$ES_HOME/config |
ES_PATH_CONF |
| conf | 전송 및 HTTP 계층용으로 생성된 TLS 키와 인증서입니다. | $ES_HOME/config/certs |
|
| data | 노드에 할당된 각 인덱스/샤드의 데이터 파일 위치입니다. | $ES_HOME/data |
path.data |
| logs | 로그 파일 위치입니다. | $ES_HOME/logs |
path.logs |
| plugins | 플러그인 파일 위치입니다. 각 플러그인은 하위 디렉터리에 저장됩니다. | $ES_HOME/plugins |
|
| repo | 공유 파일 시스템 저장소 위치입니다. 여러 위치를 포함할 수 있습니다. 파일 시스템 저장소는 여기에 지정된 디렉터리의 모든 하위 디렉터리에 배치할 수 있습니다. | 구성되지 않음 | path.repo |
이제 테스트 Elasticsearch 환경이 설정되었습니다. 본격적인 개발을 시작하거나 Elasticsearch를 프로덕션에 배포하기 전에 몇 가지 추가 설정을 수행해야 합니다.
- Elasticsearch 구성 방법을 알아봅니다.
- 중요한 Elasticsearch 설정을 구성합니다.
- 모든 Elastic 솔루션의 사용자 인터페이스인 Kibana를 설치합니다.
다음 작업도 수행할 수 있습니다.
- 추가 Elastic Stack 구성 요소 설치를 고려합니다.
- Elasticsearch에 데이터를 수집하는 방법을 알아봅니다.
- 프로덕션 고려 사항을 알아봅니다.
- 클러스터를 보호하고 관리하는 방법을 알아보려면 다른 주제를 살펴봅니다.