Prometheus 설정
원격 읽기/쓰기
Prometheus는 원격 서비스에 대한 읽기 및 쓰기를 지원합니다.
원격 읽기 또는 쓰기 서비스를 구성하려면 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'
}
]
사용 가능한 옵션에 대한 자세한 설명은 공식 문서의 원격 쓰기 및 원격 읽기 섹션을 참조하십시오.
규칙 파일
Prometheus는 녹화 및 알림 규칙을 지원합니다.
Linux 패키지 설치에는 /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' } } #, 다음 수신기 } ] } ] alertmanager['routes'] = [ { 'receiver' => 'victorOps-receiver', 'group_wait' => '30s', 'group_interval' => '5m', 'repeat_interval' => '3h', 'matchers' => [ 'severity = high' ] } #, 다음 경로 } ]
-
GitLab을 다시 구성하십시오.
sudo gitlab-ctl reconfigure
Alertmanager는 이제 severity = high
경보를 victorops-receiver
로 라우팅합니다.
Alertmanager에서 VictorOps 옵션에 대해 자세히 알아보세요. VictorOps 문서를 참조하십시오.