プロメテウスの設定

リモート読み書き

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 はシステム・レベルのメトリクスを提供します。

追加のメトリクス・コレクターはデフォルトで有効になっています。例えば、mountstats は、NFSマウントに関するメトリクスを収集するために使用されます。

mountstats コレクターを無効にするには、gitlab.rb を以下の設定で調整し、gitlab-ctl reconfigureを実行します:

node_exporter['flags'] = {
  'collector.mountstats' => false,
}

使用可能なコレクターの詳細については、アップストリームのドキュメントを参照してください。

アラートマネージャーのオプション

アラートマネージャーの グローバルオプションを設定できます。

例えば、以下のgitlab.rb 設定は、Alertmanager が SMTP サーバーに自身を識別するために使用するホスト名を上書きします:

alertmanager['global'] = {
  'smtp_hello' => 'example.org'
}

追加の受信機とルート

この例では、VictorOps用の新しいレシーバーを実装します。

  1. /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 }
    ]
    
  2. GitLab を再設定します:

    sudo gitlab-ctl reconfigure
    

Alertmanager はseverity = high のアラートをvictorops-receiverにルーティングするようになりました。

AlertmanagerのVictorOpsオプションの詳細については、VictorOpsドキュメントを参照してください。