가상머신 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 엘라스틱서치
일반적으로 yum 저장소에 없다.
현업에서 7 버전을 많이 사용중에 있다.
데이터를 저장해 놓는 저장소이다. (데이터베이스)
우리가 사용했던 MYSQL이랑 뭐가 다른가?
관계형 mysql에 데이터베이스에 여러개의 표가 있고 한행씩 저장을 했고 칼럼이라는 속성이
웹이라는 유저의테이블에 회원정보를 하나하나 입력
엘라스틱은 인덱스에 타입을 만들어 하나하나의 데이터 다큐멘터 필드라는 속성
왜 엘레스틱을 쓰냐?
역색인은 글자를 기준으로 다시 만든다.
글자를 잘게 자른다 형태소를 나눠야한다
초성으로 검색할 수 있는 정도까지도 나눌 수 있다.
DB보다 검색이 빠른데 긴 단어들?? 그래ㅔ서 이거를 한번 써보자
설치
자바기반이다.
yum -y install java-1.8.0-openjdk-devel.x86_64
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 #설치
vi /etc/elasticsearch/jvm.options
31번 32번 라인에 JVM Heap Size 설정 (주석 해제 후 다음과 같이 설정)
-Xms2g
-Xmx2g
systemctl enable elasticsearch
systemctl restart elasticsearch
엘라스틱 클러스터 정보들을 수집해서 키바나에게 보내주기 위해 설치해 주었다.
설치
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
systemctl restart metricbeat
하나의 엘라스틱만 사용하면 이친구가 너무 힘들다 그렇기 때문에 여러대를 준비해주면 당연히 좋은 것이다!
원래 운영중이던 환경에서 클러스터 환경으로 변경하는 경우
기존 노드파일이 남아있으면 클러스팅을 할 수가 없기 때문에 만약 기존에 있떤 파일이 중요하다 하면 백업을 해놓고 업로드해면된다.
실습에서는 그냥 지우고 시작했다.
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