[Elarsticsearch] Elarsticsearch

이정훈·2023년 3월 22일
0

ELK

목록 보기
1/4
post-thumbnail

가상머신 ip 설정 값 cpu mem 프로그램
200.200.200.70 centos8 2 4 엘라스틱서치
200.200.200.71 centos8 1 2 로그스태시
200.200.200.72 centos8 1 2 키바나
200.200.200.73 centos8 2 4 엘라스틱서치
200.200.200.74 centos8 2 4 엘라스틱서치

elarsticsearch?

  • 일반적으로 yum 저장소에 없다.

  • 현업에서 7 버전을 많이 사용중에 있다.

  • 데이터를 저장해 놓는 저장소이다. (데이터베이스)

  • 우리가 사용했던 MYSQL이랑 뭐가 다른가?
    관계형 mysql에 데이터베이스에 여러개의 표가 있고 한행씩 저장을 했고 칼럼이라는 속성이
    웹이라는 유저의테이블에 회원정보를 하나하나 입력
    엘라스틱은 인덱스에 타입을 만들어 하나하나의 데이터 다큐멘터 필드라는 속성

  • 왜 엘레스틱을 쓰냐?

  • 역색인은 글자를 기준으로 다시 만든다.

  • 글자를 잘게 자른다 형태소를 나눠야한다

  • 초성으로 검색할 수 있는 정도까지도 나눌 수 있다.

  • DB보다 검색이 빠른데 긴 단어들?? 그래ㅔ서 이거를 한번 써보자

  • 설치
    자바기반이다.

yum -y install java-1.8.0-openjdk-devel.x86_64  
  • 레포지터리 생성
    EOF(END OF FILE) 글이 나올때까지 입력해줘라!
cat > /etc/yum.repos.d/elasticsearch.repo <<EOF 
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

dnf -y install elasticsearch  #설치
  • 설정
    기본적인 메모리가 4기가로 되어 있다. 그래서 2로 설정(권장 사양은 메모리 나누기 2!! 해준다)
vi /etc/elasticsearch/jvm.options
	31번 32번 라인에 JVM Heap Size 설정 (주석 해제 후 다음과 같이 설정)
	-Xms2g
	-Xmx2g
  • 실행
systemctl enable elasticsearch
systemctl restart elasticsearch
  • 작동이 잘 되고 있는 지 확인 작업은 'postman'으로 진행하였다.

Elasticserach - Metricbeat

  • 엘라스틱 클러스터 정보들을 수집해서 키바나에게 보내주기 위해 설치해 주었다.

  • 설치

	yum install -y metricbeat
  • 설정
vi /etc/metricbeat/metricbeat.yml
	setup.kibana:	
	  host: "[kibana IP]:5601"
      # yml파일은 들여쓰기를 주의해야한다!
      
metricbeat modules enable elasticsearch
metricbeat modules enable elasticsearch-xpack
  • 메트릭 데이터를 수집하기 위한 모듈을 활성화
  • 모듈을 사용하여 보안 및 모니터링 기능을 활성화
  • Elasticsearch 클러스터의 건강 상태를 모니터링하고, 보안성을 강화하며, 성능 문제를 식별하기위해 활성화 해줘야 한다.
  • 실행
	systemctl restart metricbeat
  • 확인을 위해서는 키바나에서 봅시다

Elasticserch clustering

  • 하나의 엘라스틱만 사용하면 이친구가 너무 힘들다 그렇기 때문에 여러대를 준비해주면 당연히 좋은 것이다!

  • 원래 운영중이던 환경에서 클러스터 환경으로 변경하는 경우
    기존 노드파일이 남아있으면 클러스팅을 할 수가 없기 때문에 만약 기존에 있떤 파일이 중요하다 하면 백업을 해놓고 업로드해면된다.
    실습에서는 그냥 지우고 시작했다.

  • 3대의 엘라스틱 컴퓨터를 준비한다.
    위의 기본 설정을 해준다.

  • 기존 데이터 삭제 (3대 모두)

	systemctl stop elasticsearch
    cd /var/lib/elasticsearch
	rm -rf ./*
  • 각 컴퓨터에서 설정
1번 노드
cluster.name: my-cluster #하나로 통일된 이름 작성!	
node.name: node-1 #이름 설정해주기
discovery.seed_hosts: ["[elasticsearch IP]", 모두 적어주기]
cluster.initial_master_nodes: ["[마스터로 사용할 Elasticsearch IP]"]
node.master: true # 이 친구를 마스터로!
node.data: false # 데이터 노드로 사용하는 것이 아니다! 데이터가 저장되는 것은 아니다!

2번 노드
cluster.name: my-cluster #하나로 통일된 이름 작성!	
node.name: node-2		
discovery.seed_hosts: ["200.200.200.70", "200.200.200.73", "200.200.200.74"]
cluster.initial_master_nodes: ["200.200.200.70"]
node.master: false # 마스터는 이미 정해졌다!
node.data: true # 이 친구는 데이터 노드로 사용!

3번 노드
cluster.name: my-cluster	
node.name: node-3		
discovery.seed_hosts: ["200.200.200.70", "200.200.200.73", "200.200.200.74"]
cluster.initial_master_nodes: ["200.200.200.70"]
node.master: false
node.data: true
  • 재시작
	systemctl restart elasticsearch
profile
싱숭생숭늉

0개의 댓글