Incident Library

IL-0299 Wikimedia Foundation · 2025-05-28database

Wikimedia CirrusSearch 의 OpenSearch 클러스터에서 인덱스 약 60개가 red 상태가 되어 쓸 수 없었다

2025-05-28 15:17 에 Data Platform SRE 엔지니어가 폐기를 준비하며 elastic/opensearch 호스트 15대를 ban 했다. ban 은 성공을 보장하지 않는 동작이라 기대대로 되지 않았다. 21:08 에 이 호스트들, 곧 elastic/cirrussearch10[53-67] 의 클러스터 접근을 없애는 Puppet 패치가 머지됐다. 일부 호스트가 아직 primary 샤드를 가지고 있어서 CirrusSearch OpenSearch 클러스터의 인덱스 약 60개가 red, 즉 쓸 수 없는 상태가 됐다. 21:27 에 업데이트 파이프라인이 이 인덱스들에 쓰지 못해 CirrusStreamingUpdaterFlinkJobUnstable 알림이 울리기 시작했지만, 클러스터 유지보수 때문에 다른 알림 다수가 억제돼 있었다. 다음 날 07:24 에 엔지니어가 조사를 시작했고 08:56 에 Slack 의 #data-platform-sre 에 스레드를 열어 Data Platform SRE 의 도움을 받았다. 09:29 에 red 인덱스를 지워 클러스터를 green, 즉 쓸 수 있는 상태로 되돌렸고 업데이트 파이프라인이 회복하기 시작했다. 09:47 에 망가진 인덱스 복구를 시작해 14:50 에 모든 인덱스가 돌아오며 장애가 끝났다. 데이터센터가 depool 돼 있어 사용자 영향은 없었다. 이만큼 큰 작업에 유지보수 계획이나 런북이 없었다. 스냅샷과 대시보드, 로깅 같은 중요한 도구는 쓸 수 없거나 문서가 모자랐다.

심각도
–
영향 범위
About 60 CirrusSearch OpenSearch indices red and unwritable; the search update pipeline could not write to them
영향 사용자
No user impact, because the datacenter was depooled
지역
–
감지까지
19m
복구까지
17h 42m

증상

2025-05-28 21:27 부터 CirrusStreamingUpdaterFlinkJobUnstable 알림이 울렸다. 검색 업데이트 파이프라인이 red 상태가 된 인덱스 약 60개에 쓰지 못하고 있었다.

클러스터에서 유지보수 작업을 하던 중이라 다른 알림 다수가 억제되어 울리지 않았다. 사람이 문제를 알아채고 조사를 시작한 것은 다음 날 07:24 였다.

데이터센터가 depool 된 상태여서 사용자 영향은 없었다.

증상 쓰기 거부

원인

촉발
2025-05-28 21:08 에 폐기할 호스트 elastic/cirrussearch10[53-67] 의 클러스터 접근을 없애는 Puppet 패치가 머지됐다. 이 중 일부 호스트가 아직 primary 샤드를 가지고 있었다.

감지

사람이 발견했다. 2025-05-28 21:27 부터 CirrusStreamingUpdaterFlinkJobUnstable 알림이 울렸지만, 클러스터 유지보수 작업 때문에 다른 알림 다수가 억제돼 울리지 않았다. 엔지니어가 다음 날 07:24 에 조사를 시작했다.

조치

후속 조치

교훈

노드 ban 은 성공을 보장하지 않는 동작이라 기대대로 되지 않았다. 같은 종류의 서버를 한꺼번에 여러 대 폐기하는 큰 작업에 유지보수 계획이나 런북이 없었다. 스냅샷과 대시보드, 로깅 같은 중요한 도구를 쓸 수 없거나 문서가 모자랐다. 데이터센터가 depool 돼 있던 덕분에 사용자 영향이 없었다.

출처

참고 문서

관련 사례

–

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: Elasticsearch 와 OpenSearch. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.