k8s/EFK(106)
-
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 -
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 -
K8s에서 Metricbeat로 디스크 모니터링 구성 (Elastic Stack)
목표각 노드의 디스크/CPU/메모리/IO 메트릭 수집Elasticsearch로 적재 후 Grafana/Kibana에서 시각화1. 구성 개요수집 에이전트: Metricbeat (DaemonSet)저장소: Elasticsearch시각화: Grafana 또는 Kibana2. 핵심 포인트디스크 사용률은 system.filesystem.* 모듈로 수집K8s 노드의 실제 디스크를 보려면 hostfs 설정 필요ILM/템플릿 생성은 “setup 권한” 필요3. 권한 설계 (API Key)A. Setup용 (일회성)목적: ILM 정책 + 템플릿 생성필요한 권한:cluster: monitor, manage_ilm, manage_index_templatesB. 운영용 (최소 권한)목적: 데이터 쓰기만필요한 권한:cluste..
2026.02.12 -
Grafana → Slack 알람으로 로그 원문을 보내려다 깨달은 한계와 올바른 구조 정리
배경Minecraft 서버 로그를 수집해서접속 알림에러(RCON 실패 등) 알림을 Slack으로 실시간 받고 싶었다.이미 구성은 다음과 같았다.Filebeat → Elasticsearch → GrafanaGrafana Alerting을 이용해message: "joined the game" 같은 로그 조건으로 Slack 알람을 보내려 했고,그래프 상에서는 정상적으로 Firing / Resolved 상태도 잘 변했다.하지만 실제 Slack 알림은…문제 1. 알람이 즉시 오지 않는다 (체감 지연)현상화면에서는 그래프가 바로 반응Slack 알림은 한참 뒤에 도착원인 정리Grafana Alert는 로그 이벤트 기반이 아니라 “평가(Evaluation)” 기반이다.ES refresh intervalAlert rul..
2026.02.08