

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Eventi, registri e percorsi di controllo
<a name="events-logs-audit"></a>

Il monitoraggio dei [parametri delle istanze DB](db-instance-monitoring.md) e dei [parametri del sistema operativo](os-monitoring.md), l'analisi delle tendenze e il confronto dei parametri con i valori di base e la generazione di avvisi quando i valori superano le soglie definite sono tutte pratiche necessarie e ottimali che ti aiutano a raggiungere e mantenere l'affidabilità, la disponibilità, le prestazioni e la sicurezza delle tue istanze database Amazon RDS. Tuttavia, una soluzione completa deve monitorare anche gli eventi del database, i file di registro e gli audit trail dei database MySQL e MariadB.

**Sections**
+ [Eventi Amazon RDS](rds-events.md)
+ [Registri del database](database-logs.md)
+ [Percorsi di controllo](audit-trails.md)

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

Un *evento *Amazon* RDS* indica una modifica nell'ambiente Amazon RDS. Ad esempio, quando lo stato dell'istanza DB cambia da *Starting a *Available**, Amazon RDS genera l'evento`RDS-EVENT-0088 The DB instance has been started`. Amazon RDS offre eventi ad Amazon quasi EventBridge in tempo reale. Puoi accedere agli eventi tramite la console Amazon RDS, il AWS CLI comando [describe-events](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/describe-events.html) o l'operazione dell'API Amazon RDS. [DescribeEvents](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html) La seguente illustrazione della schermata mostra gli eventi e i log visualizzati sulla console Amazon RDS.

