jms0522 / Medical-project

✅ 의료 데이터를 활용한 챗봇과 다양한 파이프라인을 제작합니다.
5 stars 4 forks source link

ELK stack을 활용한 데이터 log 수집 및 시각화 #100

Closed jms0522 closed 8 months ago

jms0522 commented 8 months ago

elastic stack

image

계획

  1. airflow가 크롤링을 해서 db에 저장하기 전에 csv 파일을 떨군다.
  2. csv의 생성 혹은 변화를 Filebeat가 탐지해 logstash에게 보낸다
  3. elastic search에 logstash가 기록을 보냄 (여기서 필요한 컬럼만 전처리 가능)
  4. kibana, grafana를 이용한 시각화 가능

이것도 docker compose up해서 다른 컨테이너과 연결

최종적으로 모든 container 연동 및 container 상태 시각화에 목적

jms0522 commented 8 months ago

Elastic home page

kibaba

drrc:5601

스크린샷 2024-03-10 05 15 32

elastic search

drrc:9200

스크린샷 2024-03-10 05 44 27

jms0522 commented 8 months ago

EC2 elk 구축

데이터 넣기 전 인덱스 생성해서 넣어야 함 (dev tool 이용)

크롤링 데이터 추가 시, 각각의 config를 만들어서 각각의 Index 넣어서 만들 예정

docker-compose로 구성함


데이터 추가한 모습 (Dev tool 쿼리로 확인)

스크린샷 2024-03-11 17 17 53

CLI 환경에서 데이터 올라가는 모습

스크린샷 2024-03-11 17 18 02

Logstash에서 권한 부여를 해야함

스크린샷 2024-03-11 17 18 29

Logstash port page

스크린샷 2024-03-11 17 19 48

데이터 시각화 (통계)

스크린샷 2024-03-11 17 35 58

데이터 시각화 (통계)

스크린샷 2024-03-11 17 41 25

데이터 시각화 (통계)

스크린샷 2024-03-11 17 41 43

데이터 시각화 (통계)

스크린샷 2024-03-11 17 43 29
jms0522 commented 8 months ago

hidak

index 생성하기

hidak_index.conf

스크린샷 2024-03-13 10 18 51

dev tool put index

스크린샷 2024-03-13 10 23 32
jms0522 commented 8 months ago

hidak data visualization on kibana

csv 자체가 RAG 용으로 제작한 csv를 사용해 컬럼값이 좀 이상함

csv를 다시 생성하거나, json filter를 사용해서 가져와도 될 듯..

스크린샷 2024-03-13 11 57 18

원래 있던 naver dashboard에 추가함

스크린샷 2024-03-13 12 20 16
stfano commented 8 months ago
image image
jms0522 commented 8 months ago

네이버 QnA total data

네이버 토탈 데이터를 전처리 하고 전국 병원 정보의 데이터와 합쳐서 elasticsearch에 업로드

병원정보서비스

위치 표시를 위한 위도 , 경도를 추가하고 병원코드 및 시도 코드를 추가함

소속이나 병원 이름도 답변에서 추출해서 컬럼 생성

스크린샷 2024-03-16 00 34 24

jms0522 commented 8 months ago

elasticsearch upload

문제 1

해결

스크린샷 2024-03-16 00 36 25

문제 2 인덱스 설정 문제

index_role권한목록

문제 3 docs count

logstash

index info

total_naver_index

해결을 위해 시도 해 볼만 한 것

내일 다시 시도..

jms0522 commented 8 months ago

⚒️ 네이버 QnA logstash

- 220만개를 한번에 넣는 게 문제가 있다고 판단.

- 테스트 용도로 랜덤으로 5만개를 잘라서 logstash input


geo point로 넣을 때 주의사항

1. dev tool에서 index를 만들 때 geo point로 맵핑을 해줘야한다

(밑의 사진 보면 lat, lon 0으로 표시된다)

스크린샷 2024-03-16 18 27 38

제대로 들어간 모습 lat lon -> geo point로 변환이 되어있음

스크린샷 2024-03-16 19 16 16

2. csv 자체 즉, 컬럼의 타입을 date는 date로 lot, lon은 float 타입으로 변경해서 넣어줘야 문제가 안 생김. (0으로 표시되는 현상)

스크린샷 2024-03-16 19 18 48

3. csv filter에서 mutate 할 때 rename말고 add_field를 사용함

스크린샷 2024-03-16 19 06 09

4. 도커 내에서 사용하는 network를 잘 확인해야함 (connection refuesd 오류)

5. input 컬럼엔 순서가 중요하고 date를 앞에 넣는 걸 추천

✅ 결과물

-모든 데이터가 아닌 건 참고 바람

스크린샷 2024-03-16 18 59 41

스크린샷 2024-03-16 19 12 09 스크린샷 2024-03-16 19 12 34 스크린샷 2024-03-16 19 12 47 스크린샷 2024-03-16 19 13 01

‼️ 아직 해결 해야하는 것

전체 데이터가 다 안들어가는 현상

스크린샷 2024-03-16 19 20 18

📌 확인해야 하는 것

인덱싱 실패 문제 (로그 확인)

start_postion문제

로그스태시, 엘라스틱서치 구성 문제

서버 리소스 문제

🫡🫡🫡🫡🫡🫡🫡🫡🫡

jms0522 commented 8 months ago

해결 과제

스크린샷 2024-03-17 16 11 19
jms0522 commented 8 months ago

naver 5만개 완료

결과물

스크린샷 2024-03-17 17 03 18 스크린샷 2024-03-17 17 05 06
jms0522 commented 8 months ago

네이버 전처리 데이터 220만개 완료

sincedb_path를 설정하지 않아서 데이터가 더 들어가는 듯하다.

스크린샷 2024-03-17 21 19 00

간단한 분석 대시보드 완성

스크린샷 2024-03-17 21 20 36

📌 해결과제

jms0522 commented 8 months ago

✅ hidoc 페이지 구성 완료

하이닥 전처리 후 18만개 데이터

스크린샷 2024-03-17 21 23 00

스크린샷 2024-03-17 22 52 29

📌 남은 건 다시 compose up 했을 때 제대로 sincedb가 작동하기만 하면 된다.

jms0522 commented 8 months ago

logstast에서 실시간 Django log 처리 파이프라인

예시

Django logging을 통해 log를 발생시킨다.

스크린샷 2024-03-19 11 54 32

django_log라는 conf 생성 후 5959포트로 tcp로 로그 보냄

스크린샷 2024-03-19 12 01 36

index

스크린샷 2024-03-19 12 02 47

logdashboard

스크린샷 2024-03-19 11 53 20
jms0522 commented 8 months ago

업데이트 대시보드 구현

네이버

하이닥

닥터나우

update index

airflow를 통해 생성되는 csv를 읽어서 업데이트 해주는 update dashboard 구현 완료

스크린샷 2024-03-19 16 15 57

전체 구현한 elasticsearch dashboard list

스크린샷 2024-03-19 16 33 38
jms0522 commented 8 months ago

sincedb_path 문제 해결

각 인덱스 별로 파일을 만들어 추적, 관리 한다.

sincedb_path

naver_total_sincedb_file

naver update sincedb 내용