Logs no Banco de Dados do Azure para PostgreSQL – Servidor Único
APLICA-SE A: Banco de Dados do Azure para PostgreSQL – Servidor Único
Importante
O Banco de Dados do Azure para PostgreSQL – Servidor Único está prestes a ser desativado. É altamente recomendável atualizar para o Banco de Dados do Azure para PostgreSQL – Servidor Flexível. Para obter mais informações sobre a migração para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, confira O que está acontecendo com o 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:
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:
- No portal, vá até Configurações de diagnóstico no menu de navegação do servidor do Postgres.
- Selecionar Adicionar Configurações de Diagnóstico.
- Nomeie essa configuração.
- Selecione o ponto de extremidade preferido (conta de armazenamento, hub de eventos, Log Analytics).
- Selecione o tipo de log Logs do Servidor PostgreSQL.
- 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
- Saiba mais sobre como acessar logs no portal do Azure ou na CLI do Azure.
- Saiba mais sobre o preço do Azure Monitor.
- Saiba mais sobre logs de auditoria