Руководство по системному администрированию#

Сценарии администрирования#

Все сценарии администрирования, описанные в данном разделе, выполняются пользователем с ролью Admin. Логин и пароль для первоначального входа предоставляется при установке компонента.

Интерфейс области администрирования (Admin area) выглядит следующим образом:

Создание пользователя#

  1. Перейдите в раздел Admin area через меню приложения.

  2. Перейдите в раздел Users и нажмите кнопку New user:

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

    • Поле 1: укажите 0.

    • Поле 2: снимите галочку в чекбоксе Can create group.

    • Поле 3: выберите Regular.

    • Поле 4: поставьте галочку в чекбоксе External.

  4. Все остальные поля оставьте без изменений и создайте пользователя.

После создания пользователя его необходимо добавить в нужную группу или проект с указанием роли пользователя.

Подробная ролевая модель описана в разделе Авторизация Руководства по безопасности.

Обзор всего instance#

  1. Отчеты по состоянию instance: общая статистика по количеству проектов, групп, компонентов, запущенных runners, активных features.

  2. Проекты: список всех проектов с возможностью удалить (кнопка Delete), редактировать (кнопка Edit) или создать новый (кнопка New Project).

  3. Пользователи: список всех пользователей instance с возможностью блокировать (кнопка Block), удалять (кнопка Delete User), удалять со всеми действиями (кнопка Delete with contributions), а также редактировать параметры пользователя (доступны для редактирования имя, почта, пароль, уровень доступа, ссылки на социальные сети). Также по нажатию на кнопку New user открывается форма создания нового пользователя.

  4. Группы: список всех существующих групп с возможностью удалять (кнопка Delete), редактировать (кнопка Edit) или создавать новую группу с помощью кнопки New group.

  5. Темы для обсуждений: можно создавать ветку для обсуждения и редактировать или удалять существующие темы.

  6. Jobs: список всех jobs в приложении с возможностью перезапускать job в статусе Failed (статус Неудачно).

  7. Runners: список runners с возможностью остановить, удалить или отредактировать их.

  8. Информация о существующих Gitaly серверах: список, содержащий информацию о типе хранения, адресе расположения, версии сервера, версии git и состоянии.

Управление задачами#

  1. Статусы: возможность создания новых, редактирования и удаления существующих статусов.

  2. Управление workflow: можно создавать новые workflow (кнопка Create workflow), копировать, редактировать и удалять существующие.

  3. Группы и проекты: списки существующих групп и проектов.

Аналитика#

  1. DevOps отчет: отображает метрики использования ресурсов за последние 30 дней.

  2. Тренды использования: статистика, отображающая следующие показатели:

    1. Суммарное количество пользователей.

    2. Суммарное количество проектов и групп.

    3. Статистику по pipelines: суммарное количество, успешные, неуспешные, отменённые и пропущенные.

    4. Суммарное количество задач и запросов на слияние.

Мониторинг#

  1. Информация о системе: количество ядер, использование памяти.

  2. Информация о фоновых миграциях, их состоянии выполнения и финальном статусе.

  3. Фоновые jobs: отображает графики работы фоновых jobs.

  4. Проверка на ошибки: отображает статус автопроверки ошибок.

  5. Информация о профайлах запросов.

Рассылка информационного сообщения#

Отправка всем пользователям приложения информационного сообщения со следующими возможностями:

  1. Заполнить контент сообщения.

  2. Выбрать тип сообщения (баннер или оповещение).

  3. Выбрать цвет фона.

  4. Предоставить пользователю возможность закрыть это сообщение.

  5. Указать конкретный путь (проект, группа, весь instance).

  6. Дата начала трансляции сообщения.

  7. Дата завершения трансляции сообщения.

Системные хуки#

Просмотр списка существующих веб-хуков и возможность удалять их, редактировать и производить следующую настройку:

  1. Указать ссылку целевой системы.

  2. Указать токен доступа.

  3. Выбрать триггер, по срабатыванию которого будут отсылаться данные:

    1. События обновления репозитория.

    2. Push-события: любые слияния веток вызывают отправку во внешнюю систему.

    3. Push в репозиторий нового тега.

    4. События запросов слияния: их создание, обновление или слияние.

  4. Включить/выключить SSL верификацию.

