issues
search
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
계획
airflow가 크롤링을 해서 db에 저장하기 전에 csv 파일을 떨군다.
csv의 생성 혹은 변화를 Filebeat가 탐지해 logstash에게 보낸다
elastic search에 logstash가 기록을 보냄 (여기서 필요한 컬럼만 전처리 가능)
kibana, grafana를 이용한 시각화 가능
이것도 docker compose up해서 다른 컨테이너과 연결
최종적으로 모든 container 연동 및 container 상태 시각화에 목적
jms0522
commented
8 months ago
Elastic home page
kibaba
drrc:5601
elastic search
drrc:9200
jms0522
commented
8 months ago
EC2 elk 구축
데이터 넣기 전 인덱스 생성해서 넣어야 함 (dev tool 이용)
크롤링 데이터 추가 시, 각각의 config를 만들어서 각각의 Index 넣어서 만들 예정
docker-compose로 구성함
데이터 추가한 모습 (Dev tool 쿼리로 확인)
CLI 환경에서 데이터 올라가는 모습
Logstash에서 권한 부여를 해야함
Logstash port page
데이터 시각화 (통계)
데이터 시각화 (통계)
데이터 시각화 (통계)
데이터 시각화 (통계)
jms0522
commented
8 months ago
hidak
index 생성하기
hidak_index.conf
dev tool put index
제목, 질문과 답변은 text 형식으로 검색이나, 분석에 유리하게 생성함 (사용자의 자유형식 질문에 유리)
병원, 의사이름은 keyword 타입으로 집계나 정렬, 필터링을 하기 위해 생성
날짜는 시계열 데이터
jms0522
commented
8 months ago
hidak data visualization on kibana
csv 자체가 RAG 용으로 제작한 csv를 사용해 컬럼값이 좀 이상함
csv를 다시 생성하거나, json filter를 사용해서 가져와도 될 듯..
원래 있던 naver dashboard에 추가함
stfano
commented
8 months ago
jms0522
commented
8 months ago
네이버 QnA total data
네이버 토탈 데이터를 전처리 하고 전국 병원 정보의 데이터와 합쳐서 elasticsearch에 업로드
병원정보서비스
위치 표시를 위한 위도 , 경도를 추가하고 병원코드 및 시도 코드를 추가함
소속이나 병원 이름도 답변에서 추출해서 컬럼 생성
220만개
text는 간단하게만 전처리
jms0522
commented
8 months ago
elasticsearch upload
문제 1
위도 경도가 geo point로 잘 변환이 안된다.
해결
docs를 보니까 해결 됨 / 양식에 문제가 있었던 듯
문제 2 인덱스 설정 문제
naver_index로 한번 실패한 뒤 fix_naver_index로 바꿔서 올렸는데 실패
Logstash 권한 문제로 해결
문제 3 docs count
logstash에서 데이터는 계속 올라감
elastic search에선 doc count가 올라가지 않는다
해결을 위해 시도 해 볼만 한 것
샤드와 레플리카 수를 조정한다 (index 생성 시)
elasticsearch 힙 메모리를 늘린다 256 -> 512 (이건 해놓음)
데이터를 파싱하는데 문제가 있을 수 있어서 text 형식의 컬럼을 좀 더 전처리함 (해놓음)
내일 다시 시도..
jms0522
commented
8 months ago
⚒️ 네이버 QnA logstash
- 220만개를 한번에 넣는 게 문제가 있다고 판단.
- 테스트 용도로 랜덤으로 5만개를 잘라서 logstash input
geo point로 넣을 때 주의사항
1. dev tool에서 index를 만들 때 geo point로 맵핑을 해줘야한다
(밑의 사진 보면 lat, lon 0으로 표시된다)
제대로 들어간 모습 lat lon -> geo point로 변환이 되어있음
2. csv 자체 즉, 컬럼의 타입을 date는 date로 lot, lon은 float 타입으로 변경해서 넣어줘야 문제가 안 생김. (0으로 표시되는 현상)
3. csv filter에서 mutate 할 때 rename말고 add_field를 사용함
4. 도커 내에서 사용하는 network를 잘 확인해야함 (connection refuesd 오류)
5. input 컬럼엔 순서가 중요하고 date를 앞에 넣는 걸 추천
✅ 결과물
-모든 데이터가 아닌 건 참고 바람
‼️ 아직 해결 해야하는 것
전체 데이터가 다 안들어가는 현상
5만개의 행에서 docs가 380개만 생기고 있음
📌 확인해야 하는 것
인덱싱 실패 문제 (로그 확인)
start_postion문제
분명 sincedb_path를 dev/null 로 했음에도 불구하고 새 데이터만 읽을 확률이 있다고 하는데 잘 모르겠음.
로그스태시, 엘라스틱서치 구성 문제
구성에 문제가 있을 수 있음 / index_refresh_interval 설정을 확인하기
높게 되어 있으면 반영이 오래 걸려 표시가 안 될 수 있음.
서버 리소스 문제
확인 해보고 리소스 문제가 맞다면 인스턴스 크기를 키워야 함.
🫡🫡🫡🫡🫡🫡🫡🫡🫡
jms0522
commented
8 months ago
해결 과제
아마 반영이 느렸던 듯 오늘 다시 compose up 해서 보니 , 3만개 넘게 들어가 있었다.
5만개 넣는데도 이렇게 오래 걸린다고 생각하면 220만개 넣을 수 있을까 라는 생각이 듬.
배치를 통해 넣거나 elastic agent를 더 생성해서 분산처리 해야 하나 고민 중
jms0522
commented
8 months ago
naver 5만개 완료
data 타입을 dev tool애서 맵핑 할 때 format을
"format": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 이런식으로 넣어야함. (elasticsearch안에서 변환된다)
결과물
jms0522
commented
8 months ago
네이버 전처리 데이터 220만개 완료
sincedb_path를 설정하지 않아서 데이터가 더 들어가는 듯하다.
간단한 분석 대시보드 완성
📌 해결과제
sincedb_path를 설정해 데이터가 중복으로 들어가지 않도록 설정해야함
jms0522
commented
8 months ago
✅ hidoc 페이지 구성 완료
하이닥 전처리 후 18만개 데이터
📌 남은 건 다시 compose up 했을 때 제대로 sincedb가 작동하기만 하면 된다.
jms0522
commented
8 months ago
logstast에서 실시간 Django log 처리 파이프라인
Django logging을 통해 log를 발생시킨다.
django_log라는 conf 생성 후 5959포트로 tcp로 로그 보냄
index
logdashboard
jms0522
commented
8 months ago
업데이트 대시보드 구현
네이버
하이닥
닥터나우
airflow를 통해 생성되는 csv를 읽어서 업데이트 해주는 update dashboard 구현 완료
전체 구현한 elasticsearch dashboard list
jms0522
commented
8 months ago
sincedb_path 문제 해결
각 인덱스 별로 파일을 만들어 추적, 관리 한다.
naver_total_sincedb_file
읽은 부분까지 적혀져 있는 걸 볼 수 있음. (잘 작동함)
elastic stack
계획
이것도 docker compose up해서 다른 컨테이너과 연결
최종적으로 모든 container 연동 및 container 상태 시각화에 목적