Мониторинг инстанса Deckhouse Code складывается из лимитов, заданных в веб-интерфейсе, и встроенного Prometheus каждого типа установки.
Управление ресурсами
Лимиты и настройки производительности инстанса задаются администратором в веб-интерфейсе:
Настройте лимиты на репозитории и артефакты:
- Перейдите в «Admin» → «Настройки» → «Аккаунт и ограничения».
Настройте производительность системы:
- Перейдите в «Admin» → «Настройки» → «Сеть».
Встроенный мониторинг
У каждого типа установки свой источник метрик или оповещений; вкладка называет тип.
- Пакет для ОС Linux
- Omnibus Docker
- Helm-чарт
- Модуль Deckhouse Kubernetes Platform
Prometheus и экспортёры (node, postgres, redis и другие) устанавливаются вместе с пакетом и слушают только адрес 127.0.0.1, наружу порты не открыты. Проверьте их состояние:
sudo gitlab-ctl status | grep -E "prometheus|exporter"
# Готовность встроенного Prometheus.
curl -s http://127.0.0.1:9090/-/readyЧтобы метрики забирала внешняя система мониторинга, задайте адрес прослушивания Prometheus в файле /etc/gitlab/gitlab.rb:
prometheus['listen_address'] = '0.0.0.0:9090'Примените настройку:
sudo gitlab-ctl reconfigureОграничьте доступ к порту 9090 на файрволе адресами системы мониторинга.
- firewalld (РЕД ОС)
- ufw (Ubuntu)
sudo firewall-cmd --permanent --new-zone=monitoring
sudo firewall-cmd --permanent --zone=monitoring --add-source=<MONITORING_IP>/32
sudo firewall-cmd --permanent --zone=monitoring --add-port=9090/tcp
# Зона принимает весь трафик с этого адреса, поэтому открываются и базовые сервисы.
sudo firewall-cmd --permanent --zone=monitoring --add-service={ssh,http,https}
sudo firewall-cmd --reloadsudo ufw allow from <MONITORING_IP> to any port 9090 proto tcpВ контейнере работают тот же Prometheus и те же экспортёры, кроме node_exporter: образ его отключает. Образ объявляет только порты 80, 443 и 22, поэтому порт Prometheus нужно опубликовать при создании контейнера: добавьте -p 9090:9090 в команду docker run, у запущенного контейнера список опубликованных портов не меняется.
Задайте prometheus['listen_address'] в файле /etc/gitlab/gitlab.rb в томе с конфигурацией; значение, его смысл и ограничение доступа к порту описаны на вкладке «Пакет для ОС Linux». Настройка применится при следующем старте контейнера: команда gitlab-ctl reconfigure выполняется при каждом запуске.
Helm-чарт создаёт объект ServiceMonitor (кастомный ресурс Prometheus Operator) для каждого компонента, который отдаёт метрики Prometheus, если metrics.serviceMonitor.enabled равно true. metrics.serviceMonitor.labels задаёт лейблы, по которым его находит Prometheus.
metrics:
serviceMonitor:
enabled: true
labels:
release: <PROMETHEUS_RELEASE_LABEL>Экземпляр Prometheus, настроенный на отслеживание объектов ServiceMonitor с такими лейблами — в пространстве имён code или во всём кластере, в зависимости от его собственной настройки, — обнаруживает их и собирает метрики без дополнительной настройки со стороны релиза.