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 에 조사를 시작했다.
조치
- 09:29 에 red 인덱스를 지워 클러스터를 green, 즉 쓸 수 있는 상태로 되돌렸다. 업데이트 파이프라인이 회복하기 시작했다.
- 09:47 에 망가진 인덱스 복구를 시작했고 14:50 에 모든 인덱스가 돌아왔다.
후속 조치
- 운영 CirrusSearch 의 스냅샷 저장소를 다시 켠다.
- 운영 대응에 맞춘 OpenSearch 대시보드를 만든다.
- Search Platform 이 맡은 OpenSearch 클러스터의 Logstash 파이프라인을 확인하고 고친다.
교훈
노드 ban 은 성공을 보장하지 않는 동작이라 기대대로 되지 않았다. 같은 종류의 서버를 한꺼번에 여러 대 폐기하는 큰 작업에 유지보수 계획이나 런북이 없었다. 스냅샷과 대시보드, 로깅 같은 중요한 도구를 쓸 수 없거나 문서가 모자랐다. 데이터센터가 depool 돼 있던 덕분에 사용자 영향이 없었다.
출처
- https://wikitech.wikimedia.org/wiki/Incidents/2025-05-29_OpenSearch_clusters_unavailable · runbook · 보관본
참고 문서
관련 사례
–
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0299
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0299/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.