Arquivos de log do banco de dados do RDS para PostgreSQL
O RDS para PostgreSQL registra as atividades do banco de dados no arquivo de log padrão do PostgreSQL. Para uma instância de banco de dados PostgreSQL on-premises, essas mensagens são armazenadas localmente em log/postgresql.log
. Para uma instância de banco de dados do RDS para PostgreSQL, o arquivo de log está disponível na instância do Amazon RDS. Além disso, você deve usar o console do Amazon RDS para visualizar ou baixar seu conteúdo. O nível de registro em log padrão captura falhas de login, erros fatais do servidor, deadlocks e falhas de consulta.
Para ter mais informações sobre a visualização, o download e os logs de banco de dados baseados no monitoramento de arquivos, consulte Monitorar arquivos de log do Amazon RDS. Para saber mais sobre logs do PostgreSQL, consulte Working with Amazon RDS and Aurora PostgreSQL logs: Part 1
Além dos logs padrão do PostgreSQL abordados neste tópico, o RDS para PostgreSQL também é compatível com a extensão Audit do PostgreSQL (pgAudit
). A maioria dos setores regulamentados e agências governamentais precisa manter um log de auditoria ou uma trilha de auditoria das alterações feitas nos dados para cumprir os requisitos legais. Para obter informações sobre a instalação e o uso de pgAudit, consulte Usar pgAudit para registrar a atividade do banco de dados.
Tópicos
Publicação de logs do PostgreSQL no Amazon CloudWatch Logs
Para armazenar os registros de log do PostgreSQL em armazenamento resiliente, você pode usar o Amazon CloudWatch Logs. Com o CloudWatch Logs, é possível realizar análise em tempo real de dados e usar o CloudWatch para visualizar métricas e criar alarmes. Por exemplo, se você definir log_statement
como ddl
, poderá configurar um alarme para alertar sempre que uma declaração DDL for executada. Você pode optar por fazer upload dos logs do PostgreSQL no CloudWatch Logs durante o processo de criação de sua instância de banco de dados do RDS para PostgreSQL. Se você optar por não fazer upload de logs no momento, poderá modificar sua instância posteriormente para começar a fazer upload dos logs a partir desse momento. Em outras palavras, não é feito upload dos logs existentes. Só é feito upload de novos logs, pois eles são criados em sua instância de banco de dados do RDS para PostgreSQL modificada.
Todas as versões do RDS para PostgreSQL atualmente disponíveis são compatíveis com a publicação de arquivos de log no CloudWatch Logs. Para obter informações, consulte Amazon RDS for PostgreSQL updates (Atualizações do Amazon RDS para PostgreSQL) nas Amazon RDS for PostgreSQL Release Notes (Notas de versão do Amazon RDS para PostgreSQL).
Para trabalhar com o CloudWatch Logs, configure o RDS para a instância de banco de dados do PostgreSQL para publicar dados de log a um grupo de log.
Você pode publicar os seguintes tipos de log no CloudWatch Logs do RDS do PostgreSQL:
-
Log do Postgresql
-
Log de atualização
Depois que você concluir a configuração, o Amazon RDS publicará os eventos de log em fluxos de logs dentro de um grupo de logs do CloudWatch. Por exemplo, os dados de log do PostgreSQL são armazenados no grupo de logs /aws/rds/instance/
. Para visualizar os logs, abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/my_instance
/postgresql
Para publicar logs do PostgreSQL no CloudWatch Logs usando o console
Abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Databases (Bancos de dados).
-
Escolha a instância de banco de dados que você deseja modificar e escolha Modify (Modificar).
-
Na seção Log exports (Exportações de log), escolha os logs que deseja começar a publicar no CloudWatch Logs.
A seção Log exports (Exportações de log) só está disponível para versões do PostgreSQL compatível com a publicação no CloudWatch Logs.
-
Escolha Continue (Continuar) e depois escolha Modify DB Instance (Modificar instância de banco de dados) na página de resumo.
Publique logs do PostgreSQL com a AWS CLI. Você pode chamar o comando modify-db-instance
com os parâmetros a seguir.
-
--db-instance-identifier
-
--cloudwatch-logs-export-configuration
nota
Uma alteração feita na opção --cloudwatch-logs-export-configuration
sempre é aplicada imediatamente na instância de banco de dados. Por isso, as opções --apply-immediately
e --no-apply-immediately
não entram em vigor.
Também publique logs do PostgreSQL chamando os seguintes comandos de CLI:
Execute um destes comandos da CLI com as seguintes opções:
-
--db-instance-identifier
-
--enable-cloudwatch-logs-exports
-
--db-instance-class
-
--engine
Outras opções podem ser obrigatórias, dependendo do comando da CLI executado.
exemplo Modificar uma instância para publicar logs no CloudWatch Logs
O exemplo a seguir modifica uma instância de banco de dados PostgreSQL existente para publicar arquivos de log em CloudWatch Logs. O valor --cloudwatch-logs-export-configuration
é um objeto JSON. A chave desse objeto é EnableLogTypes
, e o valor é uma matriz de strings com uma combinação qualquer de postgresql
e upgrade
.
Para Linux, macOS ou Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql", "upgrade"]}'
Para Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","upgrade"]}'
exemplo Criar uma instância para publicar logs no CloudWatch Logs
O exemplo a seguir cria uma instância de banco de dados PostgreSQL e publica arquivos de log em CloudWatch Logs. O valor --enable-cloudwatch-logs-exports
é uma matriz de strings JSON. As strings podem ser uma combinação qualquer de postgresql
e upgrade
.
Para Linux, macOS ou Unix:
aws rds create-db-instance \ --db-instance-identifier
mydbinstance
\ --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' \ --db-instance-classdb.m4.large
\ --enginepostgres
Para Windows:
aws rds create-db-instance ^ --db-instance-identifier
mydbinstance
^ --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' ^ --db-instance-classdb.m4.large
^ --enginepostgres
Publique logs do PostgreSQL com a API do RDS. Você pode chamar a ação ModifyDBInstance
com os seguintes parâmetros:
-
DBInstanceIdentifier
-
CloudwatchLogsExportConfiguration
nota
Uma alteração feita no parâmetro CloudwatchLogsExportConfiguration
sempre é aplicada imediatamente na instância de banco de dados. Por isso, o parâmetro ApplyImmediately
não entra em vigor.
Também é possível publicar logs do PostgreSQL chamando as seguintes operações da API do RDS:
Execute uma destas operações da API do RDS com os seguintes parâmetros:
-
DBInstanceIdentifier
-
EnableCloudwatchLogsExports
-
Engine
-
DBInstanceClass
Outros parâmetros podem ser obrigatórios, dependendo da operação executada.