Logs no Banco de Dados do Azure para PostgreSQL – Servidor Único

APLICA-SE A: Banco de Dados do Azure para PostgreSQL – Servidor Único

O Banco de Dados do Azure para PostgreSQL permite configurar e acessar os logs padrão do Postgres. Esses logs podem ser usados para identificar, solucionar problemas e reparar erros de configuração e desempenho abaixo do ideal. As informações de registro em log que você pode configurar e acessar incluem erros, informações de consulta, registros de vácuo automático, conexões e pontos de verificação. (O acesso aos logs de transação não está disponível).

O log de auditoria é disponibilizado por meio de uma extensão PostgreSQL, pgaudit. Para saber mais, acesse o artigo conceitos de auditoria.

Configurar o registro em log

Você pode configurar o log padrão do Postgres no seu servidor usando os parâmetros de registro em log. Em cada servidor de Banco de Dados do Azure para PostgreSQL, log_checkpoints e log_connections estão ativados por padrão. Há parâmetros adicionais que você pode ajustar para atender às suas necessidades de registro em log:

Banco de Dados do Azure para PostgreSQL – parâmetros de registro em log

Para saber mais sobre os parâmetros de log do Postgres, visite as seções Quando fazer um registro em log e O que registrar em log na documentação do Postgres. A maioria, mas não todos, dos parâmetros de log do Postgres, estão disponíveis para configurar no Banco de Dados do Azure para PostgreSQL.

Para saber como configurar parâmetros no Banco de Dados do Azure para PostgreSQL, consulte a documentação do portal ou a documentação da CLI.

Observação

Configurar um alto volume de logs, por exemplo, registro de instruções em log, pode adicionar uma sobrecarga de desempenho significativa.

Acessar arquivos de .log

O formato de log padrão no Banco de Dados do Azure para PostgreSQL é. log. Uma linha de exemplo desse log tem esta aparência:

2019-10-14 17:00:03 UTC-5d773cc3.3c-LOG: connection received: host=101.0.0.6 port=34331 pid=16216

O Banco de Dados do Azure para PostgreSQL fornece um local de armazenamento de curto prazo para os arquivos .log. Um novo arquivo começa a cada 1 hora ou 100 MB, o que ocorrer primeiro. Os logs são anexados ao arquivo atual à medida que são emitidos do Postgres.

Você pode definir o período de retenção desse armazenamento de logs de curto prazo usando o parâmetro log_retention_period. O valor padrão é de 3 dias; o valor máximo é de 7 dias. O local de armazenamento de curto prazo pode conter até 1 GB de arquivos de log. Após 1 GB, os arquivos mais antigos, independentemente do período de retenção, serão excluídos para liberar espaço para novos logs.

Para retenção de longo prazo de logs e análise de log, você pode baixar os arquivos .log e movê-los para um serviço terceirizado. Você pode baixar os arquivos usando o portal do Azure, a CLI do Azure. Como alternativa, você pode definir as configurações de diagnóstico do Azure Monitor que emitem automaticamente seus logs (no formato JSON) para locais de longo prazo. Saiba mais sobre essa opção na seção abaixo.

Você pode parar de gerar arquivos .log definindo o parâmetro logging_collector como OFF. É recomendável desligar a geração de arquivos .log se você estiver usando as configurações de diagnóstico do Azure Monitor. Essa configuração reduzirá o impacto no desempenho do registro em log adicional.

Observação

Reinicie o servidor para aplicar suas alterações.

Logs de recursos

O Banco de Dados do Azure para PostgreSQL é integrado às configurações de diagnóstico do Azure Monitor. As configurações de diagnóstico permitem que você envie os logs do Postgres no formato JSON para os Logs do Azure Monitor para análise e alertas, Hubs de Eventos para streaming e Armazenamento do Microsoft Azure para arquivamento.

Importante

O recurso de diagnóstico para logs do servidor está disponível apenas nas camadas de preços de Uso Geral e Otimizado para Memória.

Definir as configurações de diagnóstico

Para habilitar as configurações de diagnóstico para o servidor Postgres, use o portal do Azure, a CLI, a API REST e o PowerShell. A categoria de log a ser selecionada é PostgreSQLLogs. (Há outros logs que você pode configurar se estiver usando o Repositório de Consultas.)

Para habilitar os logs de recursos usando o portal do Azure:

  1. No portal, vá até Configurações de diagnóstico no menu de navegação do servidor do Postgres.
  2. Selecionar Adicionar Configurações de Diagnóstico.
  3. Nomeie essa configuração.
  4. Selecione o ponto de extremidade preferido (conta de armazenamento, hub de eventos, Log Analytics).
  5. Selecione o tipo de log PostgreSQLLogs.
  6. Salve sua configuração.

Para habilitar os logs de recursos usando o PowerShell, a CLI ou a API REST, confira o artigo configurações de diagnóstico.

Acessar logs de recursos

A maneira como você acessa os logs depende do ponto de extremidade escolhido. Para o Armazenamento do Microsoft Azure, veja o artigo sobre conta de armazenamento de logs. Para os hubs de eventos, consulte o artigo sobre fluxos de logs do Azure.

Para logs de Azure Monitor, os logs são enviados para o espaço de trabalho selecionado. Os logs do Postgres usam o modo de coleta AzureDiagnostics para que possam ser consultados a partir da tabela AzureDiagnostics. Os campos na tabela são descritos abaixo. Saiba mais sobre como consultar e alertar na visão geral Consulta de logs do Azure Monitor.

Para começar, execute as consultas a seguir. Você pode configurar alertas com base em consultas.

Pesquisar todos os logs do Postgres para um servidor específico no último dia

AzureDiagnostics
| where LogicalServerName_s == "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d) 

Pesquisar todas as tentativas de conexão não localhost

AzureDiagnostics
| where Message contains "connection received" and Message !contains "host=127.0.0.1"
| where Category == "PostgreSQLLogs" and TimeGenerated > ago(6h)

A consulta acima mostrará os resultados nas últimas 6 horas de qualquer log de servidor Postgres nesse workspace.

Formato de log

A tabela a seguir descreve os campos para o tipo PostgreSQLLogs. Dependendo do ponto de extremidade de saída escolhido, os campos incluídos e a ordem em que aparecem podem variar.

Campo Descrição
TenantId Sua ID de locatário
SourceSystem Azure
TimeGenerated [UTC] Carimbo de data/hora quando o log foi gravado, em UTC
Tipo Tipo do log. Sempre AzureDiagnostics
SubscriptionId GUID para a assinatura a que o servidor pertence
ResourceGroup Nome do grupo de recursos ao qual o servidor pertence
ResourceProvider Nome do provedor de recursos. Sempre MICROSOFT.DBFORPOSTGRESQL
ResourceType Servers
ResourceId URI de recurso
Recurso Nome do servidor
Category PostgreSQLLogs
OperationName LogEvent
errorLevel Nível de log, exemplo: LOG, ERROR, NOTICE
Mensagem Mensagem de log primária
Domínio Versão do servidor, o exemplo: postgres-10
Detalhe Mensagem de log secundária (se aplicável)
ColumnName Nome da coluna (se aplicável)
SchemaName Nome do esquema (se aplicável)
DatatypeName Nome do tipo de dados (se aplicável)
LogicalServerName Nome do servidor
_ResourceId URI de recurso
Prefixo Prefixo da linha de log

Próximas etapas