Loki란?
Loki는 Grafana Labs에서 만든 경량 로그 수집/저장 시스템입니다.
Prometheus처럼 라벨(Label) 기반으로 로그를 수집하고 검색할 수 있는 것이 특징이에요.
🗒️ "Loki는 로그용 Prometheus다!" 라고 이해하면 딱 좋습니다.
Loki의 특징 요약
항목 | 설명 |
---|
🔖 라벨 기반 로그 인덱싱 | 로그 전체를 인덱싱하지 않고 라벨만 인덱싱 → 가볍고 빠름 |
🧾 텍스트 로그 수집 | 시스템 로그, 애플리케이션 로그 등 자유롭게 수집 가능 |
📦 저장 효율성 | 전체 로그 내용은 압축 저장, 필요한 시점에 검색 |
🔍 LogQL 쿼리 지원 | SQL처럼 조건 필터링 가능 (예: ` |
🧩 Grafana와 통합 최적화 | 로그 + 메트릭을 한 화면에서 확인 가능 |
📤 다양한 수집기 연동 | Promtail, Fluent Bit, Logstash, Vector 등과 호환 가능 |
Loki 구성요소
구성요소 | 설명 |
---|
Loki | 로그 저장 및 쿼리 처리 서버 |
Promtail | Loki에 로그를 보내는 기본 수집기 |
Grafana | Loki 데이터를 시각화하고 검색하는 UI |
LogQL | Loki의 로그 검색 쿼리 언어 |
LogQL – Loki의 쿼리 언어
1. 기본 구조
logql
복사편집
{label1="value", label2="value"} |= "검색어"
2. 예시
쿼리 | 설명 |
---|
{job="nginx"} | job이 nginx인 로그 전체 보기 |
`{job="nginx"} | = "error"` |
`{app="myapp"} | ~ "timeout |
{job="syslog"} != "debug" | debug가 아닌 로그 필터링 |
Loki 저장 방식 (vs ELK Stack)
항목 | Loki | Elasticsearch |
---|
인덱싱 | 라벨만 인덱싱 | 전체 로그 내용 인덱싱 |
저장 용량 | 작음 (압축 저장) | 큼 |
검색 속도 | 라벨 기반으로 빠름 | 전체 검색 시 느림 가능 |
복잡도 | 낮음 | 높음 |
Grafana 통합 | 기본 지원 | 연동 필요 |
Loki가 유용한 경우
- Prometheus로 모니터링 중인 서버의 로그를 함께 보고 싶을 때
- 리소스가 부족한 서버에서도 경량 로그 시스템이 필요한 경우
- 여러 서버/컨테이너의 로그를 통합 수집해서 검색하고 싶은 경우
- 메트릭과 로그를 같은 시간 축으로 함께 보고 싶은 경우
Loki 기본 연동 구조
text
복사편집
[서버 로그 파일들]
↓
Promtail
↓
Loki
↓
Grafana
- Promtail이 로그를 읽고 Loki에 전송
- Loki는 로그를 저장/색인
- Grafana는 Loki에 쿼리해서 로그 시각화
Loki 수집 대상 예시
/var/log/syslog
/var/log/nginx/access.log
- Docker container 로그 (
/var/lib/docker/containers/...
)
- 애플리케이션 로그 파일 (
logs/app.log
)