Skip to content
hello tis
Go back

[26.10.12] 사내 버셀 연동을 위해 LGTM을 직접 관리하기

상황

사내 버셀을 LGTM에 연동하면서 서비스 상태를 확인할 대시보드와 alerts를 추가해보고 싶었습니다. 그런데 기존 대시보드에서도 Service Mesh가 표시되지 않는 경우가 있었습니다.

datasource 설정을 수정해야 했지만 UI에서 바꿀 수 없어 작업이 막혔습니다.

비어 있는 Service Mesh수정이 막힌 datasource 설정
데이터가 표시되지 않는 Service Mesh 패널UI에서 필요한 설정을 수정할 수 없었던 Tempo datasource 화면

원인

인프라팀의 업무가 늘면서 상대적으로 우선순위가 낮은 모니터링 고도화는 진행되지 않았습니다. 개발에 필요한 설정을 직접 수정하고 개선할 관리 방식이 필요했습니다.

해결

개발에 필요한 모니터링 요소를 직접 관리하기

개발에 필요한 모니터링 요소는 개발팀에서 관리하도록 제안했습니다. 제가 datasource 설정과 대시보드, alerts를 Git에서 코드로 관리하고, CI/CD를 통해 변경한 설정이 자동으로 반영되도록 관리 방식을 바꾸기로 했습니다.

Git 기반 배포와 서버 상태 점검 구성하기

test는 개발 환경 검증에, main은 운영 환경 반영을 위한 승격에 사용합니다. 설정을 dev에 자동으로 반영해 검증하고, 정상 동작한 동일 커밋의 설정을 승인 후 prod에 반영하는 구조입니다.

GitHub의 CI가 설정과 대시보드를 검증한 뒤 dev LGTM에 자동 반영하고, 승격과 승인 후 같은 커밋을 prod LGTM에 반영합니다. 별도 서버의 watchdog은 HTTPS로 두 LGTM의 상태를 점검하고 장애와 복구를 알립니다.

설정 오류를 배포 전에 확인하기

환경별 설정을 구분하고 CI에서 대시보드 설정을 검사해, 잘못된 설정의 반영을 막습니다.

구성목적
환경별 설정 분리dev와 prod에 맞는 설정을 구분해 적용
대시보드 CI 검증배포 전에 대시보드 설정 오류 확인

모니터링 서버 자체를 점검하는 watchdog

LGTM 자체의 장애도 감지할 수 있도록, Grafana와 독립적으로 상태를 점검하고 장애와 복구를 기록하는 watchdog을 구성했습니다.

watchdog 구현 일부를 공유합니다.

Nginx 경유 점검upstream 직접 점검
Nginx를 거쳐 각 구성 요소의 응답을 확인하는 watchdog 화면각 구성 요소에 직접 요청해 응답을 확인하는 watchdog 화면

결과

사내 버셀에 필요한 대시보드와 alerts를 추가하려다, datasource 설정을 직접 바꾸지 못해 개선이 멈추는 문제를 겪었습니다. 이를 계기로 개발에 필요한 모니터링 요소를 개발팀이 관리하도록 제안했고, 제안이 반영되면서 제가 필요한 설정을 직접 관리하기로 했습니다.

설정 변경이 반복돼도 직접 관리할 수 있도록 Git을 기준으로 CI에서 설정을 검사하고, dev에서 검증한 변경을 승인 후 prod에 반영하는 흐름을 설계했습니다. 여기에 watchdog을 구성해 LGTM 자체의 장애와 복구도 확인하도록 했습니다. 설정을 수정하지 못해 막혔던 경험에서 출발해, 개발팀이 변경과 검증, 상태 점검을 함께 맡는 방식으로 풀었습니다.


Share this post:

Previous Post
[26.10.13] 사내 버셀의 빌드를 분리하고 빌드 결과 기록하기
Next Post
[26.10.09] 알툴즈 AI API의 구독 확장을 위한 판별 책임과 정책 분리하기