서버에 에러가 발생하면 직접 SSH 접속 후 도커 컨테이너의 로그를 출력해 확인해야 했다.
이러한 불편함을 겪은 후,
브라우저에서 로그를 확인하고, 필터링 할 수 있도록 해야겠다고 생각했다.
Pino
라이브러리를 사용해 로그를 json 포맷으로 작성
https://github.com/iamolegga/nestjs-pino
Docker-compose
를 사용해 ELK 스택을 실행할 수 있도록 설정된 레포지토리를 클론해 사용
https://github.com/deviantony/docker-elk
아래와 같이 설정 스크립트를 작성해, 환경 이전에 쉽게 대처할 수 있도록 하였다.
web09-DailyRoad/backend/resources/scripts/elk at develop · boostcampwm-2024/web09-DailyRoad
스크립트 내용은 아래와 같다.
- 필요 패키지 업데이트 및 설치 :
docker
,docker-compose
- 위 레포지토리 클론
.env
파일에 사용할 패스워드를 설정Logstash pipeline
설정 파일 복사- 초기 사용자 및 권한 설정 ( 위 레포지토리에서 제공 )
- ELK 스택 시작
Logstash
에게 추가로 인덱스 작성 권한 부여Elasticsearch
인덱스 템플릿 등록