Руководство по системному администрированию#
Сценарии администрирования#
Все сценарии администрирования, описанные в данном разделе, выполняются пользователем с ролью Admin. Логин и пароль для первоначального входа предоставляется при установке компонента.
Интерфейс области администрирования (Admin area) выглядит следующим образом:

Создание пользователя#
Перейдите в раздел Admin area через меню приложения.
Перейдите в раздел Users и нажмите кнопку New user:

На странице создания нового пользователя заполните поля Name, Username и Email и проставьте настройки в блоке Access:

Поле 1: укажите 0.
Поле 2: снимите галочку в чекбоксе Can create group.
Поле 3: выберите Regular.
Поле 4: поставьте галочку в чекбоксе External.
Все остальные поля оставьте без изменений и создайте пользователя.
В разделе Identity пользователя создайте новый identity:

В поле Provider выберите Openid Connect (openid_connect) и укажите идентификатор пользователя из Keycloak в поле Identifier.
Сохраните настройки.
После создания пользователя его необходимо добавить в нужную группу или проект с указанием роли пользователя.
Подробная ролевая модель описана в разделе Авторизация Руководства по безопасности.
Обзор всего instance#
Отчеты по состоянию instance: общая статистика по количеству проектов, групп, компонентов, запущенных runners, активных features.
Проекты: список всех проектов с возможностью удалить (кнопка Delete), редактировать (кнопка Edit) или создать новый (кнопка New Project).
Пользователи: список всех пользователей instance с возможностью блокировать (кнопка Block), удалять (кнопка Delete User), удалять со всеми действиями (кнопка Delete with contributions), а также редактировать параметры пользователя (доступны для редактирования имя, почта, пароль, уровень доступа, ссылки на социальные сети). Также по нажатию на кнопку New user открывается форма создания нового пользователя.
Группы: список всех существующих групп с возможностью удалять (кнопка Delete), редактировать (кнопка Edit) или создавать новую группу с помощью кнопки New group.
Темы для обсуждений: можно создавать ветку для обсуждения и редактировать или удалять существующие темы.
Jobs: список всех jobs в приложении с возможностью перезапускать job в статусе Failed (статус Неудачно).
Runners: список runners с возможностью остановить, удалить или отредактировать их.
Информация о существующих Gitaly серверах: список, содержащий информацию о типе хранения, адресе расположения, версии сервера, версии git и состоянии.
Управление задачами#
Статусы: возможность создания новых, редактирования и удаления существующих статусов.
Управление workflow: можно создавать новые workflow (кнопка Create workflow), копировать, редактировать и удалять существующие.
Группы и проекты: списки существующих групп и проектов.
Аналитика#
DevOps отчет: отображает метрики использования ресурсов за последние 30 дней.
Тренды использования: статистика, отображающая следующие показатели:
Суммарное количество пользователей.
Суммарное количество проектов и групп.
Статистику по pipelines: суммарное количество, успешные, неуспешные, отменённые и пропущенные.
Суммарное количество задач и запросов на слияние.
Мониторинг#
Информация о системе: количество ядер, использование памяти.
Информация о фоновых миграциях, их состоянии выполнения и финальном статусе.
Фоновые jobs: отображает графики работы фоновых jobs.
Проверка на ошибки: отображает статус автопроверки ошибок.
Информация о профайлах запросов.
Рассылка информационного сообщения#
Отправка всем пользователям приложения информационного сообщения со следующими возможностями:
Заполнить контент сообщения.
Выбрать тип сообщения (баннер или оповещение).
Выбрать цвет фона.
Предоставить пользователю возможность закрыть это сообщение.
Указать конкретный путь (проект, группа, весь instance).
Дата начала трансляции сообщения.
Дата завершения трансляции сообщения.
Системные хуки#
Просмотр списка существующих веб-хуков и возможность удалять их, редактировать и производить следующую настройку:
Указать ссылку целевой системы.
Указать токен доступа.
Выбрать триггер, по срабатыванию которого будут отсылаться данные:
События обновления репозитория.
Push-события: любые слияния веток вызывают отправку во внешнюю систему.
Push в репозиторий нового тега.
События запросов слияния: их создание, обновление или слияние.
Включить/выключить SSL верификацию.
Приложения#
Просмотр списка подключаемых приложений и возможность удалять или редактировать существующие, а также добавлять новые.
Отчет о злоупотреблениях#
Отчет содержит список сообщений о злоупотреблениях и отображает следующую информацию:
Логин пользователя, на кого оставлена жалоба.
Логин пользователя, который оставил жалобу.
Сопроводительное сообщение.
Список действий:
Удалить жалобу и пользователя.
Заблокировать пользователя.
Удалить жалобу.
Kubernetes#
Возможность отслеживания состояния кластеров Kubernetes.
Ключи развертывания#
Просмотр списка созданных ключей и возможность создать новый (необходимо указать название и сгенерировать публичный ключ развертывания).
Метки#
Управление метками instance со следующими возможностями:
Удалить существующую.
Редактировать существующую.
Создать новую метку:
Необходимо заполнить Название.
Краткое описание метки.
Выбрать цвет метки.
Настройки#
Общие:
Настройка видимости и доступов.
Управление лимитами.
Управление размерами diff-файлов.
Настройка правил создания новых аккаунтов пользователями.
Настройка правил входа в систему.
Добавление правила использования и политик приватности.
Настройка возможности удаленной авторизации из внешних систем.
Указание максимального количество сессий для веб-терминала.
Включение/выключение "живого" ревью в веб-редакторе.
Подключение Gitpod.
Подключение Kroki.
Подключение сервиса Mailgun.
Подключение сервиса PlantUML.
Включение/выключение внешних запросов.
Подключение сервиса Snowpow.
Подключение Amazon EKS.
Включение/выключение FLoC.
Список интеграций, с возможностью деактивировать их.
Репозиторий:
Установка стандартного название ветки.
Включение/выключение зеркалирования репозитория.
Настройка хранения репозитория:
Включение/выключение хэширования путей.
Указание количества nodes для новых репозиториев.
Обслуживание репозитория:
Включение/выключение автоматических проверок состояния репозитория.
Включение/выключение автоматического обработчика.
Подключение внешнего хранилища репозитория.
Настройка CI/CD.
Настройка анти-бот и анти-спам защиты.
Настройка обмена метриками:
Prometheus.
Grafana.
Разрешить/запретить видеть метрики пользователям без прав администратора.
Активация/деактивация самомониторинга приложения.
Включение/выключение автопроверки версии и проверки сервиса.
Настройка сети.
Настройка внешнего вида системы (логотип для шапки приложения, иконка вкладки браузера, контент для шапки и подвала приложения, контент для страницы логирования, новых проектов и страниц пользователей).
Настройка предпочтений:
Настройка почтовых уведомлений:
Включать или нет автора в уведомление.
Включить возможность разбивать сообщение на несколько писем.
Имя домена для приватных рассылок.
Включить оповещение о деактивации пользователей.
Настройка начальной страницы и справки: добавление ссылок на документацию.
Подключение документации в виде Pages.
Настройка частоты обновления UI.
Установка timeout для Gitaly.
Настройка локализации.
Настройка параметров jobs Sidekiq.
События системного журнала#
Для просмотра лога системных событий необходимо открыть файл /home/git/gitlab/log/application_json.log.
Доступные уровни логирования:
0 DEBUG
1 INFO
2 WARN
3 ERROR
4 FATAL
5 UNKNOWN
В данном файле содержится информация о системных событиях в формате json.
Переопределить уровень логирования можно с помощью GITLAB_LOG_LEVEL переменной среды. Допустимыми значениями являются 0-5 или название уровня логирования.
Пример:
GITLAB_LOG_LEVEL=info
Пример события уровня INFO:
{
"severity": "INFO",
"time": "2018-10-17T17:38:22.523Z",
"author_id": 3,
"entity_id": 2,
"entity_type": "Project",
"change": "visibility",
"from": "Private",
"to": "Public",
"author_name": "John Doe4",
"target_id": 2,
"target_type": "Project",
"target_details": "namespace2/project2"
}
Пример события уровня DEBUG:
{
"severity":"DEBUG",
"time":"2022-12-13T12:11:41.026Z",
"correlation_id":null,
"message":"ActiveRecord connection established"
}
Пример события уровня WARN:
{
"severity":"WARN",
"time":"2022-12-13T06:10:28.757Z",
"correlation_id":null,
"message":"Gitlab::Metrics::Samplers::RubySampler: uninitialized constant Gitlab::Metrics::Samplers::RubySampler::System"
}
Пример события уровня ERROR:
{
"severity":"ERROR",
"time":"2022-12-13T14:54:29.889Z",
"correlation_id":"bf1b14ac1b289a83e3508e93f50e4db0",
"message":"Cannot obtain an exclusive lease for namespace:namespaces_root_statistics:55. There must be another instance already in execution."
}
События мониторинга#
Не порождаются метрики мониторинга.
Часто встречающиеся проблемы и пути их устранения (FAQ)#
Типовые проблемы в текущей версии не выявлены.
В случае сбоев диагностику следует начинать со следующих проверок:
Проверка наличия стабильного соединения по сети.
Проверка корректности вводимых логина и пароля (в случае неудачи авторизации).