スケーリングと高可用性のための監視ノードの設定

GitLab 12.0から導入されました

GitLab を監視する Prometheus ノードを設定することができます。

Omnibus GitLabを使ったスタンドアロン監視ノード

Omnibus GitLabパッケージを使用すると、Prometheusと Grafanaを実行するスタンドアロンのモニタリングノードを設定できます。 モニタリングノードは高可用性ではありません。 GitLabのスケーリングと高可用性オプションの概要については、スケーリングと高可用性を参照してください。

以下の手順は、OmnibusでPrometheusとGrafanaを実行するMonitoringノードを構成するために必要な最小限の手順です:

  1. MonitoringノードにSSH接続します。
  2. GitLabダウンロードページから、ステップ1と2を使用して必要なOmnibus GitLabパッケージをダウンロード/インストールします。
    • ダウンロードページの他のステップは完了しないでください。
  3. 次のステップのために、ConsulサーバーノードのIPアドレスまたはDNSレコードであるCONSUL_SERVER_NODESを収集しておいてください。Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z

  4. /etc/gitlab/gitlab.rb を編集し、内部を追加します:

    external_url 'http://gitlab.example.com'
    
    # Enable Prometheus
    prometheus['enable'] = true
    prometheus['listen_address'] = '0.0.0.0:9090'
    prometheus['monitor_kubernetes'] = false
    
    # Enable Login form
    grafana['disable_login_form'] = false
    
    # Enable Grafana
    grafana['enable'] = true
    grafana['admin_password'] = 'toomanysecrets'
    
    # Enable service discovery for Prometheus
    consul['enable'] = true
    consul['monitoring_service_discovery'] =  true
    
    # Replace placeholders
    # Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z
    # with the addresses of the Consul server nodes
    consul['configuration'] = {
       retry_join: %w(Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z),
    }
    
    # Disable all other services
    gitlab_rails['auto_migrate'] = false
    alertmanager['enable'] = false
    gitaly['enable'] = false
    gitlab_exporter['enable'] = false
    gitlab_workhorse['enable'] = false
    nginx['enable'] = true
    postgres_exporter['enable'] = false
    postgresql['enable'] = false
    redis['enable'] = false
    redis_exporter['enable'] = false
    sidekiq['enable'] = false
    puma['enable'] = false
    node_exporter['enable'] = false
    gitlab_exporter['enable'] = false
    
  5. sudo gitlab-ctl reconfigure を実行して設定をコンパイルします。

次のステップは、他のすべてのノードに監視ノードの場所を伝えることです:

  1. /etc/gitlab/gitlab.rbを編集し、次の行を追加するか、または次の行を見つけてコメントを外します:

    gitlab_rails['prometheus_address'] = '10.0.0.1:9090'
    

    10.0.0.1:9090 は Prometheus ノードの IP アドレスとポートです。

  2. ファイルを保存し、変更を有効にするために GitLab を再設定します。

サービスディスカバリーへの移行

サービスディスカバリーを使用したモニタリングがconsul['monitoring_service_discovery'] = trueで有効になったら、prometheus['scrape_configs']/etc/gitlab/gitlab.rbに設定されていないことを確認してください。consul['monitoring_service_discovery'] = trueprometheus['scrape_configs'] の両方を/etc/gitlab/gitlab.rbに設定すると、エラーが発生します。