---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/reference/configuration/log_config.md?version=v25.3
  - https://ydb.tech/docs/ru/reference/configuration/log_config.md?version=v25.3
  - href: ru/reference/configuration/log_config.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/reference/configuration/log_config.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# log_config

Секция `log_config` управляет тем, как серверный процесс YDB обрабатывает и управляет своими логами. Она позволяет настраивать уровни логирования для различных компонентов, а также глобальные форматы логов и методы вывода.

{% note info %}

Этот документ описывает конфигурацию прикладного и системного логирования. Для информации о логировании для целей аудита и обеспечения безопасности, см. [Аудитный лог](https://ydb.tech/docs/ru/security/audit-log.md?version=v25.3).

{% endnote %}

## Обзор

Логирование является критически важной частью системы [наблюдаемости](https://ydb.tech/docs/ru/reference/observability/index.md?version=v25.3) YDB. Секция `log_config` позволяет настраивать различные аспекты логирования, включая:

- уровень логирования по умолчанию;
- уровни логирования для конкретных компонентов;
- формат вывода логов;
- интеграцию с syslog или внешними сервисами логирования.

## Способы вывода логов

- **В stderr**: по умолчанию, YDB отправляет все логи в stderr.
- **В файл**: логи могут быть записаны в файл с помощью параметра `backend_file_name`.
- **В syslog**: при включении параметра `sys_log: true` логи перенаправляются в системный журнал syslog и перестают выводиться в stderr. Логи отправляются с использованием сокета `/dev/log`.
- **В Unified Agent**: при настройке секции `uaclient_config` логи отправляются в [Unified Agent](https://yandex.cloud/ru/docs/monitoring/concepts/data-collection/unified-agent/) и перестают выводиться в stderr.

При одновременном включении `sys_log` и настройке `uaclient_config`, логи будут отправляться и в syslog, и в Unified Agent. Если вам нужно продолжать выводить логи в stderr при использовании других способов, активируйте `sys_log_to_stderr: true`.

## Параметры конфигурации

| Параметр | Тип | Значение по умолчанию | Описание |
| --- | --- | --- | --- |
| `default_level` | uint32 | 5 (`NOTICE`) | Уровень логирования по умолчанию для всех компонентов. |
| `default_sampling_level` | uint32 | 7 (`DEBUG`) | Уровень семплирования по умолчанию для всех компонентов. |
| `default_sampling_rate` | uint32 | 0 | Частота семплирования по умолчанию для всех компонентов. Если установлено значение N (где N > 0), примерно 1 из каждых N сообщений журнала с приоритетом между `default_level` и `default_sampling_level` будет записано в лог. Например, чтобы записывать каждое 10-е сообщение, установите значение 10. Значение 0 означает, что сообщения в этом диапазоне не будут записаны в лог (все они отбрасываются). |
| `sys_log` | bool | false | Включить логирование через syslog. |
| `sys_log_to_stderr` | bool | false | Копировать логи в stderr в дополнение к syslog. |
| `format` | string | "full" | Формат вывода логов. Возможные значения: "full", "short", "json". |
| `cluster_name` | string | — | Имя кластера для включения в записи логов. Поле `cluster_name` добавляется в логи только при использовании формата `json` или при отправке в Unified Agent. В форматах `full` или `short` это поле не отображается. |
| `allow_drop_entries` | bool | true | Разрешить отбрасывание записей логов, если система логирования перегружена. При включении этой опции записи логов буферизуются в памяти и записываются в вывод, когда накапливается 10 сообщений или истекает время, указанное в `time_threshold_ms`. Если буфер переполняется, сообщения с низким приоритетом могут быть отброшены, чтобы освободить место для сообщений с более высоким приоритетом. |
| `use_local_timestamps` | bool | false | Использовать локальный часовой пояс для временных меток логов (по умолчанию используется UTC). |
| `backend_file_name` | string | — | Имя файла для вывода логов. Если указано, логи записываются в этот файл. |
| `sys_log_service` | string | — | Имя сервиса для syslog. Соответствует полю tag в старом протоколе syslog [RFC 3164](https://datatracker.ietf.org/doc/html/rfc3164) или полю app-name в современном протоколе [RFC 5424](https://datatracker.ietf.org/doc/html/rfc5424). |
| `time_threshold_ms` | uint64 | 1000 | Если `allow_drop_entries = true`, определяет как часто, в миллисекундах, YDB пишет записи логов из буфера в вывод. |
| `ignore_unknown_components` | bool | true | Игнорировать запросы логирования от неизвестных компонентов. |
| `entry` | array | [] | Конфигурация уровня логирования и/или семплирования для конкретных компонентов YDB, cм. [Объекты Entry](#entry-objects) ниже. |
| `uaclient_config` | object | — | Конфигурация для клиента Unified Agent, см. [Объект UAClientConfig](#uaclient-config) ниже. |

### Объекты Entry {#entry-objects}

Поле `entry` содержит массив объектов со следующей структурой:

| Параметр | Тип | Описание |
| --- | --- | --- |
| `component` | string | Имя компонента. C полным списком доступных компонентов можно ознакомиться [на GitHub](https://github.com/ydb-platform/ydb/blob/main/ydb/library/services/services.proto#L6). |
| `level` | uint32 | [Уровень логирования](#log-levels) для этого компонента. |
| `sampling_level` | uint32 | Уровень семплирования для этого компонента. Работает аналогично `default_sampling_level`. |
| `sampling_rate` | uint32 | Частота семплирования для этого компонента. Работает аналогично `default_sampling_rate`.|

### Объект UAClientConfig {#uaclient-config}

Поле `uaclient_config` настраивает интеграцию с [Unified Agent](https://yandex.cloud/ru/docs/monitoring/concepts/data-collection/unified-agent/):

| Параметр | Тип | Значение по умолчанию | Описание |
| --- | --- | --- | --- |
| `uri` | string | — | grpc URI сервера Unified Agent. |
| `shared_secret_key` | string | — | Путь к файлу с секретным ключом для аутентификации клиентских соединений. |
| `max_inflight_bytes` | uint64 | 100000000 | Максимальное количество байт в передаче при отправке данных. |
| `grpc_reconnect_delay_ms` | uint64 | — | Задержка между попытками переподключения в миллисекундах. |
| `grpc_send_delay_ms` | uint64 | — | Задержка между попытками отправки в миллисекундах. |
| `grpc_max_message_size` | uint64 | — | Максимальный размер сообщения gRPC. |
| `client_log_file` | string | — | Файл логов для самого клиента UA. |
| `client_log_priority` | uint32 | — | Уровень логирования для самого клиента UA. |
| `log_name` | string | — | Имя лога, которое передается в метаданных сессии. |

## Уровни логирования {#log-levels}

YDB использует следующие уровни логирования, перечисленные от наивысшей к наименьшей серьезности:

| Уровень | Числовое значение | Описание |
| --- | --- | --- |
| `EMERG` | 0 | Возможен сбой системы (например, отказ кластера). |
| `ALERT` | 1 | Возможна деградация системы, компоненты системы могут выйти из строя. |
| `CRIT` | 2 | Критическое состояние. |
| `ERROR` | 3 | Некритическая ошибка. |
| `WARN` | 4 | Предупреждение, на которое следует отреагировать и исправить, если оно не временное. |
| `NOTICE` | 5 | Произошло событие, существенное для системы или пользователя. |
| `INFO` | 6 | Отладочная информация для сбора статистики. |
| `DEBUG` | 7 | Отладочная информация для разработчиков. |
| `TRACE` | 8 | Очень подробная отладочная информация. |

## Примеры

### Базовая конфигурация

```yaml
log_config:
  default_level: 5  # NOTICE
  format: "full"
```

Данная конфигурация выводит логи в stderr с уровнем логирования `NOTICE` и выше.

### Конфигурация с выводом в файл

```yaml
log_config:
  default_level: 5  # NOTICE
  format: "full"
  backend_file_name: "/var/log/ydb/ydb.log"
```

Эта конфигурация отправляет логи в файл, сохраняя уровень логирования `NOTICE` по умолчанию.

### Конфигурация с выводом в syslog

```yaml
log_config:
  default_level: 5  # NOTICE
  sys_log: true
  sys_log_service: "ydb"
  format: "full"
```

Эта конфигурация отправляет логи в syslog с именем сервиса "ydb".

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

```yaml
log_config:
  default_level: 5  # NOTICE
  entry:
    - component: "SCHEMESHARD"
      level: 7  # DEBUG
    - component: "TABLET_MAIN"
      level: 6  # INFO
  backend_file_name: "/var/log/ydb/ydb.log"
```

### Конфигурация семплирования

```yaml
log_config:
  default_level: 5  # NOTICE
  default_sampling_level: 7  # DEBUG
  default_sampling_rate: 10  # Логировать каждое 10-е сообщение между NOTICE и DEBUG
  entry:
    - component: "BLOBSTORAGE"
      sampling_level: 8  # TRACE
      sampling_rate: 100  # Логировать каждое 100-е сообщение между NOTICE и TRACE
```

Эта конфигурация настраивает семплирование логов. При настройках по умолчанию каждое 10-е сообщение с приоритетом между `NOTICE` и `DEBUG` будет записано в лог. Для компонента `BLOBSTORAGE` каждое 100-е сообщение с приоритетом между `NOTICE` и `TRACE` будет записано в лог.

### Конфигурация формата JSON

```yaml
log_config:
  default_level: 5  # NOTICE
  format: "json"
  cluster_name: "production-cluster"
  uaclient_config:
    uri: "[fd53::1]:16400"
    grpc_max_message_size: 4194304
    log_name: "ydb_logs"
```

Эта конфигурация выводит логи в формате JSON и отправляет их в Unified Agent.

## Примечания

- Уровни логирования указываются в конфигурации как числовые значения, а не строки. Используйте [таблицу выше](#log-levels) для сопоставления между числовыми значениями и их значениями.
- Если указан параметр `backend_file_name`, логи записываются в этот файл. Если параметр `sys_log` имеет значение true, логи отправляются в системный регистратор.
- Параметр `format` определяет, как форматируются записи логов. Формат «full» включает всю доступную информацию, «short» предоставляет более компактный формат, а «json» выводит логи в формате JSON, который удобен для парсинга сервисами логирования.
- Внутренний буфер логов имеет следующие ограничения по размеру:
  - Общий размер по умолчанию: 10МБ (10 &ast; 1024 &ast; 1024 байт)
  - Размер гранулы по умолчанию: 64КБ (1024 &ast; 64 байт)
  - Максимальный размер сообщения: 1КБ (1024 байт)

## Смотрите также

- [Справка по наблюдаемости YDB](https://ydb.tech/docs/ru/reference/observability/index.md?version=v25.3)
- [Справка по метрикам](https://ydb.tech/docs/ru/reference/observability/metrics/index.md?version=v25.3)
- [Трассировка в YDB](https://ydb.tech/docs/ru/reference/observability/tracing/setup.md?version=v25.3)
- [Аудитный лог](https://ydb.tech/docs/ru/security/audit-log.md?version=v25.3)
