Cloud Native 환경에서는 Metrics뿐만 아니라 Application과 Server에서 발생하는 Log 데이터를 분석하는 것이 중요합니다.
Metrics는 현재 상태를 숫자로 보여주지만 Log는 시스템에서 발생한 상세한 이벤트 기록을 제공합니다.
예:
사용자 요청 발생
↓
Application Log 생성
↓
Error 발생
↓
Log 분석 필요
특히 Kubernetes 환경에서는 수많은 Container와 Pod가 동적으로 생성되기 때문에 중앙 집중식 Log 관리 시스템이 필요합니다.
기존 방식:
Server 접속
↓
Log File 확인
↓
문제 분석
하지만 대규모 환경에서는 수백 개의 Server와 Container Log를 각각 확인하기 어렵습니다.
이를 해결하기 위해 ELK Stack 같은 Log Monitoring Architecture가 사용됩니다.
ELK Stack은 Elasticsearch, Logstash, Kibana 세 가지 기술로 구성된 대표적인 Log Analysis Platform입니다.
예:
Application
↓
Logstash
↓
Elasticsearch
↓
Kibana Dashboard
↓
Log 분석
| 구성 요소 | 역할 |
|---|---|
| Elasticsearch | Log 저장 및 검색 |
| Logstash | Log 수집 및 변환 |
| Kibana | Log 시각화 |
| Beats | 데이터 전달 |
| Index | Log 관리 단위 |
ELK Stack 구조를 이해하면 Kubernetes, Cloud, Enterprise Log Monitoring Architecture를 설계할 수 있습니다.
ELK Stack이란?
ELK Stack은 Log 데이터를 수집하고 저장하며 분석하기 위한 Open Source 기반 Log Management Platform입니다.
구성:
E
Elasticsearch
↓
L
Logstash
↓
K
Kibana
현재는 Beats와 Elastic Agent까지 함께 활용하는 구조가 일반적입니다.
ELK Stack Architecture
기본 구조:
Application
↓
Log Collector
↓
Logstash
↓
Elasticsearch
↓
Kibana
↓
Dashboard
Log 수집부터 분석까지 자동화합니다.
Elasticsearch란?
Elasticsearch는 대량의 데이터를 빠르게 검색하고 분석할 수 있는 Distributed Search Engine입니다.
주요 기능:
- Full Text Search
- Log Storage
- Distributed Index
- Real Time Search
ELK Stack의 저장 및 검색 엔진 역할을 담당합니다.
Elasticsearch Index란?
Index는 Elasticsearch에서 데이터를 저장하는 논리적인 공간입니다.
구조:
Application Log
↓
Index
↓
Document
↓
Field
Log 데이터를 효율적으로 검색합니다.
Elasticsearch Cluster Architecture
대규모 환경:
Master Node
↓
Data Node
↓
Index Storage
↓
Search Request
여러 Node로 확장 가능합니다.
Logstash란?
Logstash는 다양한 Source에서 Log 데이터를 수집하고 변환하는 Data Processing Pipeline Tool입니다.
역할:
- Log 수집
- 데이터 변환
- 필터 적용
- Elasticsearch 전달
Log 처리 과정을 자동화합니다.
Logstash Pipeline 구조
기본 구조:
Input
↓
Filter
↓
Output
예:
File Log
↓
Parsing
↓
Elasticsearch
Log 데이터를 원하는 형태로 변환합니다.
Logstash Input
Input은 Log 데이터를 가져오는 Source입니다.
예:
- File
- Syslog
- Kafka
- Database
- Beats
다양한 환경에서 데이터를 수집합니다.
Logstash Filter
Filter는 수집된 Log를 분석하고 변환합니다.
대표 Filter:
| Filter | 역할 |
|---|---|
| Grok | Log Parsing |
| Date | 시간 변환 |
| Mutate | Field 변경 |
| GeoIP | 위치 분석 |
비정형 Log를 분석 가능한 데이터로 변경합니다.
Kibana란?
Kibana는 Elasticsearch 데이터를 시각화하는 Dashboard Platform입니다.
활용:
- Log 검색
- Dashboard 생성
- Error 분석
- Monitoring 화면 구성
운영자가 Log를 쉽게 분석할 수 있습니다.
ELK Stack과 Kubernetes
Kubernetes Log Architecture:
Pod
↓
Container Log
↓
Filebeat
↓
Logstash
↓
Elasticsearch
↓
Kibana
Cluster 전체 Log를 중앙 관리합니다.
ELK Stack과 Docker
Container 환경:
Docker Container
↓
Container Log
↓
Logstash
↓
Elasticsearch
↓
Dashboard
Container Application Log 분석에 활용됩니다.
ELK Stack과 DevOps
DevOps 운영:
Deploy
↓
Application Running
↓
Log Collection
↓
Error Analysis
↓
Optimization
운영 장애 분석에 중요한 역할을 합니다.
ELK Stack과 Observability
Observability 구조:
| 요소 | 도구 |
|---|---|
| Metrics | Prometheus |
| Logs | ELK Stack |
| Visualization | Grafana |
| Tracing | OpenTelemetry |
전체 시스템 상태를 분석합니다.
ELK Stack Best Practice
권장:
- Log Retention 정책 설정
- Index 관리
- Log Level 관리
- Sensitive Data 제거
- Cluster Monitoring 구성
효율적인 Log 운영 환경을 구축합니다.
ELK Stack 장애 분석
Elasticsearch 상태 확인:
curl localhost:9200/_cluster/health
Logstash 상태 확인:
systemctl status logstash
Kibana 상태 확인:
systemctl status kibana
확인:
- Elasticsearch Cluster 상태
- Log 수집 여부
- Index 생성 상태
- Pipeline 오류
ELK Stack 장점
| 장점 | 설명 |
|---|---|
| 중앙 관리 | Log 통합 |
| 검색 | 빠른 분석 |
| 확장성 | Distributed 구조 |
| 시각화 | Dashboard 제공 |
ELK Stack은 Enterprise 환경에서 가장 대표적인 Log Monitoring Architecture입니다.
자주 묻는 질문
ELK Stack과 Prometheus 차이는 무엇인가요?
Prometheus는 Metrics 중심이고 ELK Stack은 Log 분석 중심입니다.
Kubernetes에서 ELK Stack이 필요한가요?
대규모 Kubernetes 환경에서는 장애 분석과 Application 운영을 위해 많이 사용됩니다.
Grafana와 Kibana 차이는 무엇인가요?
Grafana는 Metrics 시각화 중심이고 Kibana는 Elasticsearch 기반 Log 분석과 검색에 특화되어 있습니다.
마무리
ELK Stack은 Elasticsearch, Logstash, Kibana를 기반으로 Application과 Infrastructure Log를 수집하고 분석하는 대표적인 Log Monitoring Architecture입니다.
| 구성 요소 | 역할 |
|---|---|
| Elasticsearch | Log 저장·검색 |
| Logstash | 수집·변환 |
| Kibana | 시각화 |
| Beats | 데이터 전달 |
| Index | Log 관리 |
ELK Stack 구조를 이해하면 Kubernetes, Cloud, Enterprise 환경에서 안정적인 Log Monitoring과 Observability Architecture를 구축할 수 있습니다.