spring backend 서비스 logstash 연동분석
- 서비스 내 logs 파일 생성 (logback.xml 설정)
- filebeat.yml 설정대로 로그파일 읽어와 logstash 서버에 전송
filebeat.inputs:
- type: log
enabled: true
paths:
- /data/aip/apps/*/logs/json/*
hosts: ["172.16.0.xxx:xxxx"]
- ELK의 logstash는 해당 로그파일 소스에서 데이터 수집, 가공한 뒤 elastic search에 전달
react front 서비스는 어떻게 로그를 전달할 것인가?
- backend와는 다르게 전달해야 한다. react는 클라이언트 측 javascript라이브러리이기 때문에 로그 모니터링 방법은 전통적인 java 백엔드 서비스와는 다름.
- react 애플리케이션에 로그를 생성하기 위해 로그 라이브러리를 import 한 뒤
- logstashHttpLogger와 같은 라이브러리를 이용해 Logstash 서버에 로그를 전송할 수 있다.
- 파일시스템에 직접 로그 파일을 생성하고 그 파일을 읽어가는 것은 불가능하다. 클라이언트 사이드에서는 주로 브라우저 환경에서 제공하는 로깅 매커니즘을 활용하는 것이 일반적. 브라우저에서는 보안 및 프라이버시 관련 이유로 로컬 파일 시스템에 접근하는 것이 제한되어 있다.
- 그럼 실시간 로그만 조회가 되는건지? 아니면 이전 며칠 데이터 관리할 수 있는 방법이 있는지..?
- 서버를 짜서 react가 서버로 로그를 보내면, 서버가 파일을 생성하도록 개발??!?
잘 보고 갑니다!