Prometheus設定
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
リモート読み取り/書き込み
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'
}
]利用可能なオプションの詳細については、公式ドキュメントのremote writeセクションとremote readセクションを参照してください。
ルールファイル
Prometheusでは、recordingとalertingのルールを使用できます。
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設定は、SMTPサーバー自体を識別するためにAlertmanagerが使用するホスト名をオーバーライドします:
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のドキュメントを参照してください。