✅ 1. 전체 아키텍처 흐름
[App/Infra Logs]
↓
Filebeat / Logstash
↓
[Elasticsearch]
↓
Kibana (대시보드)
- Filebeat: 로그 파일 수집기 (Lightweight)
- Logstash: 데이터 처리, 변환, 파싱
- Elasticsearch: 로그 저장/검색/분석
- Kibana: 시각화 및 모니터링 대시보드
✅ 2. Filebeat (로그 수집기)
🔹 역할
- 로그 파일 tailing
- Multiline (스택트레이스 등) 지원
- 시스템 로그, Docker 로그, Nginx, Java 로그 등 수집 가능
🔹 설정 예시
filebeat.inputs:
- type: log
paths:
- /var/log/myapp/*.log
multiline.pattern: '^\['
multiline.negate: true
multiline.match: after
output.elasticsearch:
hosts: ["http://localhost:9200"]
index: "myapp-logs-%{+yyyy.MM.dd}"
💡 실무 팁
multiline
설정 필수 (Java stack trace)fields
옵션으로 서비스명, 환경 태깅- JSON 로그 구조화 추천
✅ 3. Logstash (필요 시 중간 가공)
🔹 역할
- 로그 파싱 및 정제
- Grok 패턴, mutate, date 필터 등
- Kafka → Logstash → ES 구성 가능
🔹 Grok 예시
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} \[%{LOGLEVEL:level}\] %{GREEDYDATA:msg}" }
}
date {
match => [ "timestamp", "ISO8601" ]
}
}
💡 실무 팁
- Filebeat에서 JSON 구조면 Logstash 생략 가능
- Kafka 중계/복잡한 parsing 시 유용
✅ 4. Kibana (시각화 및 알림)
🔹 주요 기능
- Discover: 실시간 로그 조회
- Dashboard: 시각화
- Alerting: 이상 탐지 알림
- Lens/TSVB: 시간 기반 분석
💡 실무 팁
timestamp
, level
, logger
, service_name
필드 표준화- Error 로그 대시보드 구성
- 복합 필터링 예시:
log.level: ERROR AND NOT message:"Connection reset"
✅ 5. 성능/보안 로그 모니터링
유형 | 설명 |
---|
JVM GC 로그 | 메모리 문제 추적 |
Nginx / Apache | API 응답 시간, 요청 수 분석 |
Kafka / Redis | Broker 상태, throughput 추적 |
Spring Boot | actuator 로그 + slf4j 로그 |
시스템 로그 | CPU, 메모리 사용량 추적 |
인증 로그 | 로그인 시도, 실패 분석 |
✅ 6. 인덱스 전략 및 유지 관리
index.lifecycle
정책 (ILM): 오래된 로그 자동 삭제- 일별 인덱스:
myapp-logs-2025.07.11
- 템플릿 매핑 필수:
@timestamp
, log.level
등 - hot-warm-cold 아키텍처 고려
✅ 7. 실무 구성 예시 (Docker Compose)
services:
elasticsearch:
image: elasticsearch:8.17.6
environment:
- discovery.type=single-node
ports:
- 9200:9200
kibana:
image: kibana:8.17.6
ports:
- 5601:5601
depends_on:
- elasticsearch
filebeat:
image: docker.elastic.co/beats/filebeat:8.17.6
volumes:
- ./filebeat.yml:/usr/share/filebeat/filebeat.yml
- /var/log:/var/log:ro
✅ 정리 요약
구성 요소 | 역할 | 비고 |
---|
Filebeat | 로그 수집 | Multiline 지원, 간단 |
Logstash | 로그 정제 | Grok 필터, Kafka 중계 |
Elasticsearch | 저장/검색 | 인덱스 설계 중요 |
Kibana | 시각화/모니터링 | Discover, Alert 활용 |