Merge branch '63588-follow-up-from-documentation-for-prometheus-service-discovery' into 'master'
Add note to collect CONSUL_SERVER_NODES in HA docs Closes #63588 See merge request gitlab-org/gitlab-ce!29945
This commit is contained in:
commit
54247af5a9
|
@ -2,13 +2,13 @@
|
|||
|
||||
Gitaly does not yet support full high availability. However, Gitaly is quite
|
||||
stable and is in use on GitLab.com. Scaled and highly available GitLab environments
|
||||
should consider using Gitaly on a separate node.
|
||||
should consider using Gitaly on a separate node.
|
||||
|
||||
See the [Gitaly HA Epic](https://gitlab.com/groups/gitlab-org/-/epics/289) to
|
||||
track plans and progress toward high availability support.
|
||||
See the [Gitaly HA Epic](https://gitlab.com/groups/gitlab-org/-/epics/289) to
|
||||
track plans and progress toward high availability support.
|
||||
|
||||
This document is relevant for [Scaled Architecture](README.md#scalable-architecture-examples)
|
||||
environments and [High Availability Architecture](README.md#high-availability-architecture-examples).
|
||||
environments and [High Availability Architecture](README.md#high-availability-architecture-examples).
|
||||
|
||||
## Running Gitaly on its own server
|
||||
|
||||
|
@ -24,23 +24,25 @@ Continue configuration of other components by going back to:
|
|||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/3786) in GitLab 12.0.
|
||||
|
||||
1. Create/edit `/etc/gitlab/gitlab.rb` and add the following configuration:
|
||||
1. Make sure to collect [`CONSUL_SERVER_NODES`](database.md#consul-information), which are the IP addresses or DNS records of the Consul server nodes, for the next step. Note they are presented as `Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z`
|
||||
|
||||
```ruby
|
||||
# Enable service discovery for Prometheus
|
||||
consul['enable'] = true
|
||||
consul['monitoring_service_discovery'] = true
|
||||
1. Create/edit `/etc/gitlab/gitlab.rb` and add the following configuration:
|
||||
|
||||
# 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),
|
||||
}
|
||||
```ruby
|
||||
# Enable service discovery for Prometheus
|
||||
consul['enable'] = true
|
||||
consul['monitoring_service_discovery'] = true
|
||||
|
||||
# Set the network addresses that the exporters will listen on
|
||||
node_exporter['listen_address'] = '0.0.0.0:9100'
|
||||
gitaly['prometheus_listen_addr'] = "0.0.0.0:9236"
|
||||
```
|
||||
# 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),
|
||||
}
|
||||
|
||||
1. Run `sudo gitlab-ctl reconfigure` to compile the configuration.
|
||||
# Set the network addresses that the exporters will listen on
|
||||
node_exporter['listen_address'] = '0.0.0.0:9100'
|
||||
gitaly['prometheus_listen_addr'] = "0.0.0.0:9236"
|
||||
```
|
||||
|
||||
1. Run `sudo gitlab-ctl reconfigure` to compile the configuration.
|
||||
|
|
|
@ -138,6 +138,8 @@ need some extra configuration.
|
|||
|
||||
If you enable Monitoring, it must be enabled on **all** GitLab servers.
|
||||
|
||||
1. Make sure to collect [`CONSUL_SERVER_NODES`](database.md#consul-information), which are the IP addresses or DNS records of the Consul server nodes, for the next step. Note they are presented as `Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z`
|
||||
|
||||
1. Create/edit `/etc/gitlab/gitlab.rb` and add the following configuration:
|
||||
|
||||
```ruby
|
||||
|
|
|
@ -16,6 +16,8 @@ Omnibus:
|
|||
package you want using **steps 1 and 2** from the GitLab downloads page.
|
||||
- Do not complete any other steps on the download page.
|
||||
|
||||
1. Make sure to collect [`CONSUL_SERVER_NODES`](database.md#consul-information), which are the IP addresses or DNS records of the Consul server nodes, for the next step. Note they are presented as `Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z`
|
||||
|
||||
1. Edit `/etc/gitlab/gitlab.rb` and add the contents:
|
||||
|
||||
```ruby
|
||||
|
|
|
@ -22,10 +22,10 @@ environments including [Basic Scaling](README.md#basic-scaling) and
|
|||
|
||||
### Provide your own Redis instance **[CORE ONLY]**
|
||||
|
||||
If you want to use your own deployed Redis instance(s),
|
||||
see [Provide your own Redis instance](#provide-your-own-redis-instance-core-only)
|
||||
for more details. However, you can use the GitLab Omnibus package to easily
|
||||
deploy the bundled Redis.
|
||||
If you want to use your own deployed Redis instance(s),
|
||||
see [Provide your own Redis instance](#provide-your-own-redis-instance-core-only)
|
||||
for more details. However, you can use the GitLab Omnibus package to easily
|
||||
deploy the bundled Redis.
|
||||
|
||||
### Standalone Redis using GitLab Omnibus **[CORE ONLY]**
|
||||
|
||||
|
@ -62,11 +62,11 @@ Omnibus:
|
|||
pgbouncer_exporter['enable'] = false
|
||||
gitlab_monitor['enable'] = false
|
||||
gitaly['enable'] = false
|
||||
|
||||
|
||||
redis['bind'] = '0.0.0.0'
|
||||
redis['port'] = '6379'
|
||||
redis['password'] = 'SECRET_PASSWORD_HERE'
|
||||
|
||||
|
||||
gitlab_rails['auto_migrate'] = false
|
||||
```
|
||||
|
||||
|
@ -74,7 +74,7 @@ Omnibus:
|
|||
1. Note the Redis node's IP address or hostname, port, and
|
||||
Redis password. These will be necessary when configuring the GitLab
|
||||
application servers later.
|
||||
1. [Enable Monitoring](#enable-monitoring)
|
||||
1. [Enable Monitoring](#enable-monitoring)
|
||||
|
||||
Advanced configuration options are supported and can be added if
|
||||
needed.
|
||||
|
@ -91,10 +91,10 @@ environments including [Horizontal](README.md#horizontal),
|
|||
|
||||
### Provide your own Redis instance **[CORE ONLY]**
|
||||
|
||||
If you want to use your own deployed Redis instance(s),
|
||||
see [Provide your own Redis instance](#provide-your-own-redis-instance-core-only)
|
||||
for more details. However, you can use the GitLab Omnibus package to easily
|
||||
deploy the bundled Redis.
|
||||
If you want to use your own deployed Redis instance(s),
|
||||
see [Provide your own Redis instance](#provide-your-own-redis-instance-core-only)
|
||||
for more details. However, you can use the GitLab Omnibus package to easily
|
||||
deploy the bundled Redis.
|
||||
|
||||
### High Availability with GitLab Omnibus **[PREMIUM ONLY]**
|
||||
|
||||
|
@ -368,7 +368,7 @@ The prerequisites for a HA Redis setup are the following:
|
|||
```ruby
|
||||
# Specify server role as 'redis_master_role'
|
||||
roles ['redis_master_role']
|
||||
|
||||
|
||||
# IP address pointing to a local IP that the other machines can reach to.
|
||||
# You can also set bind to '0.0.0.0' which listen in all interfaces.
|
||||
# If you really need to bind to an external accessible IP, make
|
||||
|
@ -382,7 +382,7 @@ The prerequisites for a HA Redis setup are the following:
|
|||
# Set up password authentication for Redis (use the same password in all nodes).
|
||||
redis['password'] = 'redis-password-goes-here'
|
||||
```
|
||||
|
||||
|
||||
|
||||
1. Only the primary GitLab application server should handle migrations. To
|
||||
prevent database migrations from running on upgrade, add the following
|
||||
|
@ -394,8 +394,8 @@ The prerequisites for a HA Redis setup are the following:
|
|||
|
||||
1. [Reconfigure Omnibus GitLab][reconfigure] for the changes to take effect.
|
||||
|
||||
> Note: You can specify multiple roles like sentinel and redis as:
|
||||
> roles ['redis_sentinel_role', 'redis_master_role']. Read more about high
|
||||
> Note: You can specify multiple roles like sentinel and redis as:
|
||||
> roles ['redis_sentinel_role', 'redis_master_role']. Read more about high
|
||||
> availability roles at https://docs.gitlab.com/omnibus/roles/
|
||||
|
||||
### Step 2. Configuring the slave Redis instances
|
||||
|
@ -412,7 +412,7 @@ The prerequisites for a HA Redis setup are the following:
|
|||
```ruby
|
||||
# Specify server role as 'redis_slave_role'
|
||||
roles ['redis_slave_role']
|
||||
|
||||
|
||||
# IP address pointing to a local IP that the other machines can reach to.
|
||||
# You can also set bind to '0.0.0.0' which listen in all interfaces.
|
||||
# If you really need to bind to an external accessible IP, make
|
||||
|
@ -443,8 +443,8 @@ The prerequisites for a HA Redis setup are the following:
|
|||
1. [Reconfigure Omnibus GitLab][reconfigure] for the changes to take effect.
|
||||
1. Go through the steps again for all the other slave nodes.
|
||||
|
||||
> Note: You can specify multiple roles like sentinel and redis as:
|
||||
> roles ['redis_sentinel_role', 'redis_slave_role']. Read more about high
|
||||
> Note: You can specify multiple roles like sentinel and redis as:
|
||||
> roles ['redis_sentinel_role', 'redis_slave_role']. Read more about high
|
||||
> availability roles at https://docs.gitlab.com/omnibus/roles/
|
||||
|
||||
---
|
||||
|
@ -754,28 +754,30 @@ gitlab_rails['redis_sentinels'] = [
|
|||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/3786) in GitLab 12.0.
|
||||
|
||||
If you enable Monitoring, it must be enabled on **all** Redis servers.
|
||||
If you enable Monitoring, it must be enabled on **all** Redis servers.
|
||||
|
||||
1. Create/edit `/etc/gitlab/gitlab.rb` and add the following configuration:
|
||||
1. Make sure to collect [`CONSUL_SERVER_NODES`](database.md#consul-information), which are the IP addresses or DNS records of the Consul server nodes, for the next step. Note they are presented as `Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z`
|
||||
|
||||
```ruby
|
||||
# Enable service discovery for Prometheus
|
||||
consul['enable'] = true
|
||||
consul['monitoring_service_discovery'] = true
|
||||
1. Create/edit `/etc/gitlab/gitlab.rb` and add the following configuration:
|
||||
|
||||
# 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),
|
||||
}
|
||||
```ruby
|
||||
# Enable service discovery for Prometheus
|
||||
consul['enable'] = true
|
||||
consul['monitoring_service_discovery'] = true
|
||||
|
||||
# Set the network addresses that the exporters will listen on
|
||||
node_exporter['listen_address'] = '0.0.0.0:9100'
|
||||
redis_exporter['listen_address'] = '0.0.0.0:9121'
|
||||
```
|
||||
# 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),
|
||||
}
|
||||
|
||||
1. Run `sudo gitlab-ctl reconfigure` to compile the configuration.
|
||||
# Set the network addresses that the exporters will listen on
|
||||
node_exporter['listen_address'] = '0.0.0.0:9100'
|
||||
redis_exporter['listen_address'] = '0.0.0.0:9121'
|
||||
```
|
||||
|
||||
1. Run `sudo gitlab-ctl reconfigure` to compile the configuration.
|
||||
|
||||
## Advanced configuration
|
||||
|
||||
|
|
Loading…
Reference in New Issue