9-2 엘라스틱서치(환경설정과 설치 간단이론

kst5137·2022년 3월 3일
0

엘라스틱용 우분투 준비
우분투 5 엘라스틱서치, 키바나
우분투 8 로그스태시
우분투 9

1. 엘라스틱서치

  1. jdk 설치(하둡할때 한거)
    apt update
    apt install -y openjdk-8-jdk java(java있을때 설치 안되면 jdk까지만 설치)
  1. wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
    apt update
    apt install elasticsearch

systemctl restart elasticsearch
9200번 포트 사용 (좀 무거워서 실행이 좀 걸림)

curl -XGET localhost:9200
다되면 이걸로 동작확인

이렇게 옴

엘라스틱 서치란?
큰데이터에서 원하는 데이터만 뽑아내는것

데이터 타입이 Documents(하나의값)

인덱싱?
인덱스 = 목차
어떠한 데이터를 볼때 목차가 없으면 하나하나 다 봐야하는데 인덱스가 있으면 빠르게 찾기 가능

엘라스틱은 저장할때부터 역 인덱싱하면서 저장해서 빠름
정보를 다 쪼개서
achine:/etc/elasticsearch# curl -XGET http://localhost:9200/classes
지금은 classes가 없으니 다음과 같이 뜸


curl -XGET http://localhost:9200/classes?pretty
이거치면 좀 예쁘게 뜸

curl -

post 사용법
집어넣을곳/타입/1/ -d '{안에넣을 데이터(json형식)}'
ex)
curl -XPOST http://localhost:9200/classes/class/1/ -d '{"title":"python","teacher":"sim"}' -H "Content-Type: application/json"

-H "Content-Type: application/json" 이렇게 해야 json타입의 데이터를 넣을 수 있음

만약 파일로 있으면
curl -XPOST http://localhost:9200/classes/class/1/ -d @파일경로 -H "Content-Type: application/json"

classes/class/2/
2는 id값임 언제나 1일 필요 x
post를 할때 id값을 같게 하면 데이터가 덮어쓰기가 됨
아예 새로운것을 추가하고 싶을때는
_update -d 하면됨

데이터를 하나하나 넣기는 너무 귀찮음
그래서 한번에 넣는 api를 이용

벌크 POST _bulk로 사용

서치
조건 서치
curl -XGET http://localhost:9200/classes/class/_search?q=Professor:sim&pretty
이렇게 하면 &로 두개를 찾는것으로 되기때문에 &가 쉘에서 사용되어버림
1) &앞에 역슬래쉬 \ 넣기
curl -XGET http://localhost:9200/classes/class/_search?q=Professor:sim\&pretty

2) 작은따옴표로 묶기
curl -XGET 'http://localhost:9200/classes/class/_search?q=Professor:sim&pretty'

geo_point(위치)

2. 키바나

1) jdk 설치

2) 설치
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
apt update
apt install kibana

3) 설정
/etc/kibana/kibana.yml 설정

server.host: "키바나가 설치된 컴퓨터의 IP"

설정 저장 후
systemctl restart kibana

4) 확인
웹브라우저로
http://키바나가설치된컴퓨터IP:5601/
내컴퓨터는 192.168.71.135

엘라스틱스서치에서 데이터를 추가하는것도 키바나에서는 쉽게 추가가능

키바나는 시각화를 위해서 사용하는용도
엘라스틱말고 다 사용 가능
여러데이터들을 간단하게 시각화해주는거
ex)막대나 원차트
세계지도에서 특정위치 표시도 가능

3. 로그스태시

1) jdk 설치

2) 설치
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
apt update
apt install logstash

3) 설정파일 생성
logstash-simple.conf
input {
stdin { }
}
output {
stdout { }
}

4) 실행
/usr/share/logstash/bin/logstash -f logstash-simple.conf파일의경로

/usr/share/logstash/bin/logstash  -f  /root/logstash-simple.conf

인풋으로 입력된것을 아웃풋으로 보내줌
얘 설정이 제일 복잡함
로그스태시는 플룸처럼 켜놓으면 계속 돌아감 systemctl로 키는거 아님

오류 수정

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
에코로 너무 많은 연결이 있어도 오류 발생가능

한줄만 있어야하는데 8줄이나 있었음

인터넷 연결이 안되어있었음
vi /etc/resolv.conf

인증서 오류
https://www.bearpooh.com/100
위에 사이트 참고하기

profile
공부중인 학생

0개의 댓글