분류 전체보기

✅ 개요지금까지 PLG 스택에 대한 전반적인 구성은 완료했다.하지만 어디까지나 개발환경에서 테스트 한 것이고 실제 운영환경에 배포를 해야한다. ✅ Promtail 배포Loki와 Grafana는 Grafana Cloud를 이용하고 있었기 때문에 별도의 배포과정이 필요가 없다.단, 애플리케이션 쪽에서 로그를 수집하는 Promtail은 운영환경에 별도로 배포를 해주어야 한다. 0️⃣ 배포 구조스프링부트 서버에서 발생한 로그를 내부 디렉토리에 저장한다.Docker 볼륨 기능을 통해 스프링 부트 컨테이너 로그 디렉토리와 EC2 내부 로그 디렉토리를 동기화한다.이번엔 EC2 인스턴스와 Promtail 컨테이너의 로그 디렉토리 간에 볼륨을 설정해 로그 파일을 동기화 한다.Promtail은 로그 디렉토리로부터 로그를 ..
✅ 개요Grafana에서는 알림 기능을 제공한다.로그 데이터의 추이에 따라 특정 조건이 만족되면 알림을 보내는 형식인데 이메일, 슬랙, 텔레그램 등 다양한 채널로 알림을 받을 수 있다.이를 통해 애플리케이션 문제 상황에 대한 신속한 대응이 가능하다. ✅ 알람 요구사항나는 이전의 대시보드에서 설정한 항목 중 API 별 오류 발생 수를 체크하는 부분이 있었다.이와 연계해서 특정 발생 횟수가 넘으면 이메일로 알람을 받을 수 있도록 설정해보겠다. ✅ Alert Rule 만들기1️⃣ 쿼리 정의하기sum by(Path) (count_over_time({job="logs", log_level=~"warn|error"} | logfmt | Path != `` [1h]))1시간 이내에 들어온 예외 로그들 중 API Pa..
✅ 개요일반적인 로그 데이터는 단순한 텍스트 형식으로 이루어져있다. MySQL, Oracle과 같은 RDBMS에서는 테이블의 컬럼이 존재해 그 컬럼을 기준으로 쿼리를 할 수 있지만 단순한 텍스트 형식에서는 이것이 불가능하다. Grafana Loki의 쿼리 언어인 LogQL에서는 이를 가능하게 하기 위해 로그 메시지 안에서 필드를 구분시키는 방법을 제공한다.그 방법은 크게 두 가지이다.첫 번째는 logfmt라는 별도의 로그포멧팅 방식을 이용하는 것이고두 번째는 Promtail을 통한 전처리로 로그 수집 과정 중, 메시지에 라벨을 붙이는 것이다.지금부터 각각에 대해 알아보고 성능 비교까지 한번 해보도록 하겠다. ✅ logfmt💡 logfmt는 간단하고 사람이 읽기 쉬운 로그 포맷으로 키-값 쌍으로 데이터를..
✅ 중앙 집중화 로깅의 필요성🤔 기존 로그 수집 방식의 문제점1️⃣ 로그 확인의 불편함기존에 로그는 파일로 관리가 됐었다.따라서 로그를 확인하려면 EC2 인스턴스에 들어가서 직접 명령어를 입력해서 확인했어야 했다.또한 로그가 단순히 텍스트 형태로만 되어 있고 시간순으로만 저장되어 있어 내가 원하는 로그를 찾기가 매우 어려웠다. 2️⃣ 분산 환경에서의 문제현재는 스프링부트 백엔드 서버의 로그만을 다루고 있어 크게 와닿는 부분은 아니지만 추후 로그를 수집하는 노드가 많아진다면 각각의 노드에서 로그를 확인하는 것이 매우 어려울 것이다. 💡 중앙 집중화 로깅여러 시스템에서 발생하는 로그들을 한 곳에 모아 저장하고 그 데이터들을 적절히 가공해서 보여주는 하나의 체계를 의미한다.이를 통해 다양한 환경에서 발생하..
jaehee1113
'분류 전체보기' 카테고리의 글 목록 (7 Page)