Repository navigation
Replies: 1 comment
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
문제 배경
무슨 일이 있었나
9월 AWS 비용이 8월 대비 갑자기 $50 이상으로 튀는 것을 확인했습니다. Cost Explorer로 분석한 결과, 실제 원인은
solid-connection-monitoring인스턴스(t4g.micro)의 CPU 크레딧 초과 요금이었습니다 (APN2-CPUCredits:t4g항목만 8월 $0 → 9월 $19.85).근본 원인
SSH로 직접 접속해서 확인한 결과, 아래와 같은 연쇄 장애였습니다.
dockerd가 grafana/loki/prometheus 컨테이너 로그를 쓰지 못해 초당 여러 번씩 에러를 반복 재시도rsyslogd/systemd-journald로 계속 쏟아지면서 두 프로세스가 9월 2일부터 CPU를 지속적으로 폭주시킴 (rsyslogd 평균 66.5%, journald 평균 30.4%)logrotate.service도 실패 상태가 되고, Grafana 웹 UI도 정적 자산 로딩 실패로 접속 불가 상태였음 (TLS 인증서는 2026-10-06까지 유효 — 인증서 문제 아님, 확인 완료)디스크를 차지하고 있던 항목 (정리 전 기준):
/usr(기본 OS)/var/lib/containerd(이미지 레이어)/home/var/log/journal/var/lib/snapd(오래된 리비전)/var/cache/apt/var/lib/docker→ 메트릭/로그 데이터 자체는 전체 디스크의 7% 수준이었고, 대부분은 OS/이미지/캐시성 자산이 무기한 쌓인 것이 원인이었습니다.
응급 조치 (이미 완료)
apt-get clean,docker system prune -f(운영 컨테이너/이미지는 보존),journalctl --vacuum-size=100M, 오래된 snap 리비전 삭제를 진행해서 디스크 사용률을 **100% → 87%(919M 여유)**로 낮췄고, 실시간 CPU도 확인 결과 rsyslogd/journald 모두 **0%**로 정상화됐으며 Grafana도 다시 정상 접속됩니다. 단, 근본 원인(작은 볼륨 + 정리 정책 부재)은 그대로라 재발 가능성이 높습니다.추가로 설정 점검 중 발견한 별개 버그:
solid-connection-monitoring-node-exporter스크레이프 job이 monitoring 자신이 아니라 stage 서버 IP를 중복으로 긁고 있어서, monitoring 자체 지표는 수집되고 있지 않았습니다.해결 방식 후보
옵션 A. 최소 조치 — 로그만 통제
max-size,max-file) 적용,logrotate.service실패 원인 수정, CloudWatch 디스크 사용률 알람 추가옵션 B. 인프라 사이징 정상화 — 볼륨 확장 + Retention 정책 (추천)
옵션 C. 구조적 개선 — 관측 스택 아키텍처 재검토
옵션 D. 불필요한 메트릭/로그 수집 축소
redis_commands_latencies_usec_bucket등, 전체 시리즈의 15%+ 차지) 확인 후 drop,scrape_interval10s → 30s 완화종합 의견
B + D를 함께 진행하는 것을 제안합니다. B가 이번 사고의 직접 원인(용량 부족)을 해소하고, D는 다음에 또 볼륨을 늘려야 하는 주기를 늦춰줍니다. A는 B에 포함되는 내용이라 별도로 안 해도 되고, C는 지금 결정하기보다 로드맵 아이템으로 남겨두는 정도면 충분할 것 같습니다.
의견 남겨주세요 🙏
All reactions