Приложения#

Просмотр списка подключаемых приложений и возможность удалять или редактировать существующие, а также добавлять новые.

Отчет о злоупотреблениях#

Отчет содержит список сообщений о злоупотреблениях и отображает следующую информацию:

  1. Логин пользователя, на кого оставлена жалоба.

  2. Логин пользователя, который оставил жалобу.

  3. Сопроводительное сообщение.

  4. Список действий:

    1. Удалить жалобу и пользователя.

    2. Заблокировать пользователя.

    3. Удалить жалобу.

Ключи развертывания#

Просмотр списка созданных ключей и возможность создать новый (необходимо указать название и сгенерировать публичный ключ развертывания).

Метки#

Управление метками instance со следующими возможностями:

  1. Удалить существующую.

  2. Редактировать существующую.

  3. Создать новую метку:

    1. Необходимо заполнить Название.

    2. Краткое описание метки.

    3. Выбрать цвет метки.

Настройки#

  1. Общие:

    1. Настройка видимости и доступов.

    2. Управление лимитами.

    3. Управление размерами diff-файлов.

    4. Настройка правил создания новых аккаунтов пользователями.

    5. Настройка правил входа в систему.

    6. Добавление правила использования и политик приватности.

    7. Настройка возможности удаленной авторизации из внешних систем.

    8. Указание максимального количество сессий для веб-терминала.

    9. Включение/выключение "живого" ревью в веб-редакторе.

    10. Подключение Gitpod.

    11. Подключение Kroki.

    12. Подключение сервиса Mailgun.

    13. Подключение сервиса PlantUML.

    14. Включение/выключение внешних запросов.

    15. Подключение сервиса Snowpow.

    16. Подключение Amazon EKS.

    17. Включение/выключение FLoC.

  2. Список интеграций, с возможностью деактивировать их.

  3. Репозиторий:

    1. Установка стандартного название ветки.

    2. Включение/выключение зеркалирования репозитория.

    3. Настройка хранения репозитория:

      1. Включение/выключение хэширования путей.

      2. Указание количества nodes для новых репозиториев.

    4. Обслуживание репозитория:

      1. Включение/выключение автоматических проверок состояния репозитория.

      2. Включение/выключение автоматического обработчика.

    5. Подключение внешнего хранилища репозитория.

  4. Настройка CI/CD.

  5. Настройка анти-бот и анти-спам защиты.

  6. Настройка обмена метриками:

    1. Prometheus.

    2. Grafana.

    3. Разрешить/запретить видеть метрики пользователям без прав администратора.

    4. Активация/деактивация самомониторинга приложения.

    5. Включение/выключение автопроверки версии и проверки сервиса.

  7. Настройка сети.

  8. Настройка внешнего вида системы (логотип для шапки приложения, иконка вкладки браузера, контент для шапки и подвала приложения, контент для страницы логирования, новых проектов и страниц пользователей).

  9. Настройка предпочтений:

    1. Настройка почтовых уведомлений:

      1. Включать или нет автора в уведомление.

      2. Включить возможность разбивать сообщение на несколько писем.

      3. Имя домена для приватных рассылок.

      4. Включить оповещение о деактивации пользователей.

    2. Настройка начальной страницы и справки: добавление ссылок на документацию.

    3. Подключение документации в виде Pages.

    4. Настройка частоты обновления UI.

    5. Установка timeout для Gitaly.

    6. Настройка локализации.

    7. Настройка параметров 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__duration_seconds

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__count_total

Counter

Counter for total Rails cache calls (per key)

gitlab_transaction_cache__duration_total

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__count_total

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__cached_count_total

Counter

Counter for total number of cached SQL calls, grouped by database roles (primary/replica)

gitlab_transaction_db__wal_count_total

Counter

Counter for total number of WAL (write ahead log location) queries, grouped by database roles (primary/replica)

gitlab_transaction_db__wal_cached_count_total

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)#

Типовые проблемы в текущей версии не выявлены.

В случае сбоев диагностику следует начинать со следующих проверок:

  1. Проверка наличия стабильного соединения по сети.

  2. Проверка корректности вводимых логина и пароля (в случае неудачи авторизации).