홈서버?
사실 원래 계획대로 이번엔 클코로 바이브 코딩하는 예제를 올리려고 했다.
그러나 아주 작은 사고가 있어서 올리지 못하였다....금요일 새벽 갑자기 집에 전기가 한번 나갔고 다시 켜지니 서버가 다시 안켜졌다. ㅜㅜ
전원은 들어오는데 이상하게 서버가 강제 종료를 당하면서 Kubelet같은 메인 컴포넌트들이 systemctl에서 Error를 뱉고 있었다..
다음날 본가로 향해야했었기에 어쩔 수 없이 주말간 수리를 하지 못했지만 말이다....
영향도
운영중이던 웹사이트가 죽었다.
당연히 쿠버 클러스터도 다 죽었다.
당연히 배포에 필요한 CICD도 다 죽었다.
어떻게 해결할까
앞으로 정전이 나지 않으면 참 좋겠지만 그건 자취방이라는 특성상 아무래도 어려울 것 같다.
그래서 내린 결론은 저렴한 '소형 UPS를 달자!'로 나왔다.

이런 작은 용량을 가진 UPS는 저렴하게 구매가 가능하다.
그러면 이걸로 뭘 할 수 있느냐?
Lan 포트가 UPS들에는 일반적으로 존재한다.
해당 Lan Port를 통해서 Proxmox 및 내부 VM에 ACPI shutdown, NUT와 같은 정상 종료 요청을 전달한다.
이는 Prometheus에게 Custom Metric을 던지도록 Python을 이용해서 구성한 뒤 작은 라즈베리파이로 연결하면 된다.
이후 Grafana Alert와 Slack을 통해 알림을 받도록 구성해볼 계획이다.
왜 Grafana Alert를 굳이 사용하는가에 대한 답은 단 하나다.
시각화를 통해 연간 추이를 재볼 수 있기 때문이다.
전력량을 많이써서 정전이 자주된다 = 멀티탭 분산 및 사용전력 분석 필요 등으로 결론이 도출되기 때문이다.
그럼 지금 당장은 뭘해야하나?
솔직히 별로 할 수 있는건 없다.
그렇다고 나도 꼴에 엔지니어라고 그냥 손놓고 '아~ UPS 살때까지 쉴랭' 할 수가 없었다.
UPS 구매전까지 손 놓고 발동동 대신에 시각화를 하기로 했다.
당연히 방지, 사전 알림 이런건 정전이라는 특성상 불가능하지만 이를 통해 다운타임 계산은 할 수 있다.
무엇을 통해? Grafana SLO 플러그인을 통해서 해볼 수 있다.
https://grafana.com/docs/plugins/grafana-slo-app/latest/
Grafana SLO | Grafana Plugins documentation
SLO dashboard Analyze SLO performance and view key metrics such as burn rate, error budget, SLI results and more.
grafana.com
는...나는 Self Hosted고 돈을 쓰기엔 취미에 이미 돈을 너무 많이 써서 돈이 없다.
그래서 그냥? 대시보드만 구성하기로...ㅎㅎ
그리고 사실상 이 목적 자체가 재발이 또 했을때 얼마나 다운이 있었고 그 사이에 내 사이트에 왔었을 사람을 '추산'하는 것 이다.
여기서 회사도 아닌데 이런걸 왜 하냐고 한다면....사실 이미 Vercel 안쓰고 K8S를 직접 호스팅하고 있는 순간부터 글러먹은거 아닐까 생각한다.

뭐 사실 이미 이런 예제가 커뮤니티에 있지만 난 서비스 별로 SLI를 체킹해보려고 하는 부분이기 때문에 SLO 대시보드랑 어느정도 거리가 있었다.

그래서 그냥 만들었다.
뭐 데이터가 없거나 하는 부분은 내가 아직 수집하고 있지는 않지만 수집할 데이터, 진짜로 문제가 없어서 수집이 안된 데이터 등등 많다.
그래서 그냥 json을 공유 해두려고 한다.
여기서 필수 전제 조건은 Istio가 필요하다.
Grafana-Dashboard-Examples/50-posted/SRE — 서비스 SLO (가용성 & 에러 예산).json at main · High-PO/Grafana-Dashboard
Contribute to High-PO/Grafana-Dashboard-Examples development by creating an account on GitHub.
github.com
- 사실 만든건 좀 되었지만 배포는 로컬에서 가지고만 있다가 늦게 배포해본다...
마무리
엔터프라이즈가 아닐 경우 극한으로 한정된 자원안에서 무언가를 해내야하는게 참 어렵다.
그렇기 때문에 난 시각화와 알림체계를 중요하게 생각하고 있고, 이를 통해서 앞으로 많은 인사이트를 얻을 수 있다고 생각한다.
UPS같은 근원 해결도 좋지만 사고의 전, 후 또한 무척이나 중요하다.
그것이 포스트모템을 작성하는 대부분의 이유일 것이고 이를 잊지 않도록 노력하고자 한다.