포스트

blessflow 서비스 서버의 잦은 다운 해결

아시다시피 blessflow biblecardai 서비스는 mvp라서 이용자 수가 아직 많지 않고, 서버 운영에 대한 전반적인 권한을 가지고자 홈서버에서 운영하고 있습니다.

지난번에 kubernetes로 마이그레이션하면서 한층 안정성이 강화되었다고 생각했었는데요,

컴퓨터가 켜져있음에도 서비스 및 ssh가 모두 다운되는 일이 2번째 생기면서 그 원인이 무척 궁금했습니다.

그래서 공유기 문제인지, 중국산 minipc의 문제인지 궁금했죠.

파악해본 결과 아직 그 둘에 문제라기보다는 다른데서 문제를 발견했습니다.

바로 예전에 seaweedfs 저장소를 홈서버에 호스트로 설치했었다가 k3s pod로 옮기면서 정리하고자 삭제했었는데, 이게 폴더는 삭제했지만 스케줄러에서 제대로 삭제를 하지 않아서 무한정 일정 주기로 계속 재시작을 하고 있었습니다. 이런 수천회에 이르는 재시작 프로세스는 메모리 단편화를 일으켜 pc의 다른 작업에 문제를 악영향을 준다고 합니다.

1
2
3
4
5
6
  이번 케이스 같은 문제 탐지 포인트
  - systemd 서비스 재시작 횟수 급증
  - CPU/메모리 급격한 변화
  - 프로세스 생성/종료 빈도
  - journald 로그 쓰기량 급증
  - SSH 응답 지연

앞으로 이런 비슷한 일을 사전에 방지하고자 이상징후를 탐지하는 시스템 인프라가 필요하다는 걸 실감하게 되었습니다.

도구특징복잡도
Prometheus + AlertmanagerK8s 환경에 이미 적합, node-exporter로 호스트 모니터링중간
Netdata설치 간단, 실시간 대시보드, 자동 이상 탐지낮음
Telegraf + InfluxDB경량, 다양한 메트릭 수집중간

추천 옵션

Option 1: Netdata (가장 간단)

1분 내 설치, 바로 사용 가능

curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh

  • 실시간 대시보드 (localhost:19999)
  • 자동 이상 탐지 알림 내장
  • systemd 서비스 모니터링 포함
  • 리소스 사용량 낮음

Option 2: Prometheus Stack (K8s 환경에 적합)

  • kube-prometheus-stack Helm chart
  • Grafana 대시보드 포함
  • Alertmanager로 Slack/Discord 알림
  • 설정이 더 필요하지만 확장성 좋음

Option 3: 간단한 자체 스크립트 + systemd timer

  • 가볍고 의존성 없음
  • 특정 문제만 감시
  • Discord/Telegram webhook으로 알림

실서비스 용으로 사용중인 pc가 중국산 mini pc인데다가 엔지니어링 테스트 버전 cpu를 달고 있는 녀석이라 초기에는 잦은 꺼짐 이슈가 있었던 좀 못미더운 녀석입니다.

그래서 교체하려고 하는데 minipc가 저전력이 장점이긴 해도 그 장점이 오히려 단점이 되어서 전력이 튈때 약한 전원부가 감당 못하고 꺼지는 이슈가 있을 수 있습니다. 제가 지금 이 포스팅을 작성하는데 사용하는 이 wtr pro 5825u 의 경우도 윈도우를 사용하는 도중 꺼짐이슈가 가끔이지만 지속적으로 발생하고 있습니다. 원인을 보면 전원부 문제라고 나옵니다.

클라우드를 사용해서 서비스하는게 정석이긴 해도, 서비스 개수에 비용이 비례하는 구조가 저는 싫더라구요. 그래서 마음껏 mvp를 서비스하고, 또 장애이슈를 이렇게 스스로 파악해서 해결하는 경험도 쌓고자 홈서버를 선호합니다.

정말 비싼 mini pc도 전원부 때문에 급사나 꺼짐 이슈가 있다고 하니, 요새는 그럼 아예 itx pc를 만들어야 하나 시선이 가고 있습니다. 극한의 저전력은 조금 포기하고, 그 대신 일반 데스크탑 pc보다는 저전력, 저소음, 작은 사이즈이고 mini pc보다는 전원부가 튼튼하고 메인보드의 백도어 이슈에서도 자유로울 수 있는 컴퓨터입니다. 그런데 요새 컴퓨터 부품값이 너무 많이 올랐습니다. 메모리 가격이 13만원하던게 30만원이 되었으니까요.

다행히도 이번 문제는 seaweedfs systemctl 스케줄러 문제로 치고 넘어가게 되었습니다.

다음 다운 이슈가 또 생기면 아마 도메인을 공유기 고정 domain으로 바꾸기, 공유기 바꾸기, pc를 서늘한 곳으로 옮기기 등 해볼 수 있을 것 같습니다. ㅎㅎ

sticker

#blessflow #biblecardai

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.