엘라스틱용 우분투 준비
우분투 5 엘라스틱서치, 키바나
우분투 8 로그스태시
우분투 9
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(위치)
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)막대나 원차트
세계지도에서 특정위치 표시도 가능
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
위에 사이트 참고하기