スケーリングと高可用性のための監視ノードの設定
GitLab 12.0から導入されました。
GitLab を監視する Prometheus ノードを設定することができます。
Omnibus GitLabを使ったスタンドアロン監視ノード
Omnibus GitLabパッケージを使用すると、Prometheusと Grafanaを実行するスタンドアロンのモニタリングノードを設定できます。 モニタリングノードは高可用性ではありません。 GitLabのスケーリングと高可用性オプションの概要については、スケーリングと高可用性を参照してください。
以下の手順は、OmnibusでPrometheusとGrafanaを実行するMonitoringノードを構成するために必要な最小限の手順です:
- MonitoringノードにSSH接続します。
- GitLabダウンロードページから、ステップ1と2を使用して必要なOmnibus GitLabパッケージをダウンロード/インストールします。
- ダウンロードページの他のステップは完了しないでください。
-
次のステップのために、ConsulサーバーノードのIPアドレスまたはDNSレコードである
CONSUL_SERVER_NODES
を収集しておいてください。Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z
-
/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
-
sudo gitlab-ctl reconfigure
を実行して設定をコンパイルします。
次のステップは、他のすべてのノードに監視ノードの場所を伝えることです:
-
/etc/gitlab/gitlab.rb
を編集し、次の行を追加するか、または次の行を見つけてコメントを外します:gitlab_rails['prometheus_address'] = '10.0.0.1:9090'
10.0.0.1:9090
は Prometheus ノードの IP アドレスとポートです。 -
ファイルを保存し、変更を有効にするために GitLab を再設定します。
サービスディスカバリーへの移行
サービスディスカバリーを使用したモニタリングがconsul['monitoring_service_discovery'] = true
で有効になったら、prometheus['scrape_configs']
が/etc/gitlab/gitlab.rb
に設定されていないことを確認してください。consul['monitoring_service_discovery'] = true
とprometheus['scrape_configs']
の両方を/etc/gitlab/gitlab.rb
に設定すると、エラーが発生します。