프로메테우스 설정
Offering: Self-managed
원격 읽기/쓰기
프로메테우스는 원격 서비스에 대한 읽기 및 쓰기를 지원합니다.
원격 읽기 또는 쓰기 서비스를 구성하려면 gitlab.rb
에 다음을 포함할 수 있습니다.
prometheus['remote_write'] = [
{
url: 'https://some-remote-write-service.example.com',
basic_auth: {
password: 'remote write secret password'
}
}
]
prometheus['remote_read'] = [
{
url: 'https://some-remote-write-service.example.com'
}
]
사용 가능한 옵션에 대한 추가 문서는 remote write 및 remote read 섹션의 공식 문서를 참조하세요.
규칙 파일
리눅스 패키지 설치에는 /var/opt/gitlab/prometheus/rules/
에 저장된 일부 기본 규칙 파일이 포함되어 있습니다.
기본 규칙을 덮어쓰려면 gitlab.rb
에서 기본 목록을 변경할 수 있습니다.
규칙 없음:
prometheus['rules_files'] = []
사용자 지정 목록:
prometheus['rules_files'] = ['/path/to/rules/*.rules', '/path/to/single/file.rules']
외부 레이블
외부 레이블을 설정하려면:
prometheus['external_labels'] = {
'region' => 'us-west-2',
'source' => 'omnibus',
}
기본적으로 외부 레이블은 설정되지 않습니다.
node_exporter
node_exporter는 시스템 수준의 메트릭을 제공합니다.
추가 메트릭 수집기는 기본적으로 활성화되어 있습니다. 예를 들어, mountstats
는 NFS 마운트에 대한 메트릭을 수집하는 데 사용됩니다.
mountstats
수집기를 비활성화하려면 다음 설정으로 gitlab.rb
를 조정하고 gitlab-ctl reconfigure
를 실행하세요:
node_exporter['flags'] = {
'collector.mountstats' => false,
}
사용 가능한 수집기에 대한 자세한 정보는 업스트림 문서를 참조하세요.
Alertmanager 옵션
Alertmanager를 위한 전역 옵션을 설정할 수 있습니다.
예를 들어, 다음 gitlab.rb
구성은 Alertmanager가 SMTP 서버에 자신을 식별하는 데 사용하는 호스트 이름을 덮어씁니다:
alertmanager['global'] = {
'smtp_hello' => 'example.org'
}
추가 수신자 및 경로
이 예에서는 VictorOps를 위한 새 수신자를 구현합니다.
-
/etc/gitlab/gitlab.rb
를 편집하여 새 수신자를 추가하고 경로를 정의합니다:alertmanager['receivers'] = [ { 'name' => 'victorOps-receiver', 'victorops_configs' => [ { 'routing_key' => 'Sample_route', 'api_key' => '558e7ebc-XXXX-XXXX-XXXX-XXXXXXXXXXXX', 'entity_display_name' => '{{ .CommonAnnotations.summary }}', 'message_type' => '{{ .CommonLabels.severity }}', 'state_message' => 'Alert: {{ .CommonLabels.alertname }}. Summary:{{ .CommonAnnotations.summary }}. RawData: {{ .CommonLabels }}', 'http_config' => { proxy_url: 'http://internet.proxy.com:3128' } } #, { Next receiver } ] } ] alertmanager['routes'] = [ { 'receiver' => 'victorOps-receiver', 'group_wait' => '30s', 'group_interval' => '5m', 'repeat_interval' => '3h', 'matchers' => [ 'severity = high' ] } #, { Next route } ]
-
GitLab을 재구성하세요:
sudo gitlab-ctl reconfigure
이제 Alertmanager는 severity = high
경고를 victorops-receiver
로 라우팅합니다.
Alertmanager에 대한 VictorOps 옵션에 대해 더 알아보려면 VictorOps 문서를 참조하세요.