웹 익스포터(전용 메트릭 서버)
GitLab을 Prometheus로 모니터링 할 때, GitLab은 다양한 수집기를 실행하여 사용, 부하 및 성능과 관련된 데이터를 샘플링합니다. 그런 다음 GitLab은 하나 이상의 Prometheus 익스포터를 실행하여 이러한 데이터를 Prometheus 스크래퍼에게 제공할 수 있습니다. Prometheus 익스포터는 메트릭 데이터를 Prometheus 스크래퍼가 이해할 수 있는 형식으로 직렬화하는 HTTP 서버입니다.
웹 응용 프로그램 메트릭을 내보내는 두 가지 메커니즘을 제공합니다:
- 주 어플리케이션 레일즈(예: 우리가 사용하는 어플리케이션 서버인 Puma)을 통해서입니다.
이는 Puma가 자체
/-/metrics
엔드포인트를 통해 메트릭 데이터를 제공하게 합니다. 이것이 기본값이며, 작게 수집된 메트릭이 있는 소규모 GitLab 설치에 적합합니다. - 전용 메트릭 서버를 통해입니다. 이 서버를 활성화하면 Puma가 메트릭을 제공하는 유일한 프로세스를 추가로 실행하게 됩니다. 이 접근 방식은 매우 큰 GitLab 설치에 대한 더 나은 장애 격리 및 성능을 제공하지만 추가적인 메모리 사용량이 발생합니다. 높은 성능과 가용성을 추구하는 중대형 GitLab 설치에 이 접근 방식을 권장합니다.
전용 서버와 레일즈 /-/metrics
엔드포인트는 동일한 데이터를 제공하기 때문에 기능적으로 동등하며 성능 특성만 다릅니다.
전용 서버를 활성화하려면:
- Prometheus를 활성화하세요.
-
/etc/gitlab/gitlab.rb
파일을 편집하여 다음 라인을 추가하세요(또는 찾아 다음 라인을 주석 처리 취소하세요).puma['exporter_enabled']
가true
로 설정되어 있는지 확인하세요:puma['exporter_enabled'] = true puma['exporter_address'] = "127.0.0.1" puma['exporter_port'] = 8083
- GitLab 번들된 Prometheus를 사용하는 경우, 해당
scrape_config
가localhost:8083/metrics
를 가리키는지 확인하세요. 스크래퍼 대상을 구성하는 방법은 사용자 정의 스크래핑 구성 추가 페이지를 참조하세요. 외부 Prometheus 설정에 대해서는 외부 Prometheus 서버 사용을 대신 참조하세요. - 파일을 저장하고 변경 사항이 적용되도록 GitLab을 재구성하세요.
이제 메트릭을 localhost:8083/metrics
에서 제공하고 스크래핑할 수 있습니다.
HTTPS 활성화
- GitLab 15.2에서 도입되었습니다.
HTTP 대신 HTTPS를 통해 메트릭을 제공하려면 익스포터 설정에서 TLS를 활성화하세요:
-
/etc/gitlab/gitlab.rb
파일을 수정하여 다음 라인을 추가하세요(또는 찾아 다음 라인을 주석 처리 취소하세요):puma['exporter_tls_enabled'] = true puma['exporter_tls_cert_path'] = "/path/to/certificate.pem" puma['exporter_tls_key_path'] = "/path/to/private-key.pem"
-
파일을 저장하고 변경 사항이 적용되도록 GitLab을 재구성하세요.
TLS가 활성화되면 위에서 설명한 것과 동일한 port
및 address
가 사용됩니다.
메트릭 서버는 동시에 HTTP와 HTTPS를 제공할 수 없습니다.
문제 해결
도커 컨테이너 공간이 부족함
도커에서 GitLab을 실행할 때, 컨테이너의 공간이 부족해질 수 있습니다. 이는 웹 익스포터 등 공간 사용량을 증가시키는 특정 기능을 활성화하는 경우에 발생할 수 있습니다.
이 문제를 해결하려면 shm-size를 업데이트하세요.