

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Eventos, registros y registros de auditoría
<a name="events-logs-audit"></a>

Supervisar las [métricas de las instancias de base de datos](db-instance-monitoring.md) y las [métricas del sistema operativo](os-monitoring.md), analizar las tendencias y comparar las métricas con los valores de la línea de base y generar alertas cuando los valores superen los umbrales definidos son prácticas recomendadas necesarias para lograr y mantener la fiabilidad, la disponibilidad, el rendimiento y la seguridad de las instancias de bases de datos de Amazon RDS. Sin embargo, una solución completa también debe supervisar los eventos, los archivos de registro y los registros de auditoría de las bases de datos de MySQL y MariaDB.

**Secciones**
+ [Eventos de Amazon RDS](rds-events.md)
+ [Registros de la base de datos](database-logs.md)
+ [Registros de seguimiento de auditoría](audit-trails.md)

# Eventos de Amazon RDS
<a name="rds-events"></a>

Un *evento de* *Amazon RDS* indica un cambio en el entorno de Amazon RDS. Por ejemplo, cuando el estado de la instancia de bases de datos cambia de *Empezando* a *Disponible*, Amazon RDS genera el evento `RDS-EVENT-0088 The DB instance has been started`. Amazon RDS envía eventos a Amazon EventBridge casi en tiempo real. Puede acceder a los eventos a través de la consola de Amazon RDS, el comando de la AWS CLI [describe-events](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/describe-events.html) o la operación [DescribeEvents](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html) de la API de Amazon RDS. La siguiente ilustración de pantalla muestra los eventos y registros que se muestran en la consola de Amazon RDS.

