본문 바로가기
모니터링

ElasticSearch Cluster

by aws-evan 2024. 7. 25.
반응형

 

 

  • OS : Ubuntu 22.04
  • ElasticSearch 서버 2대
    • 마스터노드 + 데이터노드
  • 마스터 노드 : 192.168.0.204
  • 데이터 노드 : 192.168.0.207

 

  • 시스템 패키지 업데이트
sudo apt update
sudo apt upgrade -y

 

 

  • OpenJDK 설치
    • Elasticsearch는 Java기반에서 동작하기에 설치 필요
sudo apt install openjdk-11-jdk -y

 

  • 버전 확인
java -version

 

  • Elasticsearch GPG 키 및 저장소 추가
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" > /etc/apt/sources.list.d/elastic-8.x.list'

 

 

  • 특정 버전 설치
sudo apt update
sudo apt install elasticsearch=8.13.4 -y

 

 

  • 설정(마스터 노드)
    • 클러스터 이름 : my-application
      • 테스트용으로 기본 값으로 설정
    • 노드 이름 : node-1
    • 로그 경로
      • 기본 : /var 하위에 존재
      • 변경도 가능
    • 모든 IP에서 접근 허용 0.0.0.0
    • 네트워크 포트(기본값) : 9200
    • discovery.seed_hosts: ["192.168.0.204", "192.168.0.207"]
      • 노드 대상 정의
    • cluster.initial_master_nodes: ["node-1"]
      • 마스터 대상 정의
# ======================== Elasticsearch Configuration =========================
# ---------------------------------- Cluster -----------------------------------
cluster.name: my-application
# ------------------------------------ Node ------------------------------------
# Use a descriptive name for the node:
node.name: node-1
node.roles: ["master"]
# ----------------------------------- Paths ------------------------------------
# Path to directory where to store the data (separate multiple locations by comma):

#path.data: /var/lib/elasticsearch
#path.logs: /var/log/elasticsearch

path.data: /data/elasticsearch-data
path.logs: /data/elasticsearch-log
# ----------------------------------- Memory -----------------------------------
# ---------------------------------- Network -----------------------------------
# address here to expose this node on the network:
network.host: 0.0.0.0
http.port: 9200
# --------------------------------- Discovery ----------------------------------
discovery.seed_hosts: ["192.168.0.204", "192.168.0.207"]
cluster.initial_master_nodes: ["node-1"]
# ---------------------------------- xpack -----------------------------------
#action.destructive_requires_name: false
xpack.security.enabled: false
xpack.security.audit.enabled: false
xpack.security.authc.token.enabled: false
xpack.security.http.ssl.enabled: false
xpack.security.transport.ssl.enabled: false

 

 

  • 설정(데이터 노드)
    • 클러스터 이름 : my-application
      • 테스트용으로 기본 값으로 설정
    • 노드 이름 : node-2
    • 로그 경로
      • 기본 : /var 하위에 존재
      • 변경도 가능
    • 모든 IP에서 접근 허용 0.0.0.0
    • 네트워크 포트(기본값) : 9200
    • discovery.seed_hosts: ["192.168.0.204", "192.168.0.207"]
      • 노드 대상 정의
    • cluster.initial_master_nodes: ["node-1"]
      • 마스터 대상 정의
# ======================== Elasticsearch Configuration =========================
# ---------------------------------- Cluster -----------------------------------
cluster.name: my-application
# ------------------------------------ Node ------------------------------------
# Use a descriptive name for the node:
node.name: node-2
node.roles: ["data"]
# ----------------------------------- Paths ------------------------------------
# Path to directory where to store the data (separate multiple locations by comma):
path.data: /data/elasticsearch-data
path.logs: /data/elasticsearch-log
# ----------------------------------- Memory -----------------------------------
# ---------------------------------- Network -----------------------------------
# address here to expose this node on the network:
network.host: 0.0.0.0
http.port: 9200
# --------------------------------- Discovery ----------------------------------
discovery.seed_hosts: ["192.168.0.204", "192.168.0.207"]
cluster.initial_master_nodes: ["node-1"]
# ---------------------------------- xpack -----------------------------------
#action.destructive_requires_name: false
xpack.security.enabled: false
xpack.security.audit.enabled: false
xpack.security.authc.token.enabled: false
xpack.security.http.ssl.enabled: false
xpack.security.transport.ssl.enabled: false

 

 

 

  • 서비스 재시작
systemctl restart elasticsearch

 

 

 

  • 클러스터 노드 상태
    • 클러스터 정보 : node-1, node-2
    • Role
      • master = m
      • data = d
curl  "http://localhost:9200/_cat/nodes?v"

 

 

  • 추가 노드 추가
    • 기존 클러스터 구성에서 추가 노드 추가 가이드
      • 설치는 동일한 방식으로 진행하며 elasticsearch.yml 변경

 

  • 추가 노드 YAML 
# ======================== Elasticsearch Configuration =========================
# ---------------------------------- Cluster -----------------------------------
cluster.name: my-application
# ------------------------------------ Node ------------------------------------
# Use a descriptive name for the node:
node.name: node-3
node.roles: ["data"]
# ----------------------------------- Paths ------------------------------------
# Path to directory where to store the data (separate multiple locations by comma):
path.data: /data/elasticsearch-data
path.logs: /data/elasticsearch-log
# ----------------------------------- Memory -----------------------------------
# ---------------------------------- Network -----------------------------------
# address here to expose this node on the network:
network.host: 0.0.0.0
http.port: 9200
# --------------------------------- Discovery ----------------------------------
discovery.seed_hosts: ["192.168.0.204", "192.168.0.207","192.168.0.208"]
cluster.initial_master_nodes: ["node-1"]
# ---------------------------------- xpack -----------------------------------
#action.destructive_requires_name: false
xpack.security.enabled: false
xpack.security.audit.enabled: false
xpack.security.authc.token.enabled: false
xpack.security.http.ssl.enabled: false
xpack.security.transport.ssl.enabled: false

 

  • 서비스 재시작
systemctl restart elasticsearch

 

 

  • 클러스터 상태 확인
curl  "http://localhost:9200/_cat/nodes?v"

 

반응형

'모니터링' 카테고리의 다른 글

Elasticsearch Xpack 설정  (0) 2024.07.29
kibana 설치  (0) 2024.07.25
kibana elasticsearch cluster 연동  (0) 2024.07.25
Fluentd 이미지 사용  (0) 2024.05.14
[Zabbix] Ubuntu Zabbix 구축하기  (0) 2022.07.15

댓글