Elasticsearch(50)
-
Kubernetes 현황판 Root Disk가 N/A일 때: Metricbeat와 Elasticsearch 연결 문제 해결
Kubernetes 운영 현황판에서 CPU와 memory는 정상적으로 나오는데 rootdisk만 N/A로 표시되는 문제가 발생했다.처음에는 Metricbeat가 디스크 정보를 수집하지 못하는 문제처럼 보였지만,실제 원인은 대시보드 API pod에 Elasticsearch 접속 환경변수가 주입되지않은 것이었다.이 글은 Kubernetes API, Metricbeat, Elasticsearch, application runtimeenv를 단계별로 점검하며 원인을 좁힌 과정을 정리한다.🔍 핵심 포인트 (먼저 정리)👉 N/A는 데이터 없음이 아니라 조회 실패일 가능성이 높다👉 CPU / Memory와 Disk는 데이터 경로가 다르다CPU / Memory → metrics-server → Kubernetes..
2026.04.25 -
Elasticsearch DiskPressure 원인 분석: ILM 보관 정책으로 해결한 사례
Elasticsearch Pod Pending 문제를 해결한 이후에도 cluster 상태가yellow로 유지되는 현상이 발생했다.확인 결과 스케줄링 문제가 아니라 로그성 data stream 증가로 인한 디스크압박(DiskPressure) 이 원인이었다.이 글에서는 실제 운영 환경에서 발생한 문제를 기준으로인덱스 용량 확인 → ILM 설정 → 정리 과정까지 정리한다.🔍 1. 증상노드 상태 확인:kubectl describe node {=html}👉 DiskPressure 발생Elasticsearch 상태:kubectl get elasticsearch -n {=html}👉 Ready 상태지만 내부적으로 shard allocation 제한 발생⚠️ 2. 원인 확인 (인덱스 크기)Elasticsearch..
2026.04.25 -
Elasticsearch Pod Pending 원인 분석: local PV와 taint 충돌 해결
Kubernetes 환경에서 ECK로 운영 중인 Elasticsearch Pod가 장시간 Pending상태에 머무르는 문제가 발생했다.처음에는 리소스 부족을 의심했지만, 실제 원인은 local PV의 nodeaffinity와 node taint 정책 충돌이었다.이 글에서는 해당 문제의 원인과 해결 과정을 실무 기준으로 정리한다.🔍 1. 증상kubectl get pods -n -o widekubectl get elasticsearch,kibana -n es-es-hot-ssd-0 0/1 Pending👉 Kibana와 Operator는 정상👉 Elasticsearch만 ApplyingChanges 상태 유지⚠️ 2. 스케줄링 이벤트kubectl describe pod -n FailedSche..
2026.04.25 -
Filebeat 멀티라인 적용 후 Kafka Connect ES Sink 장애 해결기 (DLQ + 오프셋 스킵)
요약Minecraft 로그 수집 파이프라인(Filebeat → Kafka → Kafka Connect → Elasticsearch)에서 멀티라인 적용 이후 ES 인덱싱 에러가 발생했다.DLQ를 활성화해 문제 레코드를 확인했고, 오프셋 스킵과 멀티라인 규칙 분리로 해결했다.환경 Filebeat (Kubernetes DaemonSet) Kafka / Kafka Connect Elasticsearch (Data Stream) 로그 소스: minecraft, list-logger1. 멀티라인 적용Minecraft 서버 로그에 스택트레이스가 있어 멀티라인 처리를 적용했다.# filebeat.yml (초기 적용)parsers: - container: ~ - multiline: type: patt..
2026.02.17 -
Grafana에서 Minecraft 로그를 INFO/WARN/ERROR로 분리하기 (Data Stream + Pipeline + Kafka Connect)
Minecraft 로그를 Grafana에서 보는데 message만 존재해 INFO/WARN/ERROR로 그룹핑이 불가능했다.즉, “레벨별 로그 수”를 대시보드로 만들 수 없는 상태였다.해결 목표는 log.level 필드를 실제로 저장해 Grafana에서 레벨별 집계를 가능하게 만드는 것이었다.또한 로그가 장기적으로 쌓이므로 Data Stream으로 전환해ILM/자동 롤오버가 동작하도록 운영 안정성을 높였다.(일반 인덱스는 롤오버/보관 정책을 수동 관리해야 함)1) 데이터 흐름Filebeat → Kafka → Kafka Connect → Elasticsearch (Data Stream)2) 왜 Data Stream으로 바꿨나?일반 인덱스는 롤오버/보관을 수동 관리해야 한다. Data Stream은 ILM..
2026.02.14 -
Elasticsearch Index Template 생성 방법 (API / UI)
message.keyword 같은 집계용 필드를 쓰려면 Index Template을 만들어야 한다.아래는 API 방식과 UI 방식 두 가지로 정리한 방법이다.1) API 방식 (Dev Tools / REST)PUT _index_template/minecraft-logs-template{ "index_patterns": ["minecraft-logs*"], "template": { "mappings": { "properties": { "message": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_a..
2026.02.14