![\[Alarmas, eventos y registros que se muestran en la consola de Amazon RDS\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/alarms-events-logs-rds-console.png)


Amazon RDS emite distintos tipos de eventos, entre ellos los eventos de instancias de bases de datos, los eventos de grupos de parámetros de bases de datos, los eventos de grupos de seguridad de base de datos, los eventos de instantáneas de bases de datos, los eventos de proxy de RDS y los eventos de implementación azul/verde. La información incluye lo siguiente:
+ Nombre y tipo de origen, por ejemplo: `"SourceIdentifier": "database-1", "SourceType": "db-instance"`
+ Fecha y hora del evento, por ejemplo: `"Date": "2022-12-01T09:20:28.595000+00:00"`
+ Mensaje asociado al evento, por ejemplo: `"Message": "Finished updating DB parameter group"`
+ Categoría de evento, por ejemplo: `"EventCategories": ["configuration change"]`

Para obtener una referencia completa, consulte [Categorías de eventos de Amazon RDS y mensajes de eventos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html) en la documentación de Amazon RDS.

Le recomendamos que supervise los eventos de Amazon RDS, ya que estos indican cambios de estado en la disponibilidad de las instancias de base de datos, cambios de configuración, cambios de estado de réplica de lectura, eventos de copias de seguridad y recuperación, acciones de conmutación por error, eventos de error, modificaciones en los grupos de seguridad y muchas otras notificaciones. Por ejemplo, si configuró una instancia de bases de datos de réplica de lectura para mejorar el rendimiento y la durabilidad de la base de datos, le recomendamos que supervise los eventos de Amazon RDS para la categoría de eventos de *réplica de lectura* asociada a las instancias de base de datos. Esto se debe a eventos, tales como `RDS-EVENT-0057 Replication on the read replica was terminated`, indican que la réplica de lectura ya no se sincroniza con la instancia de base de datos principal. Una notificación al equipo responsable de que se produjo un evento de este tipo podría ayudar a mitigar el problema a tiempo. Amazon EventBridge y otros Servicios de AWS, como AWS Lambda, Amazon Simple Queue Service (Amazon SQS) y Amazon Simple Notification Service (Amazon SNS), pueden ayudar a automatizar las respuestas a eventos del sistema, como problemas de disponibilidad de la base de datos o cambios de recursos.

En la consola de Amazon RDS, puede recuperar eventos de las últimas 24 horas. Si utiliza la AWS CLI o la API de Amazon RDS para ver eventos, puede recuperar los de últimos 14 días. Para ello, utilice el comando **describe-events** de la manera siguiente.

```
$ aws rds describe-events --source-identifier database-1 --source-type db-instance
{
    "Events": [
        {
            "SourceIdentifier": "database-1",
            "SourceType": "db-instance",
            "Message": "CloudWatch Logs Export enabled for logs [audit, error, general, slowquery]",
            "EventCategories": [],
            "Date": "2022-12-01T09:20:28.595000+00:00",
            "SourceArn": "arn:aws:rds:eu-west-3:111122223333:db:database-1"
        },
        {
            "SourceIdentifier": "database-1",
            "SourceType": "db-instance",
            "Message": "Finished updating DB parameter group",
            "EventCategories": [
                "configuration change"
            ],
            "Date": "2022-12-01T09:22:40.413000+00:00",
            "SourceArn": "arn:aws:rds:eu-west-3:111122223333:db:database-1"
        }
    ]
}
```

Si desea almacenar eventos a largo plazo, ya sea hasta el periodo de vencimiento especificado o de forma permanente, puede utilizar [Registros de CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) para registrar la información sobre los eventos generados por Amazon RDS. Para implementar esta solución, puede utilizar un tema de Amazon SNS para recibir notificaciones de los eventos de Amazon RDS y, a continuación, llamar a una función de Lambda para registrar el evento en Registros de CloudWatch.

1. Cree una función de Lambda a la que se invoque en el evento y registre la información del evento en Registros de CloudWatch. Registros de CloudWatch está integrado con Lambda y proporciona una forma práctica de registrar la información de los eventos de registro, mediante la función de **impresión** para `stdout`.

1. Cree un tema de SNS con una suscripción a una función de Lambda (establezca **Protocolo** en Lambda) y establezca **Punto de conexión** en el nombre de recurso de Amazon (ARN) de la función de Lambda que creó en el paso anterior.

1. Configure el tema de SNS para recibir las notificaciones de los eventos de Amazon RDS. Para obtener instrucciones detalladas, consulte el [artículo de AWS re:Post](https://repost.aws/knowledge-center/sns-topics-rds-notifications) sobre cómo hacer que el tema de Amazon SNS reciba las notificaciones de Amazon RDS.

1. En la consola de Amazon RDS, cree una nueva suscripción a eventos. Establezca **Destino** en el ARN y, a continuación, seleccione el tema de SNS que creó anteriormente. Establezca **Tipo de origen** y **Categorías de eventos que incluir** según sus requisitos. Para más información, consulte [Suscripción a la notificación de eventos de Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Subscribing.html) en la documentación de Amazon RDS.

# Registros de la base de datos
<a name="database-logs"></a>

Las bases de datos de MySQL y MariaDB generan registros a los que puede acceder para hacer auditorías y solucionar problemas. Estos registros son:
+ [Auditoría](https://mariadb.com/kb/en/mariadb-audit-plugin-log-format/): el registro de auditoría es un conjunto de registros que registran la actividad del servidor. Para cada sesión de cliente, registra quién se conectó al servidor (nombre de usuario y host), qué consultas se ejecutaron, a qué tablas se accedió y qué variables del servidor se cambiaron.
+ [Error](https://dev.mysql.com/doc/refman/8.0/en/error-log.html): este registro contiene las horas de inicio y apagado del servidor (`mysqld`) y los mensajes de diagnóstico, como errores, advertencias y notas, producidos durante el inicio y el apagado del servidor y mientras el servidor está en ejecución.
+ [General](https://dev.mysql.com/doc/refman/8.0/en/query-log.html): este registro registra la actividad de `mysqld`, tal como la actividad de conexión y desconexión de cada cliente, así como las consultas SQL recibidas de los clientes. El registro de consultas general puede resultar muy útil cuando se sospecha que se produjo un error y se quiere saber exactamente qué envió el cliente a `mysqld`.
+ [Consulta lenta](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html): este registro proporciona un registro de las consultas SQL que tardaron mucho tiempo en llevarse a cabo.

Como práctica recomendada, debe [publicar los registros de bases de datos de Amazon RDS en Registros de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.UploadtoCloudWatch.html). Con Registros de CloudWatch puede hacer análisis de los datos del registro en tiempo real, guardarlos en un almacenamiento de larga duración y administrarlos con el agente de Registros de CloudWatch. Puede [acceder a los registros de la base de datos y verlos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.Watching.html) desde la consola de Amazon RDS. También puede utilizar Información de registros de CloudWatch para buscar y analizar de forma interactiva los datos de registros en Registros de CloudWatch. El siguiente ejemplo ilustra una consulta en el registro de auditoría que verifica cuántas veces aparecen los eventos `CONNECT` en el registro, quién se conectó y desde qué cliente (dirección IP) se conectó. El extracto del registro de auditoría podría tener el aspecto siguiente:

```
20221201 14:07:05,ip-10-22-1-51,rdsadmin,localhost,821,0,CONNECT,,,0,SOCKET
20221201 14:07:05,ip-10-22-1-51,rdsadmin,localhost,821,0,DISCONNECT,,,0,SOCKET
20221201 14:12:20,ip-10-22-1-51,rdsadmin,localhost,822,0,CONNECT,,,0,SOCKET
20221201 14:12:20,ip-10-22-1-51,rdsadmin,localhost,822,0,DISCONNECT,,,0,SOCKET
20221201 14:17:35,ip-10-22-1-51,rdsadmin,localhost,823,0,CONNECT,,,0,SOCKET
20221201 14:17:35,ip-10-22-1-51,rdsadmin,localhost,823,0,DISCONNECT,,,0,SOCKET
20221201 14:22:50,ip-10-22-1-51,rdsadmin,localhost,824,0,CONNECT,,,0,SOCKET
20221201 14:22:50,ip-10-22-1-51,rdsadmin,localhost,824,0,DISCONNECT,,,0,SOCKET
```

La consulta de ejemplo de Información de registros muestra que `rdsadmin` se conectó a la base de datos de `localhost` cada 5 minutos, un total de 22 veces, como se muestra en la ilustración siguiente. Estos resultados indican que la actividad se originó a partir de los procesos internos de Amazon RDS, como el propio sistema de supervisión.

![\[Informe de Información de registros\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/log-insights.png)


Los eventos de registro suelen incluir mensajes importantes que es conveniente tener en cuenta, como advertencias o errores sobre las operaciones asociadas a las instancias de bases de datos de MySQL y MariaDB. Por ejemplo, si una operación falla, puede producirse un error y registrarse en el archivo de registro de errores de la siguiente manera: `ERROR 1114 (HY000): The table zip_codes is full`. Es posible que quiera supervisar estas entradas para comprender la evolución de los errores. Puede [crear métricas personalizadas de CloudWatch a partir de los registros de Amazon RDS mediante filtros](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CreateMetricFilterProcedure.html) que permiten supervisar de manera automática los registros de la base de datos de Amazon RDS, supervisar un registro específico para detectar patrones específicos y generar una alarma si se producen infracciones del comportamiento esperado. [Por ejemplo](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CountOccurrencesExample.html), cree un filtro de métricas para el grupo de registros `/aws/rds/instance/database-1/error` que supervise el registro de errores y busque el [patrón específico](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html), como `ERROR`. Establezca **Patrón de filtro** en `ERROR` y **Valor de métricas** en`1`. El filtro detectará todos los registros que contengan la palabra clave `ERROR` y aumentará el recuento en 1 por cada evento de registro que contenga la palabra “ERROR”. Después de crear el filtro, puede establecer una alarma para que le notifique en caso de que se detecten errores en el registro de errores de MySQL o MariaDB.

Para más información sobre la supervisión del registro de consultas y los registros de errores lentos mediante la creación de un panel de CloudWatch y mediante Información de registros de CloudWatch, consulte la publicación de blog [Creación de un panel de Amazon CloudWatch para supervisar Amazon RDS y Amazon Aurora MySQL](https://aws.amazon.com/blogs/database/creating-an-amazon-cloudwatch-dashboard-to-monitor-amazon-rds-and-amazon-aurora-mysql/).

# Registros de seguimiento de auditoría
<a name="audit-trails"></a>

El registro de auditoría proporciona un registro cronológico y relevante para la seguridad de los eventos que se producen en su Cuenta de AWS. Incluye eventos para Amazon RDS que proporcionan pruebas documentales de la secuencia de actividades que afectaron a la base de datos o al entorno de nube. En Amazon RDS para MySQL o MariaDB, el uso del registro de auditoría implica:
+ Supervisión del registro de auditoría de la instancia de bases de datos
+ Supervisión de las llamadas a la API de Amazon RDS en AWS CloudTrail

En el caso de una instancia de bases de datos de Amazon RDS, los objetivos de la auditoría suelen incluir lo siguiente:
+ Habilitar la responsabilidad de lo siguiente:
  + Modificaciones hechas en el parámetro o la configuración de seguridad
  + Acciones hechas en un esquema, tabla o fila de una base de datos, o acciones que afectan a un contenido específico
+ Detección e investigación de intrusiones
+ Detección e investigación de actividades sospechosas
+ Detección de problemas de autorización, por ejemplo, para identificar abusos en los derechos de acceso por parte de usuarios habituales o con privilegios

El registro de auditoría de la base de datos intenta responder a estas preguntas típicas: *¿Quién vio o modificó la información confidencial de la base de datos? ¿Cuándo sucedió esto? ¿Desde dónde accedió un usuario específico a los datos? ¿Los usuarios privilegiados abusaron de sus derechos de acceso ilimitado?*

MySQL y MariaDB implementan la característica de registro de auditoría de la instancia de bases de datos mediante el complemento de auditoría de MariaDB. Este complemento registra la actividad de la base de datos, como el registro de los usuarios en la base de datos y las consultas que se ejecutan en la base de datos. El registro de la actividad de la base de datos se almacena en un archivo de registro. Para acceder al registro de auditoría, la instancia de base de datos debe usar un grupo de opciones personalizado con la opción `MARIADB_AUDIT_PLUGIN`. Para más información, consulte [Compatibilidad del complemento de auditoría de MariaDB para MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html) en la documentación de Amazon RDS. Las entradas del registro de auditoría se almacenan en un formato específico, según lo define el complemento. Puede encontrar más detalles acerca del formato del registro de auditoría en la [documentación del servidor de MariaDB](https://mariadb.com/kb/en/mariadb-audit-plugin-log-format/).

El registro de auditoría de Nube de AWS para su cuenta de AWS se proporciona mediante el servicio [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). CloudTrail captura las llamadas a la API de Amazon RDS como eventos. Todas las acciones de Amazon RDS se registran. CloudTrail proporciona un registro de las acciones en Amazon RDS que hace un usuario, un rol u otro servicio de AWS. Los eventos incluyen las acciones llevadas a cabo en la Consola de administración de AWS, la AWS CLI y los SDK y API de AWS

## Ejemplo
<a name="example"></a>

En un escenario de una auditoría típica, es posible que tenga que combinar los registros de AWS CloudTrail con el registro de auditoría de la base de datos y la supervisión de eventos de Amazon RDS. Por ejemplo, podría tener un escenario en el que los parámetros de la base de datos de la instancia de bases de datos de Amazon RDS (por ejemplo `database-1`) se hayan modificado y la tarea consista en identificar quién hizo la modificación, qué se cambió y cuándo se produjo el cambio.

Para llevar a cabo la tarea, haga esto:

1. Enumere los eventos de Amazon RDS que se produjeron en la instancia de base de datos `database-1` y determine si hay algún evento en la categoría `configuration change` que contiene el mensaje `Finished updating DB parameter group`.

   ```
   $ aws rds describe-events --source-identifier database-1 --source-type db-instance
   {
       "Events": [
           {
               "SourceIdentifier": "database-1",
               "SourceType": "db-instance",
               "Message": "Finished updating DB parameter group",
               "EventCategories": [
                   "configuration change"
               ],
               "Date": "2022-12-01T09:22:40.413000+00:00",
               "SourceArn": "arn:aws:rds:eu-west-3:111122223333:db:database-1"
           }
       ]
   }
   ```

1. Identifique el grupo de parámetros de base de datos que utiliza la instancia de base de datos:

   ```
   $ aws rds describe-db-instances --db-instance-identifier database-1 --query 'DBInstances[*].[DBInstanceIdentifier,Engine,DBParameterGroups]'
   [
       [
           "database-1",
           "mariadb",
           [
               {
                   "DBParameterGroupName": "mariadb10-6-test",
                   "ParameterApplyStatus": "pending-reboot"
               }
           ]
       ]
   ]
   ```

1. [Utilice la AWS CLI para buscar los eventos de CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-cli.html) en la región en la que se implementó `database-1`, en el periodo cercano al evento de Amazon RDS detectado en el paso 1 y donde `EventName=ModifyDBParameterGroup`.

   ```
   $ aws cloudtrail --region eu-west-3 lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=ModifyDBParameterGroup --start-time "2022-12-01, 09:00 AM" --end-time "2022-12-01, 09:30 AM"    
   
   {
       "eventVersion": "1.08",
       "userIdentity": {
           "accountId": "111122223333",
           "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
           "sessionContext": {
               "sessionIssuer": {
                   "type": "Role",
                   "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                   "arn": "arn:aws:iam::111122223333:role/Role1",
                   "accountId": "111122223333",
                   "userName": "User1"
               }
           }
       },
       "eventTime": "2022-12-01T09:18:19Z",
       "eventSource": "rds.amazonaws.com",
       "eventName": "ModifyDBParameterGroup",
       "awsRegion": "eu-west-3",
       "sourceIPAddress": "AWS Internal",
       "userAgent": "AWS Internal",
       "requestParameters": {
           "parameters": [
               {
                   "isModifiable": false,
                   "applyMethod": "pending-reboot",
                   "parameterName": "innodb_log_buffer_size",
                   "parameterValue": "8388612"
               },
               {
                   "isModifiable": false,
                   "applyMethod": "pending-reboot",
                   "parameterName": "innodb_write_io_threads",
                   "parameterValue": "8"
               }
           ],
           "dBParameterGroupName": "mariadb10-6-test"
       },
       "responseElements": {
           "dBParameterGroupName": "mariadb10-6-test"
       },
       "requestID": "fdf19353-de72-4d3d-bf29-751f375b6378",
       "eventID": "0bba7484-0e46-4e71-93a8-bd01ca8386fe",
       "eventType": "AwsApiCall",
       "managementEvent": true,
       "recipientAccountId": "111122223333",
       "eventCategory": "Management",
       "sessionCredentialFromConsole": "true"
   }
   ```

El evento de CloudTrail revela que `User1` con el rol `Role1` de la cuenta de AWS 111122223333 modificó el grupo de parámetros de base de datos `mariadb10-6-test`, que utilizaba la instancia de bases de datos `database-1` en `2022-12-01 at 09:18:19 h`. Se modificaron dos parámetros y se establecieron en los siguientes valores:
+ `innodb_log_buffer_size = 8388612`
+ `innodb_write_io_threads = 8`

## Características adicionales de CloudTrail y Registros de CloudWatch
<a name="additional-features"></a>

Puede resolver los problemas operativos y los incidentes de seguridad durante los últimos 90 días con **Historial de eventos** en la consola de CloudTrail. Para ampliar el periodo de retención y aprovechar las funcionalidades de consulta adicionales, puede utilizar [AWS CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html). Con AWS CloudTrail Lake, puede conservar los datos de los eventos en un almacén de datos de eventos durante hasta siete años. Además, el servicio admite consultas SQL complejas que ofrecen una vista más detallada y personalizable de los eventos que las vistas proporcionadas por las búsquedas de clave-valor sencillas en **Historial de eventos**.

Para supervisar los registros de auditoría, configurar las alarmas y recibir las notificaciones cuando se produzca una actividad específica, debe [configurar CloudTrail para que envíe sus registros de seguimiento a Registros de CloudWatch](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html). Después de almacenar los registros de seguimiento como Registros de CloudWatch, puede definir los filtros de las métricas para evaluar los eventos de registro para que coincidan con los términos, las frases o los valores, y asignar métricas a los filtros de las métricas. Además, puede crear alarmas de CloudWatch que se generan de acuerdo con los umbrales y los periodos especificados. Por ejemplo, puede configurar alarmas que envíen notificaciones a los equipos responsables, para que puedan tomar las medidas adecuadas. También puede configurar CloudWatch para que realice de forma automática una acción en respuesta a una alarma.