티스토리 뷰
정의
모든 애플리케이션과 인프라의 로그를 저장하고 쿼리하도록 설계된 로그 집계 시스템
개념 및 용어
Distributor
- 수집되는 로그를 받아 로그의 정확성을 검증한 후 Ingester로 넘김
Ingester
- 수집된 로그를 장기 저장소에 저장함 (S3 같은)
- 로그 스트림이 메모리에 chunks 단위로 저장된 후, 일정 기간 뒤에 장기 저장소로 옮겨짐
- 갑자기 Ingester가 터지면 장기 저장소에 옮겨지지 않은 데이터는 유실됨
Querier
- Ingetster나 장기 저장소에서 가져온 로그 쿼리 데이터를 중복 제거하여 Query-Frontend나 Grafana에 뿌려줌
- LogQL 쿼리 언어를 사용하여 쿼리를 처리 하고 수집기와 장기 스토리지 모두에서 로그를 가져옴
Chunk Store
- 장기 저장소
- Amazon DynamoDB, Google Bigtable, Apache Cassandra, Amazon S3, Google Cloud Storage
Query-Frontend
- 일종의 프록시 서비스로 Grafana에서 요청을 수신하고 일부 유효성 검사 및 캐싱을 수행한 다음 쿼리를 Querier로 전달
동작 방식
- Promtail을 사용하여 로그 수집
- 로그 수집기인 Promtail로 로그를 수집하여 Loki에 전달
- Distributor에서 로그의 정확성 검증 후 Ingester로 넘김
- 로그에 레이블 지정, 변환 및 필터링을 위한 유사한 기능 포함됨
- 로그 수집기인 Promtail로 로그를 수집하여 Loki에 전달
- Loki에 로그 저장
- 스트림으로 그룹화되고 레이블로 인덱싱
- Ingester에서 수집된 로그 스트림을 chunks 단위로 저장 후 일정 기간 뒤 장기 저장소로 옮김
- 스트림으로 그룹화되고 레이블로 인덱싱
- LogQL을 사용하여 로그 탐색
- Querier에서 Ingetster나 장기 저장소(Chunk Store)로부터 가져온 로그 쿼리 데이터를 중복 제거하여 Query-Frontend나 Grafana에 뿌려줌
- 로그에 대한 알림
- 경고 규칙을 설정하면 Prometheus AlertManager로 보내도록 경고 전달
장점
- 모든 형식을 기록
- 빠른 쓰기
- 작은 인덱스
- 실행하는 것이 더 저렴함
- 작동이 더 간단함
- 빠른 쿼리
- 동적 방식으로 로그를 자르고 쪼개기(유연함)
단점
- 쿠버네티스와 사용하면 훨씬 시너지 좋음 (하지만 우리 회사는 쿠버네티스를 못씀)
레퍼런스 및 요약
'인프라' 카테고리의 다른 글
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Hook
- ci/cd
- RDS
- Workflow
- springboot
- subnet
- Grafana
- 로깅
- SG
- VPC
- 서버
- AWS
- 모니터링
- github action
- Grafana Alert
- ECS
- html
- 인프라
- EC2
- LOKI
- CSS
- react
- ecr
- Service
- javascript
- js
- redux
- Docker
- 리액트
- ALB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함