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

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

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

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

После создания пользователя его необходимо добавить в нужную группу или проект с указанием роли пользователя.
Обзор всего 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 верификацию.
Приложения#
Просмотр списка подключаемых приложений и возможность удалять или редактировать существующие, а также добавлять новые.
Отчет о злоупотреблениях#
Отчет содержит список сообщений о злоупотреблениях и отображает следующую информацию:
Логин пользователя, на кого оставлена жалоба.
Логин пользователя, который оставил жалобу.
Сопроводительное сообщение.
Список действий:
Удалить жалобу и пользователя.
Заблокировать пользователя.
Удалить жалобу.
Ключи развертывания#
Просмотр списка созданных ключей и возможность создать новый (необходимо указать название и сгенерировать публичный ключ развертывания).
Метки#
Управление метками instance со следующими возможностями:
Удалить существующую.
Редактировать существующую.
Создать новую метку:
Необходимо заполнить Название.
Краткое описание метки.
Выбрать цвет метки.
Настройки#
Общие:
Настройка видимости и доступов.
Управление лимитами.
Управление размерами diff-файлов.
Настройка правил создания новых аккаунтов пользователями.
Настройка правил входа в систему.
Добавление правила использования и политик приватности.
Настройка возможности удаленной авторизации из внешних систем.
Указание максимального количество сессий для веб-терминала.
Включение/выключение "живого" ревью в веб-редакторе.
Подключение Gitpod.
Подключение Kroki.
Подключение сервиса Mailgun.
Подключение сервиса PlantUML.
Включение/выключение внешних запросов.
Подключение сервиса Snowpow.
Подключение Amazon EKS.
Включение/выключение FLoC.
Список интеграций, с возможностью деактивировать их.
Репозиторий:
Установка стандартного название ветки.
Включение/выключение зеркалирования репозитория.
Настройка хранения репозитория:
Включение/выключение хэширования путей.
Указание количества nodes для новых репозиториев.
Обслуживание репозитория:
Включение/выключение автоматических проверок состояния репозитория.
Включение/выключение автоматического обработчика.
Подключение внешнего хранилища репозитория.
Настройка CI/CD.
Настройка анти-бот и анти-спам защиты.
Настройка обмена метриками:
Prometheus.
Grafana.
Разрешить/запретить видеть метрики пользователям без прав администратора.
Активация/деактивация самомониторинга приложения.
Включение/выключение автопроверки версии и проверки сервиса.
Настройка сети.
Настройка внешнего вида системы (логотип для шапки приложения, иконка вкладки браузера, контент для шапки и подвала приложения, контент для страницы логирования, новых проектов и страниц пользователей).
Настройка предпочтений:
Настройка почтовых уведомлений:
Включать или нет автора в уведомление.
Включить возможность разбивать сообщение на несколько писем.
Имя домена для приватных рассылок.
Включить оповещение о деактивации пользователей.
Настройка начальной страницы и справки: добавление ссылок на документацию.
Подключение документации в виде Pages.
Настройка частоты обновления UI.
Установка timeout для Gitaly.
Настройка локализации.
Настройка параметров jobs Sidekiq.
События системного журнала#
Для просмотра лога системных событий необходимо открыть файл application_json.log, который располагается, в зависимости от способа установки:
/var/log/gitlab/gitlab-rails/application_json.log
/home/git/gitlab/log/application_json.log
Доступные уровни логирования:
0 DEBUG
1 INFO
2 WARN
3 ERROR
4 FATAL
5 UNKNOWN
В данном файле содержится информация о системных событиях в формате json.
Включение уровня логирования Debug не рекомендуется в промышленных инсталляциях.
Уровень логирования настраивается через переменную окружения GITLAB_LOG_LEVEL
Доступны 5 уровней логирования - DEBUG, INFO, WARN, ERROR, FATAL, UNKNOWN
При выборе уровня логирования DEBUG будут логироваться события уровня DEBUG, INFO, WARN, ERROR, FATAL, UNKNOWN … При выборе уровня логирования UNKNOWN будут логироваться события уровня UNKNOWN
Пример события уровня 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."
}
События мониторинга#
Metric |
Type |
Description |
|---|---|---|
gitlab_banzai_cached_render_real_duration_seconds |
Histogram |
Duration of rendering Markdown into HTML when cached output exists |
gitlab_banzai_cacheless_render_real_duration_seconds |
Histogram |
Duration of rendering Markdown into HTML when cached output does not exist |
gitlab_cache_misses_total |
Counter |
Cache read miss |
gitlab_cache_operation_duration_seconds |
Histogram |
Cache access time |
gitlab_cache_operations_total |
Counter |
Cache operations by controller or action |
gitlab_cache_read_multikey_count |
Histogram |
Count of keys in multi-key cache read operations |
gitlab_ci_pipeline_builder_scoped_variables_duration |
Histogram |
Time in seconds it takes to create the scoped variables for a CI/CD job |
gitlab_ci_pipeline_creation_duration_seconds |
Histogram |
Time in seconds it takes to create a CI/CD pipeline |
gitlab_ci_pipeline_size_builds |
Histogram |
Total number of builds within a pipeline grouped by a pipeline source |
gitlab_ci_runner_authentication_success_total |
Counter |
Total number of times that runner authentication has succeeded |
gitlab_ci_runner_authentication_failure_total |
Counter |
Total number of times that runner authentication has failed |
gitlab_ghost_user_migration_lag_seconds |
Gauge |
The waiting time in seconds of the oldest scheduled record for ghost user migration |
gitlab_ghost_user_migration_scheduled_records_total |
Gauge |
The total number of scheduled ghost user migrations |
job_waiter_started_total |
Counter |
Number of batches of jobs started where a web request is waiting for the jobs to complete |
job_waiter_timeouts_total |
Counter |
Number of batches of jobs that timed out where a web request is waiting for the jobs to complete |
gitlab_ci_active_jobs |
Histogram |
Count of active jobs when pipeline is created |
gitlab_database_transaction_seconds |
Histogram |
Time spent in database transactions, in seconds |
gitlab_method_call_duration_seconds |
Histogram |
Method calls real duration |
gitlab_page_out_of_bounds |
Counter |
Counter for the PageLimiter pagination limit being hit |
gitlab_rails_boot_time_seconds |
Gauge |
Time elapsed for Rails primary process to finish startup |
gitlab_rails_queue_duration_seconds |
Histogram |
Measures latency between GitLab Workhorse forwarding a request to Rails |
gitlab_sql_duration_seconds |
Histogram |
SQL execution time, excluding SCHEMAoperations and BEGIN / COMMIT |
gitlab_sql_ |
Histogram |
SQL execution time, excluding SCHEMAoperations and BEGIN / COMMIT, grouped by database roles (primary/replica) |
gitlab_ruby_threads_max_expected_threads |
Gauge |
Maximum number of threads expected to be running and performing application work |
gitlab_ruby_threads_running_threads |
Gauge |
Number of running Ruby threads by name |
gitlab_transaction_cache_ |
Counter |
Counter for total Rails cache calls (per key) |
gitlab_transaction_cache_ |
Counter |
Counter for total time (seconds) spent in Rails cache calls (per key) |
gitlab_transaction_cache_count_total |
Counter |
Counter for total Rails cache calls (aggregate) |
gitlab_transaction_cache_duration_total |
Counter |
Counter for total time (seconds) spent in Rails cache calls (aggregate) |
gitlab_transaction_cache_read_hit_count_total |
Counter |
Counter for cache hits for Rails cache calls |
gitlab_transaction_cache_read_miss_count_total |
Counter |
Counter for cache misses for Rails cache calls |
gitlab_transaction_duration_seconds |
Histogram |
Duration for successful requests (gitlab_transaction_*metrics) |
gitlab_transaction_event_build_found_total |
Counter |
Counter for build found for API /jobs/request |
gitlab_transaction_event_build_invalid_total |
Counter |
Counter for build invalid due to concurrency conflict for API /jobs/request |
gitlab_transaction_event_build_not_found_cached_total |
Counter |
Counter for cached response of build not found for API /jobs/request |
gitlab_transaction_event_build_not_found_total |
Counter |
Counter for build not found for API /jobs/request |
gitlab_transaction_event_change_default_branch_total |
Counter |
Counter when default branch is changed for any repository |
gitlab_transaction_event_create_repository_total |
Counter |
Counter when any repository is created |
gitlab_transaction_event_etag_caching_cache_hit_total |
Counter |
Counter for ETag cache hit. |
gitlab_transaction_event_etag_caching_header_missing_total |
Counter |
Counter for ETag cache miss - header missing |
gitlab_transaction_event_etag_caching_key_not_found_total |
Counter |
Counter for ETag cache miss - key not found |
gitlab_transaction_event_etag_caching_middleware_used_total |
Counter |
Counter for ETag middleware accessed |
gitlab_transaction_event_etag_caching_resource_changed_total |
Counter |
Counter for ETag cache miss - resource changed |
gitlab_transaction_event_fork_repository_total |
Counter |
Counter for repository forks (RepositoryForkWorker). Only incremented when source repository exists |
gitlab_transaction_event_import_repository_total |
Counter |
Counter for repository imports (RepositoryImportWorker) |
gitlab_transaction_event_patch_hard_limit_bytes_hit_total |
Counter |
Counter for diff patch size limit hits |
gitlab_transaction_event_push_branch_total |
Counter |
Counter for all branch pushes |
gitlab_transaction_event_rails_exception_total |
Counter |
Counter for number of rails exceptions |
gitlab_transaction_event_receive_email_total |
Counter |
Counter for received emails |
gitlab_transaction_event_remote_mirrors_failed_total |
Counter |
Counter for failed remote mirrors |
gitlab_transaction_event_remote_mirrors_finished_total |
Counter |
Counter for finished remote mirrors |
gitlab_transaction_event_remote_mirrors_running_total |
Counter |
Counter for running remote mirrors |
gitlab_transaction_event_remove_branch_total |
Counter |
Counter when a branch is removed for any repository |
gitlab_transaction_event_remove_repository_total |
Counter |
Counter when a repository is removed |
gitlab_transaction_event_remove_tag_total |
Counter |
Counter when a tag is remove for any repository |
gitlab_transaction_event_sidekiq_exception_total |
Counter |
Counter of Sidekiq exceptions |
gitlab_transaction_event_stuck_import_jobs_total |
Counter |
Count of stuck import jobs |
gitlab_transaction_event_update_build_total |
Counter |
Counter for update build for API /jobs/request/:id |
gitlab_transaction_new_redis_connections_total |
Counter |
Counter for new Redis connections |
gitlab_transaction_rails_queue_duration_total |
Counter |
Measures latency between GitLab Workhorse forwarding a request to Rails |
gitlab_transaction_view_duration_total |
Counter |
Duration for views |
gitlab_view_rendering_duration_seconds |
Histogram |
Duration for views (histogram) |
http_requests_total |
Counter |
Rack request count |
http_request_duration_seconds |
Histogram |
HTTP response time from rack middleware for successful requests |
gitlab_transaction_db_count_total |
Counter |
Counter for total number of SQL calls |
gitlab_transaction_db_ |
Counter |
Counter for total number of SQL calls, grouped by database roles (primary/replica) |
gitlab_transaction_db_write_count_total |
Counter |
Counter for total number of write SQL calls |
gitlab_transaction_db_cached_count_total |
Counter |
Counter for total number of cached SQL calls |
gitlab_transaction_db_ |
Counter |
Counter for total number of cached SQL calls, grouped by database roles (primary/replica) |
gitlab_transaction_db_ |
Counter |
Counter for total number of WAL (write ahead log location) queries, grouped by database roles (primary/replica) |
gitlab_transaction_db_ |
Counter |
Counter for total number of cached WAL (write ahead log location) queries, grouped by database roles (primary/replica) |
http_elasticsearch_requests_duration_seconds |
Histogram |
Elasticsearch requests duration during web transactions |
http_elasticsearch_requests_total |
Counter |
Elasticsearch requests count during web transactions |
pipelines_created_total |
Counter |
Counter of pipelines created |
rack_uncaught_errors_total |
Counter |
Rack connections handling uncaught errors count |
user_session_logins_total |
Counter |
Counter of how many users have logged in since GitLab was started or restarted |
upload_file_does_not_exist |
Counter |
Number of times an upload record could not find its file. |
failed_login_captcha_total |
Gauge |
Counter of failed CAPTCHA attempts during login |
successful_login_captcha_total |
Gauge |
Counter of successful CAPTCHA attempts during login |
auto_devops_pipelines_completed_total |
Counter |
Counter of completed Auto DevOps pipelines, labeled by status |
artifact_report_<report_type>_builds_completed_total |
Counter |
Counter of completed CI Builds with report-type artifacts, grouped by report type and labeled by status |
gitlab_metrics_dashboard_processing_time_ms |
Summary |
Metrics dashboard processing time in milliseconds |
action_cable_active_connections |
Gauge |
Number of ActionCable WS clients currently connected |
action_cable_broadcasts_total |
Counter |
The number of ActionCable broadcasts emitted |
action_cable_pool_min_size |
Gauge |
Minimum number of worker threads in ActionCable thread pool |
action_cable_pool_max_size |
Gauge |
Maximum number of worker threads in ActionCable thread pool |
action_cable_pool_current_size |
Gauge |
Current number of worker threads in ActionCable thread pool |
action_cable_pool_largest_size |
Gauge |
Largest number of worker threads observed so far in ActionCable thread pool |
action_cable_pool_pending_tasks |
Gauge |
Number of tasks waiting to be executed in ActionCable thread pool |
action_cable_pool_tasks_total |
Gauge |
Total number of tasks executed in ActionCable thread pool |
gitlab_ci_trace_operations_total |
Counter |
Total amount of different operations on a build trace |
gitlab_ci_trace_bytes_total |
Counter |
Total amount of build trace bytes transferred |
action_cable_single_client_transmissions_total |
Counter |
The number of ActionCable messages transmitted to any client in any channel |
action_cable_subscription_confirmations_total |
Counter |
The number of ActionCable subscriptions from clients confirmed |
action_cable_subscription_rejections_total |
Counter |
The number of ActionCable subscriptions from clients rejected |
action_cable_transmitted_bytes |
Histogram |
Message size, in bytes, transmitted over action cable |
gitlab_issuable_fast_count_by_state_total |
Counter |
Total number of row count operations on issue/merge request list pages |
gitlab_issuable_fast_count_by_state_failures_total |
Counter |
Number of soft-failed row count operations on issue/merge request list pages |
gitlab_ci_trace_finalize_duration_seconds |
Histogram |
Duration of build trace chunks migration to object storage |
gitlab_external_http_total |
Counter |
Total number of HTTP calls to external systems |
gitlab_external_http_duration_seconds |
Counter |
Duration in seconds spent on each HTTP call to external systems |
gitlab_external_http_exception_total |
Counter |
Total number of exceptions raised when making external HTTP calls |
ci_report_parser_duration_seconds |
Histogram |
Time to parse CI/CD report artifacts |
pipeline_graph_link_calculation_duration_seconds |
Histogram |
Total time spent calculating links, in seconds |
pipeline_graph_links_total |
Histogram |
Number of links per graph |
pipeline_graph_links_per_job_ratio |
Histogram |
Ratio of links to job per graph |
gitlab_ci_pipeline_security_orchestration_policy_processing_duration_seconds |
Histogram |
Time in seconds it takes to process Security Policies in CI/CD pipeline |
gitlab_spamcheck_request_duration_seconds |
Histogram |
The duration for requests between Rails and the anti-spam engine |
service_desk_thank_you_email |
Counter |
Total number of email responses to new Service Desk emails |
service_desk_new_note_email |
Counter |
Total number of email notifications on new Service Desk comment |
email_receiver_error |
Counter |
Total number of errors when processing incoming emails |
gitlab_snowplow_events_total |
Counter |
Total number of GitLab Snowplow product intelligence events emitted |
gitlab_snowplow_failed_events_total |
Counter |
Total number of GitLab Snowplow product intelligence events emission failures |
gitlab_snowplow_successful_events_total |
Counter |
Total number of GitLab Snowplow product intelligence events emission successes |
gitlab_ci_build_trace_errors_total |
Counter |
Total amount of different error types on a build trace |
gitlab_presentable_object_cacheless_render_real_duration_seconds |
Histogram |
Duration of real time spent caching and representing specific web request objects |
cached_object_operations_total |
Counter |
Total number of objects cached for specific web requests |
redis_hit_miss_operations_total |
Counter |
Total number of Redis cache hits and misses |
redis_cache_generation_duration_seconds |
Histogram |
Time to generate Redis cache |
gitlab_diffs_reorder_real_duration_seconds |
Histogram |
Duration in seconds spend on reordering of diff files on diffs batch request |
gitlab_diffs_collection_real_duration_seconds |
Histogram |
Duration in seconds spent on querying merge request diff files on diffs batch request |
gitlab_diffs_comparison_real_duration_seconds |
Histogram |
Duration in seconds spent on getting comparison data on diffs batch request |
gitlab_diffs_unfoldable_positions_real_duration_seconds |
Histogram |
Duration in seconds spent on getting unfoldable note positions on diffs batch request |
gitlab_diffs_unfold_real_duration_seconds |
Histogram |
Duration in seconds spent on unfolding positions on diffs batch request |
gitlab_diffs_write_cache_real_duration_seconds |
Histogram |
Duration in seconds spent on caching highlighted lines and stats on diffs batch request |
gitlab_diffs_highlight_cache_decorate_real_duration_seconds |
Histogram |
Duration in seconds spent on setting highlighted lines from cache on diffs batch request |
gitlab_diffs_render_real_duration_seconds |
Histogram |
Duration in seconds spent on serializing and rendering diffs on diffs batch request |
Модули компонента не порождают метрики мониторинга.
Часто встречающиеся проблемы и пути их устранения (FAQ)#
Типовые проблемы в текущей версии не выявлены.
В случае сбоев диагностику следует начинать со следующих проверок:
Проверка наличия стабильного соединения по сети.
Проверка корректности вводимых логина и пароля (в случае неудачи авторизации).