GitLab에서는 이렇게 모니터링한다.

강재민·2024년 8월 2일
0

Gitlab

목록 보기
6/6
post-custom-banner

가용성 측정하기

실제 GitLab에서 가용성을 확인하는 대시보드: http://stats.pingdom.com/81vpf8jyr1h9

GitLab에서는 실제 운영중인 gitlab.com의 가용성을 Pingdom이라는 서비스를 활용해서 측정하고 월별 보고하고 있다.

https://www.pingdom.com/


메트릭 수집하기

Prometheus와 InfluxDB를 혼용해서 사용하다가 지금은 Prometheus만 사용하고 있습니다.

프로메테우스

3개의 프로메테우스 클러스터를 활용해서. 각각의 영역을 나눠서 관리하고 있다.

  • main prometheus : consul, haproxy 등 다양한 메트릭을 수집합니다 .
  • prometheus-db : pg-bouncer exporter, postgres-exporter와 같은 Postgresql 데이터베이스 관련 메트릭을 수집합니다 .
  • prometheus-app : 애플리케이션 관련 메트릭을 수집합니다

각각의 메트릭은 PromQL을 사용해서 쿼리하여 인터페이스로 제공한다.

GitLab에서 사용하는 Prometheus rule: https://gitlab.com/gitlab-com/runbooks/-/tree/master/legacy-prometheus-rules


내가 테스트 해봤을 때는 잘 동작하는 것 같다. patroni node 수를 2개로 했더니 그 부분에 대한 에러가 동작하는 것을 볼 수 있었다.

타노스

프로메테우스 클러스터들에 대한 전체 메트릭에 대한 쿼리는 타노스 쿼리를 사용한다.


대시보드 구성하기

Grafana를 사용해서 대시보드를 구성합니다.

https://gitlab.com/gitlab-org/grafana-dashboards

현재 업데이트가 잘되고 있는 건 아래 링크인데 GET Hybride 방식으로 주로 업데이트가 되고있는듯하다.

https://gitlab.com/gitlab-org/gitlab-environment-toolkit/-/blob/main/docs/environment_advanced_hybrid.md


로깅하기

GitLab은 ELK 스택을 활용해서 로깅합니다. (Elasticsearch, Kibana, Beats, and Logstash)
https://www.elastic.co/elastic-stack

GCP에서 관리형 Elasticsearch 클러스터를 사용합니다.

하지만 장기적으로는 Prometheus Grafana로 로깅 인터페이스를 전환할 예정입니다.

post-custom-banner

0개의 댓글