![\[Allarmi, eventi e registri visualizzati sulla console Amazon RDS\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/alarms-events-logs-rds-console.png)


Amazon RDS emette diversi tipi di eventi, tra cui eventi di istanze DB, eventi di gruppi di parametri DB, eventi di gruppi di sicurezza DB, eventi snapshot DB, eventi proxy RDS ed eventi di distribuzione blu/verde. Le informazioni includono:
+ Nome e tipo di fonte, ad esempio: `"SourceIdentifier": "database-1", "SourceType": "db-instance"`
+ Data e ora dell'evento, ad esempio: `"Date": "2022-12-01T09:20:28.595000+00:00"`
+ Messaggio associato all'evento, ad esempio: `"Message": "Finished updating DB parameter group"`
+ Categoria di evento, ad esempio: `"EventCategories": ["configuration change"]`

Per un riferimento completo, consulta [le categorie di eventi e i messaggi di eventi di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html) nella documentazione di Amazon RDS.

Ti consigliamo di monitorare gli eventi di Amazon RDS, poiché questi eventi indicano cambiamenti di stato nella disponibilità delle istanze DB, modifiche alla configurazione, modifiche allo stato della replica di lettura, eventi di backup e ripristino, azioni di failover, eventi di errore, modifiche ai gruppi di sicurezza e molte altre notifiche. Ad esempio, se hai configurato un'istanza DB di replica di lettura per fornire prestazioni e durabilità migliorate per il tuo database, ti consigliamo di monitorare gli eventi di Amazon RDS per la categoria di eventi di *replica di lettura* associata alle istanze DB. Questo perché eventi come quelli `RDS-EVENT-0057 Replication on the read replica was terminated` indicano che la replica di lettura non si sincronizza più con l'istanza DB principale. Una notifica al team responsabile dell'avvenuto evento potrebbe aiutare a mitigare tempestivamente il problema. Amazon EventBridge e altri Servizi AWS AWS Lambda, come Amazon Simple Queue Service (Amazon SQS) e Amazon Simple Notification Service (Amazon SNS), possono aiutarti ad automatizzare le risposte a eventi di sistema come problemi di disponibilità del database o modifiche delle risorse.

Sulla console Amazon RDS, puoi recuperare gli eventi delle ultime 24 ore. Se utilizzi l'API Amazon RDS AWS CLI o l'API Amazon RDS per visualizzare gli eventi, puoi recuperare gli eventi degli ultimi 14 giorni utilizzando il comando **describe-events** come segue.

```
$ 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"
        }
    ]
}
```

Se desideri archiviare eventi a lungo termine, fino al periodo di scadenza specificato o in modo permanente, puoi utilizzare [CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) per registrare le informazioni sugli eventi generati da Amazon RDS. Per implementare questa soluzione, puoi utilizzare un argomento Amazon SNS per ricevere notifiche di eventi Amazon RDS e quindi chiamare una funzione Lambda per registrare l'evento nei log. CloudWatch 

1. Crea una funzione Lambda che verrà chiamata sull'evento e registra le informazioni dall'evento in Logs. CloudWatch CloudWatch Logs è integrato con Lambda e offre un modo pratico per registrare le informazioni sugli eventi, utilizzando **la** funzione print to. `stdout`

1. Crea un argomento SNS con un abbonamento a una funzione Lambda (**imposta** Protocol to Lambda) e imposta l'**endpoint** sull'Amazon Resource Name (ARN) della funzione Lambda che hai creato nel passaggio precedente.

1. Configura il tuo argomento SNS per ricevere notifiche sugli eventi di Amazon RDS. Per istruzioni dettagliate, consulta l'[articolo di AWS re:POST](https://repost.aws/knowledge-center/sns-topics-rds-notifications) su come far sì che il tuo argomento Amazon SNS riceva notifiche Amazon RDS.

1. Sulla console Amazon RDS, crea un nuovo abbonamento all'evento. Imposta **Target** sull'ARN, quindi seleziona l'argomento SNS che hai creato in precedenza. Imposta il **tipo di sorgente** e **le categorie di eventi da includere** in base alle tue esigenze. Per ulteriori informazioni, consulta [Sottoscrizione alla notifica degli eventi di Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Subscribing.html) nella documentazione di Amazon RDS.

# Log di database
<a name="database-logs"></a>

I database MySQL e MariadB generano log a cui è possibile accedere per il controllo e la risoluzione dei problemi. Questi registri sono:
+ [Audit](https://mariadb.com/kb/en/mariadb-audit-plugin-log-format/): l'audit trail è un insieme di record che registrano l'attività del server. Per ogni sessione client, registra chi si è connesso al server (nome utente e host), quali query sono state eseguite, a quali tabelle è stato effettuato l'accesso e quali variabili del server sono state modificate.
+ [Errore](https://dev.mysql.com/doc/refman/8.0/en/error-log.html): questo registro contiene gli orari di avvio e spegnimento del server (`mysqld`) e messaggi di diagnostica come errori, avvisi e note che si verificano durante l'avvio e l'arresto del server e mentre il server è in esecuzione.
+ [Generale](https://dev.mysql.com/doc/refman/8.0/en/query-log.html): questo registro registra l'attività di`mysqld`, inclusa l'attività di connessione e disconnessione per ogni client, e le query SQL ricevute dai client. Il registro generale delle interrogazioni può essere molto utile quando si sospetta un errore e si desidera sapere esattamente a cosa è stato inviato il client. `mysqld`
+ [Interrogazione lenta](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html): questo registro fornisce un record delle query SQL che hanno richiesto molto tempo per essere eseguite.

Come best practice, dovresti [pubblicare i log del database da Amazon RDS ad Amazon Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.UploadtoCloudWatch.html). CloudWatch Con CloudWatch Logs, puoi eseguire analisi in tempo reale dei dati di log, archiviarli in uno storage altamente durevole e gestirli con l'agente Logs. CloudWatch Puoi [accedere e guardare i log del tuo database](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.Watching.html) dalla console Amazon RDS. Puoi anche utilizzare CloudWatch Logs Insights per cercare e analizzare in modo interattivo i dati di log in Logs. CloudWatch L'esempio seguente illustra una query sul registro di controllo che verifica quante volte `CONNECT` gli eventi vengono visualizzati nel registro, chi si è connesso e da quale client (indirizzo IP) si è connesso. L'estratto del registro di controllo potrebbe avere il seguente aspetto:

```
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
```

L'esempio di query di Log Insights mostra la `rdsadmin` connessione al database `localhost` ogni 5 minuti, per un totale di 22 volte, come illustrato nella figura seguente. Questi risultati indicano che l'attività ha avuto origine da processi interni di Amazon RDS come il sistema di monitoraggio stesso.

![\[Rapporto Log Insights\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/log-insights.png)


Gli eventi di registro spesso includono messaggi importanti che si desidera contare, come avvisi o errori relativi alle operazioni associate alle istanze DB MySQL e MariadB. Ad esempio, se un'operazione fallisce, può verificarsi un errore che viene registrato nel file di registro degli errori come segue:. `ERROR 1114 (HY000): The table zip_codes is full` Potresti voler monitorare queste voci per comprendere l'andamento degli errori. Puoi [creare CloudWatch parametri personalizzati dai log di Amazon RDS utilizzando filtri](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CreateMetricFilterProcedure.html) per abilitare il monitoraggio automatico dei log del database Amazon RDS, monitorare un registro specifico per modelli specifici e generare un allarme in caso di violazioni del comportamento previsto. [Ad esempio](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CountOccurrencesExample.html)[, crea un filtro metrico per il gruppo di log in `/aws/rds/instance/database-1/error` grado di monitorare il log degli errori e cercare lo schema specifico, ad esempio.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) `ERROR` Imposta il **pattern di filtro** su `ERROR` e il **valore metrico** su. `1` Il filtro rileverà ogni record di registro contenente la parola chiave `ERROR` e incrementerà il conteggio di 1 per ogni evento di registro che contiene «ERROR». Dopo aver creato il filtro, puoi impostare un allarme per avvisarti nel caso in cui vengano rilevati errori nel registro degli errori di MySQL o MariadB.

Per ulteriori informazioni sul monitoraggio del log delle query lente e del log degli errori creando un CloudWatch dashboard e utilizzando CloudWatch Logs Insights, consulta il post del blog [Creating an Amazon CloudWatch dashboard to monitoring Amazon RDS e Amazon Aurora MySQL](https://aws.amazon.com/blogs/database/creating-an-amazon-cloudwatch-dashboard-to-monitor-amazon-rds-and-amazon-aurora-mysql/).

# Audit trail
<a name="audit-trails"></a>

L'audit trail (o registro di controllo) fornisce un registro cronologico e rilevante per la sicurezza degli eventi del tuo. Account AWS Include eventi per Amazon RDS, che forniscono prove documentali della sequenza di attività che hanno influito sul tuo database o sul tuo ambiente cloud. In Amazon RDS for MySQL o MariaDB, l'utilizzo dell'audit trail comporta:
+ Monitoraggio del log di controllo dell'istanza DB
+ Monitoraggio delle chiamate API Amazon RDS in AWS CloudTrail

Per un'istanza database Amazon RDS, gli obiettivi del controllo includono in genere:
+ Attivazione della responsabilità per quanto segue:
  + Modifiche eseguite sul parametro o sulla configurazione di sicurezza
  + Azioni eseguite in uno schema, una tabella o una riga di database o azioni che influiscono su contenuti specifici
+ Rilevamento e indagine delle intrusioni
+ Rilevamento e indagine di attività sospette
+ Individuazione di problemi di autorizzazione; ad esempio, per identificare le violazioni dei diritti di accesso da parte di utenti regolari o privilegiati

L'audit trail del database cerca di rispondere a queste domande tipiche: *chi ha visualizzato o modificato i dati sensibili all'interno del database? Quando è successo? Da dove ha avuto accesso ai dati un utente specifico? Gli utenti privilegiati hanno abusato dei loro diritti di accesso illimitati?*

Sia MySQL che MariaDB implementano la funzionalità di audit trail delle istanze DB utilizzando il MariaDB Audit Plugin. Questo plugin registra le attività del database, ad esempio gli utenti che accedono al database e le query eseguite sul database. Il record con le attività del database è archiviato in un file di log. Per accedere al log di audit, l'istanza database deve usare un gruppo di opzioni personalizzato con l'opzione `MARIADB_AUDIT_PLUGIN`. Per ulteriori informazioni, consulta il [supporto del plugin MariadB Audit per MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html) nella documentazione di Amazon RDS. I record nel registro di controllo vengono archiviati in un formato specifico, come definito dal plug-in. Puoi trovare maggiori dettagli sul formato del registro di controllo nella documentazione di [MariaDB Server](https://mariadb.com/kb/en/mariadb-audit-plugin-log-format/).

L' Cloud AWS audit trail per il tuo AWS account è fornito dal [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)servizio. CloudTrail acquisisce le chiamate API per Amazon RDS come eventi. Tutte le azioni di Amazon RDS vengono registrate. CloudTrail fornisce un registro delle azioni in Amazon RDS eseguite da un utente, un ruolo o un altro AWS servizio. Gli eventi includono le azioni intraprese nella Console di AWS gestione AWS CLI, e AWS SDKs e APIs.

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

In uno scenario di audit tipico, potrebbe essere necessario combinare gli AWS CloudTrail itinerari con il registro di controllo del database e il monitoraggio degli eventi di Amazon RDS. Ad esempio, potresti avere uno scenario in cui i parametri del database della tua istanza database Amazon RDS (ad esempio`database-1`) sono stati modificati e il tuo compito è identificare chi ha apportato la modifica, cosa è cambiato e quando è avvenuta la modifica.

Per eseguire l'operazione, segui questi passaggi:

1. Elenca gli eventi di Amazon RDS che si sono verificati all'istanza del database `database-1` e determina se esiste un evento nella categoria `configuration change` che contiene il messaggio`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. Identifica il gruppo di parametri DB utilizzato dall'istanza DB:

   ```
   $ 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. [Utilizza il AWS CLI per cercare CloudTrail eventi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-cli.html) nella regione in cui `database-1` viene distribuito, nel periodo di tempo relativo all'evento Amazon RDS scoperto nella fase 1 e dove. `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"
   }
   ```

L' CloudTrail evento rivela che `User1` con il ruolo `Role1` AWS dell'account 111122223333 ha modificato il gruppo di parametri DB`mariadb10-6-test`, utilizzato dall'istanza DB su. `database-1` `2022-12-01 at 09:18:19 h` Due parametri sono stati modificati e impostati sui seguenti valori:
+ `innodb_log_buffer_size = 8388612`
+ `innodb_write_io_threads = 8`

## Funzionalità aggiuntive CloudTrail e di CloudWatch registro
<a name="additional-features"></a>

Puoi risolvere gli incidenti operativi e di sicurezza negli ultimi 90 giorni visualizzando la **cronologia degli eventi** sulla console. CloudTrail [Per prolungare il periodo di conservazione e sfruttare le funzionalità di interrogazione aggiuntive, puoi utilizzare Lake.AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) Con AWS CloudTrail Lake, puoi conservare i dati degli eventi in un data store degli eventi per un massimo di sette anni. **Inoltre, il servizio supporta query SQL complesse che offrono una visione più approfondita e personalizzabile degli eventi rispetto alle visualizzazioni fornite dalle semplici ricerche chiave-valore nella cronologia degli eventi.**

Per monitorare gli audit trail, impostare allarmi e ricevere notifiche quando si verifica un'attività specifica, è necessario [configurare l'invio dei relativi record di trail CloudTrail a Logs](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html). CloudWatch Dopo che i record degli itinerari sono stati archiviati come CloudWatch log, puoi definire filtri metrici per valutare gli eventi di registro in modo che corrispondano a termini, frasi o valori e assegnare metriche ai filtri metrici. Inoltre, puoi creare CloudWatch allarmi generati in base a soglie e periodi di tempo specificati. Ad esempio, puoi configurare allarmi che inviano notifiche ai team responsabili, in modo che possano intraprendere le azioni appropriate. Puoi anche CloudWatch configurare l'esecuzione automatica di un'azione in risposta a un allarme.