[Elastic Search] VM Workstation을 이용한 Elastic Search 사용 (2)
by Cori1. logstach 설치, 노드 1번에 수행 (별도의 컴퓨터에 해도 됨)
-> lostash를 사용하면 input과 output을 지정하고, filtering까지 적용할 수 있음. 대용량의 실시간 성이 있는 데이터들을 받아서 필터링을 하고, Elastic Search에 전송해줌
0) 설치파일 다운로드
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.14.1-linux-x86_64.tar.gz
tar xfz logstash-7.14.1-linux-x86_64.tar.gz
1) logstash 테스트
-> 리눅스에서의 일반적인 input과 output에 대해 logstash test
~/logstash-7.14.1/bin/logstash -e 'input { stdin { } } output { stdout { } }'
2) logstash를 체계적으로 이용하기 위해, config 파일 수정
· 디렉터리 이동
cd ~/logstash-7.14.1/config
· 파일 수정
gedit test.conf
파일에 다음 내용 입력
· input { stdin { } }
· output { stdout { } }
· 앞으로는 다음 명령을 통해 logstash를 수행할 수 있다.
~/logstash-7.14.1/bin/logstash -f test.conf
· 파일 수정
9900번 포트에서 들어오는 데이터를 input으로 사용하기 위해, 다음 내용 입력
· 새로운 터미널 창에서 명령어 수행
echo "hello logstash" | nc localhost 9900
"hello logstash" 라는 문자열을 내 컴퓨터 로컬호스트 9900으로 보낸다 .. logstash에서 이 값을 input으로 감지하고 활용을 함
* 가끔 Ncat: Connection refused 에러가 뜨면서 실행이 안되는데, 좀 기다렸다 실행하면 정상적으로 수행된다.
· 파일 수정
-> input값과 마찬가지로, output 값에 대해서도 파일을 수정한다.
로컬호스트의 9200번 (elasticsearch)로 밀어넣으며, id와 pw는 우리가 지정해놓은 값을 사용한다.
· 새로운 터미널 창에서 명령어 수행
elastic search에 제대로 들어갔는지 확인하기 위해, 3번 노드에서 Kibana 실행해야 함
3) 3번 노드에서 Kibana 실행 후 # dev tools
GET /_cat/indices
위 명령어를 통해 인덱스 조회를 하면, logstash 인덱스가 만들어진 것을 확인할 수 있음
GET logstash-*/_search
logstash 데이터를 검색하면, 데이터 하나가 들어가 있는 것을 확인할 수 있다.
· 파일 수정
-> input과 output에서 더 나아가, filter를 지정해서 logstash를 수행한다.
grok을 이용해 매치되는 내용 추출, output을 stdout으로 다시 바꾸었다.
· weblog 이용한 결과 조회 (새로운 터미널)
head ~/weblog-sample.log
head n 1 ~/weblog-sample.log | nc localhost 9900
* weblog-sample.log 파일은 강사님이 구글 드라이브에 올려주신 weblog-sample.log 파일을 사용하였다.
· 샘플 로그 활용을 위해, 3번 노드에서 기존에 생성한 인덱스를 삭제하자 (Kibana)
DELETE logstash*
· conf 파일 수정
· Kibana에서 실행 결과 조회
GET /_cat/indices
GET logstash-*/_search
2. 한글 형태소 분석기 (nori 설치), 모든 노드에 수행
1) nori 설치
~/es-714/bin/elasticsearch-plugin install analysis-nori
2) 명령어 수행
curl "elastic-1:9200/_cat/nodes?v" -u elastic:bigdata
3. 한글 입력 세팅, 모든 노드에 대해 수행 ... 강의 자료 참고
4. Kibana, nori tokenizer 사용
0) GET _analyze
nori analyzer를 사용하여 텍스트 분석 수행
1) my_nori 인덱스에 '해물 사전을 추가한 my_nori_tokenizer 생성, 활용
· nori_none tokenizer 사용
· nori_discard tokenizer 사용
· nori_mixed tokenizer 사용
2) 품사 다루기, my_pos 인덱스 생성
my_pos 인덱스를 만들고, stoptags를 NR을 줌 (숫자)
· 생성한 my_pos 인덱스를 통해 '다섯'아이 분석해보기
숫자가 생략된 것을 확인할 수 있다.
· '나의' 아이 분석해보기
5. filebeat 설치, 노드 1에서만 수행
0) 파일 다운로드
$ wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.14.1-linux-x86_64.tar.gz
1) 압축 해제 및 파일명 변경
$ tar xfz filebeat-7.14.1-linux-x86_64.tar.gz
$ mv filebeat-7.14.1-linux-x86_64.tar.gz files
$ mv filebeat-7.14.1-linux-x86_64 fb-714
2) filebeat의 yml 파일 수정
$ gedit ~/fb-714/filebeat.yml
enabled: true, paths: weblog-sample.log, hosts: elasticsearch (localhost:9200), username, password 수정
3) Google Drive에서 filestream 파일 다운받아서, 홈 디렉터리 아래에 넣어두기
4) filebeat 실행
$ cd fb-714
$ /filebeat
5) Kibana Dev Tools 실행 (노드 3번) -> filebeat 받은 이후 수행
$ GET _cat/indices
$ GET filebeat-7.14.1*/_search
logstash는 하나씩 데이터를 넣는 반면, filebeat의 경우 데이터를 계속 밀어넣음
6) Filebeat 중지, 1번 노드
7) 개수 count
$ GET filebeat-7.14.1*/_count
$ DELETE filebeat*
'AI > Data Analysis' 카테고리의 다른 글
[Elastic Search] 트윗 실시간 데이터 수집, 분석 (위치 정보 사용) (0) | 2021.11.05 |
---|---|
[Elastic Search] VM Workstation을 이용한 Elastic Search 사용 (Fin) (0) | 2021.10.30 |
[Elastic Search] VM Workstation을 이용한 Elastic Search, 설정 (0) | 2021.10.27 |
[Elastic Search] VM Workstation을 이용한 Elastic Search 사용 (1) (0) | 2021.10.26 |
[Elastic Search] 데이터 검색 (0) | 2021.10.25 |
블로그의 정보
코딩하는 오리
Cori