

# Arquivos de log do banco de dados RDS para PostgreSQL
<a name="USER_LogAccess.Concepts.PostgreSQL"></a>

Você pode monitorar os seguintes tipos de arquivo de log do :
+ Log do PostgreSQL
+ Log de atualização
+ Log de erros de autenticação de banco de dados do IAM
**nota**  
Para habilitar os logs de erro de autenticação de banco de dados do IAM, você deve primeiro habilitar a autenticação de banco de dados do IAM para a instância de banco de dados do RDS para PostgreSQL. Para ter mais informações sobre a autenticação de banco de dados do IAM, consulte [Habilitar e desabilitar a autenticação de banco de dados do IAM](UsingWithRDS.IAMDBAuth.Enabling.md).

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. Esses logs também podem ser acessados por meio do Console de gerenciamento da AWS, onde você pode visualizá-los ou baixá-los. 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](USER_LogAccess.md). Para saber mais sobre logs do PostgreSQL, consulte [Working with Amazon RDS and Aurora PostgreSQL logs: Part 1](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/) (Trabalhar com o Amazon RDS e logs do Aurora PostgreSQL: parte 1) e [Working with RDS and Aurora PostgreSQL logs: Part 2](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-2/) (Trabalhar com o Amazon RDS e logs do Aurora PostgreSQL: parte 2). 

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](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md).

**Topics**
+ [Parâmetros para registro em log no RDS para PostgreSQL](USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups.md)
+ [Ativar o registro em log de consultas para a instância de banco de dados do RDS para PostgreSQL](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md)
+ [Publicação de logs do PostgreSQL no Amazon CloudWatch Logs](#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)

## Publicação de logs do PostgreSQL no Amazon CloudWatch Logs
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs"></a>

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](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html) (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 
+ Log de erros de autenticação de banco de dados do IAM

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/{{my_instance}}/postgresql`. Para visualizar os logs, abra o console do CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

### Console
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CON"></a>

**Para publicar logs do PostgreSQL no CloudWatch Logs usando o console**

1. Abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados que você deseja modificar e escolha **Modify (Modificar)**.

1. 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. 

1. Escolha **Continue (Continuar)** e depois escolha **Modify DB Instance (Modificar instância de banco de dados)** na página de resumo.

### AWS CLI
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CLI"></a>

Publique logs do PostgreSQL com a AWS CLI. Você pode chamar o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 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:
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

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.

**Example 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:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier {{mydbinstance}} \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql", "upgrade"]}'
```
Para Windows:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier {{mydbinstance}} ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","upgrade"]}'
```

**Example 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:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier {{mydbinstance}} \
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' \
4.     --db-instance-class {{db.m4.large}} \
5.     --engine {{postgres}}
```
Para Windows:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier {{mydbinstance}} ^
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' ^
4.     --db-instance-class {{db.m4.large}} ^
5.     --engine {{postgres}}
```

### API do RDS
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.API"></a>

Publique logs do PostgreSQL com a API do RDS. Você pode chamar a ação [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 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: 
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

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.

 