카테고리 없음

elasticsearch install

_Admin_ 2024. 4. 6. 23:28
반응형
[kcy@elk-1 Desktop]$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.1-linux-x86_64.tar.gz
--2024-04-06 23:19:52--  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.1-linux-x86_64.tar.gz
Resolving artifacts.elastic.co (artifacts.elastic.co)... 34.120.127.130, 2600:1901:0:1d7::
Connecting to artifacts.elastic.co (artifacts.elastic.co)|34.120.127.130|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 574153217 (548M) [application/x-gzip]
Saving to: ‘elasticsearch-8.13.1-linux-x86_64.tar.gz’

elasticsearch-8.13.1-linux-x86_64. 100%[==============================================================>] 547.55M  55.5MB/s    in 9.8s    

2024-04-06 23:20:02 (56.0 MB/s) - ‘elasticsearch-8.13.1-linux-x86_64.tar.gz’ saved [574153217/574153217]

[kcy@elk-1 Desktop]$ 
[kcy@elk-1 Desktop]$ ls -lrt
total 560700
-rw-rw-r--. 1 kcy kcy 574153217 Apr  2 16:01 elasticsearch-8.13.1-linux-x86_64.tar.gz
[kcy@elk-1 Desktop]$ 
[kcy@elk-1 Desktop]$ 
[kcy@elk-1 Desktop]$ 
[kcy@elk-1 Desktop]$ tar -xzf elasticsearch-8.13.1-linux-x86_64.tar.gz

[kcy@elk-1 Desktop]$ 
[kcy@elk-1 Desktop]$ 
[kcy@elk-1 Desktop]$ ls -rlt
total 560700
drwxr-xr-x. 9 kcy kcy       155 Mar 29 19:12 elasticsearch-8.13.1
-rw-rw-r--. 1 kcy kcy 574153217 Apr  2 16:01 elasticsearch-8.13.1-linux-x86_64.tar.gz
[kcy@elk-1 Desktop]$ 
[kcy@elk-1 Desktop]$ cd elasticsearch-8.13.1/e^C
[kcy@elk-1 Desktop]$ 
[kcy@elk-1 Desktop]$ ln -s elasticsearch-8.13.1 elasticsearch

 

 

 

[kcy@elk-1 config]$ cat elasticsearch.yml | grep -v "#"
cluster.name: kcy-first-challenge
node.name: elk-1
path.data: /DATA/elk
path.logs: /LOG/elk
network.host: elk-1
http.port: 9200
discovery.seed_hosts: ["elk-1", "elk-2", "elk-3"]
cluster.initial_master_nodes: ["elk-1", "elk-2"]
bootstrap.memory_lock:true
action.destructive_requires_name: false

 

변경해줘야하는 내용이 매우 만타.

흠..

1. vm.max_map_count
프로세스가 최대 몇 개까지 메모리 맵 영역을 가질 수 있는지 지정한다.
루씬은 mmap을 적극적으로 활용하기 때문에 이 값을 높일 필요가 있으며, 이 값이 262144보다 작으면 엘라스틱서치는 기동자체를 거부한다.. 헉..

# 확인
sysctl vm.max_map_count
vm.max_map_count = 65530

# 이 값이 262144보다 작으면 다음과 같이 설정하여 변경한다.
sudo sysctl -w vm.max_map_count = 262144

# 영구적으로 반영하려면 파일을 생성해줘야 함
sudo vim /etc/sysctl.d/98-elasticsearch.conf
vm.max_map_count = 262144

tar 가 아닌 패키지 통해서 설치하면 엘라스틱서치가 이 값을 자동으로 설정하는데, 이때도 262144로 자정됨
이 값을 더 높여도 os상 메모리 사용량이나 성능상의 손해는 없다고 알려져 있음

프로세스에서 필요한 메모리 맵의 개수가 이 값보다 낮으면 OOM 발생할 수 있음
따라서, 시스템 메모리에 여유가 있으면 이 값을 더 높여도 문제가 없음

OS 레벨의 가이드는, 보통 시스템 메모리 크기를 128KB로 나눈 크기가 추천됨.
malloc이 mmap을 호출하도록 하는 기준은 M_MMAP_THRESHOLD의 기본 값이 128KB이기 때문이라는데 뭔소리인지는 모르겠다.

 

2. 파일 기술자
엘라스틱서치는 많은 파일 기술자를 필요로 한다. 이 값을 최소 65535 이상으로 지정하도로 가이드함

ulimit -a | grep "open files"


# 결과가 65535보다 작다면 65535로 설정을 바꿔주자
sudo ulimit -n 65535

# 이도 임시적임. 영구 지정하려면 파일 수정해야함
sudo vi /etc/security/limits.conf
[엘라스틱 기동할 OS 계정 이름] - nofile 65535

 

3. 스왑 끄기

sudo swapoff -a
vi /etc/fstab --> swap 부분 주석처리

4. JAVA Heap-size 수정

 

 

5. 보안 기능 적용

- 기본적으로 특별한 설정을 하지 않으면 클라이언트와 엘라스틱서치 클러스터, 노드 간의 통신은 암호화되지 않는다.
- 인터넷 구간이면 당연히 위험하고, 인증/권한 및 분리에도 중요한 역할을 한다.

- elasticsearch.yaml에 적용했던 xpack.security.enabled = true로 올려주면 이러한 기능을 엘라스틱서치 클러스터에 적용할 수 있지만, 이외에도 추가로 적용해줘야 하는 부분이 많음
- 엘라스틱 서치 8 버전 클러스터 최초 기동시 엘라스틱서치가 자동으로 보안 설정을 지정해주는 방법이 추가됐다.

 

5.1. 모든 보안 기능을 적용하지 않은 상태

- xpack.security.enabled = false 로 지정하면 엘라스틱서치가 제공하는 보안 관련 기능이 적용되지 않음
- 이 상태로 운영을 하는 것도 가능은 함.
- 인터넷과 인트라넷이 명확하게 분리되어 있고, 서비스/데이터가 외부에 노출될 수 없는 경우라면 끌 수 도 있음

 

5.2. TLS 부트스트랩 체크

- 엘라스틱 서치는 기동 과정에서 TLS 적용이 되지 않았다면 기동을 거부 (위에서 xpack 설정이 false면 상관없음)
- 따라서, 일단 false로 올린 다음에 TLS 설정을 변경해주고 다시 true로 변경해서 올려주는 번거로운 과정이 있음..

 

 

 

 

반응형