ES 클러스터링 해야함 (도커로 설치시 클러스터링 해볼 것)

  1. 설치
------------------------------- ELK --------------------------------------
#<https://github.com/jakubhajek/elasticsearch-docker-swarm/blob/master/stack-elastic.yml>
# elasticsearch coordinating node
nano /etc/security/limits.conf
* hard memlock unlimited
* soft memlock unlimited
* hard nofile 65536
* soft nofile 65536
* hard nproc 65536
* soft nproc 65536

vim /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
exit 0

nano /etc/sysctl.conf
vm.max_map_count=262144
vm.overcommit_memory=1
net.core.somaxconn=1024

nano /lib/systemd/system/docker.service
LimitMEMLOCK=infinity

Elasticsearch를 Docker Swarm 환경에서 실행하기 위한 시스템 설정

  1. /etc/security/limits.conf 수정:
  2. /etc/rc.local 수정:
  3. /etc/sysctl.conf 수정:
  4. /lib/systemd/system/docker.service 수정:

이러한 설정들은 Elasticsearch가 고성능으로 작동하도록 시스템 리소스 제한을 조정하는 것이 목적입니다. 메모리 사용, 파일 처리, 네트워크 연결 등에 대한 제한을 완화하여 Elasticsearch가 대규모 데이터를 효율적으로 처리할 수 있도록 합니다.

  1. /etc/security/limits.conf 수정: 원인: Elasticsearch는 대량의 데이터를 처리하고 인덱싱하는 과정에서 많은 시스템 리소스를 필요로 합니다.
  2. /etc/rc.local 수정 (Transparent Hugepage 비활성화): 원인: Transparent Hugepage는 일반적인 애플리케이션에는 유용할 수 있지만, Elasticsearch와 같은 메모리 집약적 애플리케이션에는 성능 저하를 일으킬 수 있습니다.
  3. /etc/sysctl.conf 수정:
  4. /lib/systemd/system/docker.service 수정 (LimitMEMLOCK=infinity): 원인: Docker 컨테이너 내에서 실행되는 Elasticsearch도 충분한 메모리 잠금 권한이 필요합니다.

이러한 설정들은 모두 Elasticsearch의 성능을 최적화하고, 대규모 데이터 처리 시 발생할 수 있는 시스템 제한을 완화하기 위한 것입니다. Elasticsearch가 고성능으로 작동하려면 이런 시스템 수준의 조정이 필요합니다.

2. 프리뷰

ES는 트렌젝션을 보장하지 않으니 (NOSQL 베이스) 삽입후 바로 조회 했을경우 조회 안됨

샤딩후 인덱싱이 되어야 조회 가능하다