Журналы в Базе данных Azure для PostgreSQL. Отдельный сервер
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
База данных Azure для PostgreSQL позволяет настраивать стандартные журналы Postgres и получать к ним доступ. Они позволяют выявлять и устранять ошибки, связанные с конфигурацией или неоптимальной производительностью. Можно настроить регистрацию в журнале следующей информации и доступ к ней: ошибки, сведения о запросах, записи автоматической очистки, соединения и контрольные точки. (Доступ к журналам транзакций отсутствует.)
Ведение журнала аудита возможно с использованием расширения PostgreSQL, pgaudit. Дополнительные сведения см. в статье Основные понятия аудита.
Настройка журнала
Чтобы настроить ведение стандартного журнала Postgres на своем сервере, нужно задать некоторые параметры. На каждом сервере базы данных Azure для PostgreSQL по умолчанию включены log_checkpoints
и log_connections
. Чтобы ведение журнала соответствовало вашим требования, можно изменить дополнительные параметры.
Дополнительные сведения о параметрах журнала Postgres см. в разделах документации по Postgres о том, когда и что можно записывать в журналы. В Базе данных Azure для PostgreSQL доступно большинство параметров ведения журнала Postgres, но не все.
Дополнительные сведения о настройке параметров в Базе данных Azure для PostgreSQL см. в документации портала или в документации CLI.
Примечание.
Настройка большого объема журналов, например регистрация инструкций, может значительно снизить производительность.
Доступ к файлам журналов.
По умолчанию форматом журнала в Базе данных Azure для PostgreSQL является .log. Пример строки из этого журнала выглядит следующим образом:
2019-10-14 17:00:03 UTC-5d773cc3.3c-LOG: connection received: host=101.0.0.6 port=34331 pid=16216
База данных Azure для PostgreSQL предоставляет место для кратковременного хранения файлов журнала. Новый файл начинается через каждый 1 час или каждые 100 МБ, в зависимости от того, что происходит первым. Журналы добавляются к текущему файлу по мере их выдачи из Postgres.
Интервал для этого кратковременного хранения журналов можно задать с помощью параметра log_retention_period
. Значению по умолчанию соответствует три дня, а максимальному значению семь. В кратковременном хранилище может содержаться до 1 ГБ файлов журнала. По достижении 1 ГБ старые файлы, независимо от срока хранения, будут удалены, чтобы освободить место для новых журналов.
Для долговременного хранения и анализа журналов можно скачать файлы журнала и переместить их в стороннюю службу. Файлы можно загрузить, используя портал Azure или Azure CLI. Либо можно настроить параметры диагностики Azure Monitor для автоматической выдачи журналов (в формате JSON) в места долговременного хранения. Дополнительные сведения об этом параметре см. в разделе ниже.
Создание файлов журнала можно отключить, установив для параметра logging_collector
значение OFF. При использовании параметров диагностики Azure Monitor, рекомендуется отключить создание LOG-файла. Такая конфигурация снизит влияние дополнительного ведения журнала на производительность.
Примечание.
Перезапустите сервер, чтобы применить это изменение.
Журналы ресурсов
База данных Azure для PostgreSQL интегрирована с диагностическими настройками Azure Monitor. Параметры диагностики позволяют отправлять журналы Postgres в формате JSON в журналы Azure Monitor для аналитики и предупреждений, концентраторы событий для потоковой передачи и хранилище Azure для архивирования.
Внимание
Функция диагностики для журналов серверов доступна только в ценовых категориях "Общее назначение" и "Оптимизировано для операций в памяти".
Настройка параметров диагностики
Активировать параметры диагностики для сервера PostgreSQL можно с помощью портала Azure, интерфейса командной строки, REST API или PowerShell. Необходимо выбрать категорию журналов PostgreSQLLogs. (Существуют и другие журналы, которые можно настроить при использовании хранилища запросов.)
Чтобы включить журналы ресурсов, используя портал Azure, сделайте следующее.
- Находясь на портале, в меню навигации своего сервера PostgreSQL выберите Параметры диагностики.
- Выберите Добавить параметр диагностики.
- Назовите этот параметр.
- Выберите предпочтительную конечную точку (учетная запись хранения, концентратор событий, аналитика журналов).
- Выберите тип журнала PostgreSQL Server Logs.
- Сохраните вашу настройку.
Включение журналов ресурсов с помощью PowerShell, интерфейса командной строки или REST API описано в статье Параметры диагностики.
Доступ к журналам ресурсов
Способ доступа к журналам зависит от выбранной конечной точки. Сведения о службе хранилища Azure см. в разделе об учетной записи хранения журналов. Сведения о Центрах событий см. в статье о потоковой передаче журналов Azure.
Журналы Azure Monitor отправляются в выбранную рабочую область. Журналы Postgres используют режим сбора данных AzureDiagnostics, поэтому их можно запрашивать из таблицы AzureDiagnostics. Поля в таблице описаны ниже. Дополнительные сведения о запросах и оповещениях см. в обзоре Запросы журналов Azure Monitor.
Ниже приведены запросы, которые помогут вам начать работу. Вы можете использовать запросы для настройки оповещений.
Поиск всех журналов PostgreSQL для конкретного сервера за последний день
AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
Поиск всех попыток соединения, не относящихся к localhost
AzureDiagnostics
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where Category == "PostgreSQLLogs" and TimeGenerated > ago(6h)
Приведенный выше запрос отобразит результаты для любых журналов сервера PostgreSQL в текущей рабочей области за последние шесть часов.
Формат журнала
В следующей таблице описаны поля для типа PostgreSQLLogs. Порядок появления выбранных полей зависит от выбранной конечной точки вывода.
Поле | Description |
---|---|
TenantId | Идентификатор клиента |
SourceSystem | Azure |
TimeGenerated [UTC] | Метка времени, когда журнал был записан в формате UTC |
Тип | Тип журнала Всегда AzureDiagnostics |
SubscriptionId | Идентификатор GUID для подписки, принадлежащей серверу |
ResourceGroup | Имя группы ресурсов, принадлежащей серверу |
ResourceProvider | Имя поставщика ресурсов. Всегда MICROSOFT.DBFORPOSTGRESQL |
ResourceType | Servers |
ResourceId | Универсальный код ресурса (URI) |
Ресурс | Имя сервера |
Категория | PostgreSQLLogs |
OperationName | LogEvent |
errorLevel | Уровень ведения журнала, например: LOG, ERROR, NOTICE |
Сообщение | Первичное сообщение журнала |
Домен | Версия сервера, например: postgres 10 |
Подробный сведения | Второстепенное сообщение журнала (если применимо) |
ColumnName | Имя столбца (если применимо) |
Имя схемы | Имя схемы (если применимо) |
DatatypeName | Имя типа данных (если применимо) |
LogicalServerName | Имя сервера |
_ResourceId | Универсальный код ресурса (URI) |
Префикс | Префикс строки журнала |
Следующие шаги
- Дополнительные сведения о доступе к журналам см. в статье Настройка журналов сервера и получение к ним доступа с помощью портала Azure или Настройка журналов сервера и получение к ним доступа с помощью Azure CLI.
- Дополнительные сведения см. в статье Цены на Azure Monitor.
- Дополнительные сведения о журналах аудита