

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Acara, log, dan jejak audit
<a name="events-logs-audit"></a>

Memantau [metrik instans DB](db-instance-monitoring.md) dan [metrik OS](os-monitoring.md), menganalisis tren dan membandingkan metrik dengan nilai dasar, dan menghasilkan peringatan saat nilai melanggar ambang batas yang ditentukan semuanya diperlukan dan praktik terbaik yang membantu Anda mencapai dan mempertahankan keandalan, ketersediaan, kinerja, dan keamanan instans Amazon RDS DB Anda. Namun, solusi lengkap juga harus memantau peristiwa database, file log, dan jejak audit database MySQL dan MariaDB.

**Bagian**
+ [Acara Amazon RDS](rds-events.md)
+ [Log basis data](database-logs.md)
+ [Jejak audit](audit-trails.md)

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

*Acara *Amazon* RDS* menunjukkan perubahan di lingkungan Amazon RDS. Misalnya, ketika status instans DB berubah dari *Mulai* ke *Tersedia*, Amazon RDS menghasilkan acara`RDS-EVENT-0088 The DB instance has been started`. Amazon RDS mengirimkan acara ke Amazon EventBridge dalam waktu dekat. Anda dapat mengakses peristiwa melalui konsol Amazon RDS, AWS CLI perintah [describe-events](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/describe-events.html), atau operasi Amazon RDS API. [DescribeEvents](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html) Ilustrasi layar berikut menunjukkan peristiwa dan log yang ditampilkan di konsol Amazon RDS.

![\[Alarm, peristiwa, dan log ditampilkan di konsol Amazon RDS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/alarms-events-logs-rds-console.png)


Amazon RDS memancarkan berbagai jenis peristiwa, termasuk peristiwa instans DB, peristiwa grup parameter DB, peristiwa grup keamanan DB, peristiwa snapshot DB, peristiwa Proxy RDS, dan peristiwa penerapan biru/hijau. Informasi tersebut meliputi:
+ Nama sumber dan jenis sumber; misalnya: `"SourceIdentifier": "database-1", "SourceType": "db-instance"`
+ Tanggal dan waktu acara; misalnya: `"Date": "2022-12-01T09:20:28.595000+00:00"`
+ Pesan yang terkait dengan acara; misalnya: `"Message": "Finished updating DB parameter group"`
+ Kategori acara; misalnya: `"EventCategories": ["configuration change"]`

Untuk referensi lengkap, lihat [kategori acara Amazon RDS dan pesan peristiwa](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html) dalam dokumentasi Amazon RDS.

Sebaiknya Anda memantau peristiwa Amazon RDS, karena peristiwa ini menunjukkan perubahan status dalam ketersediaan instans DB, perubahan konfigurasi, perubahan status replika baca, peristiwa pencadangan dan pemulihan, tindakan failover, peristiwa kegagalan, modifikasi grup keamanan, dan banyak pemberitahuan lainnya. Misalnya, jika Anda telah menyiapkan instans DB replika baca untuk memberikan peningkatan kinerja dan daya tahan bagi database Anda, sebaiknya Anda memantau peristiwa Amazon RDS untuk kategori peristiwa *replika baca yang* terkait dengan instans DB. Ini karena peristiwa seperti `RDS-EVENT-0057 Replication on the read replica was terminated` menunjukkan bahwa replika baca Anda tidak lagi disinkronkan dengan instans DB utama. Pemberitahuan kepada tim yang bertanggung jawab bahwa peristiwa semacam itu telah terjadi dapat membantu mitigasi masalah secara tepat waktu. Amazon EventBridge dan tambahan Layanan AWS AWS Lambda, seperti Amazon Simple Queue Service (Amazon SQS), dan Amazon Simple Notification Service (Amazon SNS), dapat membantu Anda mengotomatiskan respons terhadap peristiwa sistem seperti masalah ketersediaan database atau perubahan sumber daya.

Di konsol Amazon RDS, Anda dapat mengambil acara dari 24 jam terakhir. Jika Anda menggunakan AWS CLI atau Amazon RDS API untuk melihat peristiwa, Anda dapat mengambil peristiwa dari 14 hari terakhir dengan menggunakan **perintah deskripsikan** peristiwa sebagai berikut.

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

Jika Anda ingin menyimpan peristiwa untuk jangka panjang, baik sampai periode kedaluwarsa yang ditentukan atau secara permanen, Anda dapat menggunakan [CloudWatch Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) untuk mencatat informasi tentang peristiwa yang dihasilkan oleh Amazon RDS. Untuk menerapkan solusi ini, Anda dapat menggunakan topik Amazon SNS untuk menerima pemberitahuan peristiwa Amazon RDS dan kemudian memanggil fungsi Lambda untuk mencatat peristiwa di Log. CloudWatch 

1. Buat fungsi Lambda yang akan dipanggil pada acara dan log informasi dari acara ke CloudWatch Log. CloudWatch Log terintegrasi dengan Lambda dan menyediakan cara mudah untuk mencatat informasi peristiwa, dengan menggunakan fungsi **cetak** untuk. `stdout`

1. Buat topik SNS dengan berlangganan fungsi Lambda (**atur** Protokol ke Lambda), dan atur **Titik Akhir** ke Nama Sumber Daya Amazon (ARN) dari fungsi Lambda yang Anda buat pada langkah sebelumnya.

1. Konfigurasikan topik SNS Anda untuk menerima pemberitahuan acara Amazon RDS. Untuk petunjuk terperinci, lihat [artikel AWS re:Post](https://repost.aws/knowledge-center/sns-topics-rds-notifications) tentang cara mendapatkan topik Amazon SNS Anda untuk menerima pemberitahuan Amazon RDS.

1. Di konsol Amazon RDS, buat langganan acara baru. Tetapkan **Target** ke ARN, lalu pilih topik SNS yang sebelumnya Anda buat. Tetapkan **jenis Sumber** dan **kategori Acara untuk disertakan** sesuai dengan kebutuhan Anda. Untuk informasi selengkapnya, lihat [Berlangganan notifikasi peristiwa Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Subscribing.html) di dokumentasi Amazon RDS.

# Mencatat Basis Data
<a name="database-logs"></a>

Database MySQL dan MariaDB menghasilkan log yang dapat Anda akses untuk audit dan pemecahan masalah. Log tersebut adalah:
+ [Audit](https://mariadb.com/kb/en/mariadb-audit-plugin-log-format/) — Jejak audit adalah seperangkat catatan yang mencatat aktivitas server. Untuk setiap sesi klien, ia mencatat siapa yang terhubung ke server (nama pengguna dan host), kueri mana yang dijalankan, tabel mana yang diakses, dan variabel server mana yang diubah.
+ [Kesalahan](https://dev.mysql.com/doc/refman/8.0/en/error-log.html) — Log ini berisi waktu startup dan shutdown server (`mysqld`), dan pesan diagnostik seperti kesalahan, peringatan, dan catatan yang terjadi selama startup dan shutdown server, dan saat server sedang berjalan.
+ [Umum](https://dev.mysql.com/doc/refman/8.0/en/query-log.html) — Log ini mencatat aktivitas`mysqld`, termasuk aktivitas koneksi dan pemutusan untuk setiap klien, dan kueri SQL yang diterima dari klien. Log kueri umum bisa sangat berguna ketika Anda mencurigai adanya kesalahan dan ingin tahu persis apa yang dikirim klien`mysqld`.
+ [Kueri lambat](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html) — Log ini menyediakan catatan kueri SQL yang membutuhkan waktu lama untuk dilakukan.

Sebagai praktik terbaik, Anda harus [mempublikasikan log database dari Amazon RDS ke Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.UploadtoCloudWatch.html). Dengan CloudWatch Log, Anda dapat melakukan analisis real-time dari data log, menyimpan data dalam penyimpanan yang sangat tahan lama, dan mengelola data dengan agen CloudWatch Log. Anda dapat [mengakses dan menonton log database Anda](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.Watching.html) dari konsol Amazon RDS. Anda juga dapat menggunakan Wawasan CloudWatch Log untuk secara interaktif mencari dan menganalisis data log Anda di CloudWatch Log. Contoh berikut menggambarkan kueri pada log audit yang memeriksa berapa kali `CONNECT` peristiwa muncul di log, siapa yang terhubung, dan klien mana (alamat IP) mereka terhubung. Kutipan dari log audit bisa terlihat seperti ini:

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

Contoh kueri Log Insights menunjukkan bahwa `rdsadmin` terhubung ke database dari `localhost` setiap 5 menit, dengan total 22 kali, seperti yang ditunjukkan pada ilustrasi berikut. Hasil ini menunjukkan bahwa aktivitas tersebut berasal dari proses internal Amazon RDS seperti sistem pemantauan itu sendiri.

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


Peristiwa log sering menyertakan pesan penting yang ingin Anda hitung, seperti peringatan atau kesalahan tentang operasi yang terkait dengan instance MySQL dan MariaDB DB. Misalnya, jika operasi gagal, kesalahan dapat terjadi dan dicatat ke file log kesalahan sebagai berikut:`ERROR 1114 (HY000): The table zip_codes is full`. Anda mungkin ingin memantau entri ini untuk memahami tren kesalahan Anda. Anda dapat [membuat CloudWatch metrik kustom dari log Amazon RDS dengan menggunakan filter](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CreateMetricFilterProcedure.html) untuk mengaktifkan pemantauan otomatis log database Amazon RDS untuk memantau log tertentu untuk pola tertentu, dan untuk menghasilkan alarm jika ada pelanggaran perilaku yang diharapkan. [Misalnya](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CountOccurrencesExample.html), buat filter metrik untuk grup log `/aws/rds/instance/database-1/error` yang akan memantau log kesalahan dan mencari [pola tertentu](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html), seperti`ERROR`. Atur **Pola Filter** ke `ERROR` dan **Nilai Metrik** ke`1`. Filter akan mendeteksi setiap catatan log yang memiliki kata kunci`ERROR`, dan itu akan menambah hitungan sebesar 1 untuk setiap peristiwa log yang berisi “ERROR”. Setelah Anda membuat filter, Anda dapat mengatur alarm untuk memberi tahu Anda jika kesalahan terdeteksi di log kesalahan MySQL atau MariaDB.

Untuk mempelajari lebih lanjut tentang memantau log kueri lambat dan log kesalahan dengan membuat CloudWatch dasbor dan menggunakan Wawasan CloudWatch Log, lihat posting blog [Membuat CloudWatch dasbor Amazon untuk memantau Amazon RDS dan Amazon Aurora](https://aws.amazon.com/blogs/database/creating-an-amazon-cloudwatch-dashboard-to-monitor-amazon-rds-and-amazon-aurora-mysql/) MySQL.

# Jejak audit
<a name="audit-trails"></a>

Jejak audit (atau log audit) menyediakan catatan kronologis peristiwa yang relevan dengan keamanan di Anda. Akun AWS Ini mencakup acara untuk Amazon RDS, yang memberikan bukti dokumenter tentang urutan aktivitas yang memengaruhi basis data atau lingkungan cloud Anda. Di Amazon RDS untuk MySQL atau MariaDB, menggunakan jejak audit melibatkan:
+ Memantau log audit instans DB
+ Memantau panggilan Amazon RDS API di AWS CloudTrail

Untuk instans Amazon RDS DB, tujuan audit biasanya meliputi:
+ Memungkinkan akuntabilitas untuk hal-hal berikut:
  + Modifikasi dilakukan pada parameter atau konfigurasi keamanan
  + Tindakan yang dilakukan dalam skema database, tabel, atau baris, atau tindakan yang memengaruhi konten tertentu
+ Deteksi dan investigasi intrusi
+ Deteksi dan investigasi aktivitas mencurigakan
+ Deteksi masalah otorisasi; misalnya, untuk mengidentifikasi pelanggaran hak akses oleh pengguna reguler atau istimewa

Jejak audit database mencoba menjawab pertanyaan-pertanyaan umum ini: *Siapa yang melihat atau memodifikasi data sensitif di dalam database Anda? Kapan ini terjadi? Dari mana pengguna tertentu mengakses data? Apakah pengguna istimewa menyalahgunakan hak akses tak terbatas mereka?*

Baik MySQL dan MariaDB mengimplementasikan fitur jejak audit instans DB dengan menggunakan Plugin Audit MariaDB. Plugin ini mencatat aktivitas database seperti pengguna yang masuk ke database dan kueri yang berjalan terhadap database. Catatan aktivitas basis data disimpan dalam file log. Untuk mengakses log audit, instans DB harus menggunakan grup opsi kustom dengan opsi `MARIADB_AUDIT_PLUGIN`. Untuk informasi selengkapnya, lihat [dukungan Plugin Audit MariaDB untuk MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html) di dokumentasi Amazon RDS. Catatan dalam log audit disimpan dalam format tertentu, seperti yang didefinisikan oleh plugin. Anda dapat menemukan detail lebih lanjut tentang format log audit di dokumentasi [MariaDB Server](https://mariadb.com/kb/en/mariadb-audit-plugin-log-format/).

Jejak AWS Cloud audit untuk AWS akun Anda disediakan oleh [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)layanan. CloudTrail menangkap panggilan API untuk Amazon RDS sebagai peristiwa. Semua tindakan Amazon RDS dicatat. CloudTrail menyediakan catatan tindakan di Amazon RDS yang dilakukan oleh pengguna, peran, atau AWS layanan lain. Peristiwa mencakup tindakan yang diambil di Konsol AWS Manajemen AWS CLI, dan AWS SDKs dan APIs.

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

Dalam skenario audit biasa, Anda mungkin perlu menggabungkan AWS CloudTrail jejak dengan log audit database dan pemantauan peristiwa Amazon RDS. Misalnya, Anda mungkin memiliki skenario di mana parameter database instans Amazon RDS DB Anda (misalnya,`database-1`) telah dimodifikasi dan tugas Anda adalah mengidentifikasi siapa yang melakukan modifikasi, apa yang diubah, dan kapan perubahan itu terjadi.

Untuk menyelesaikan tugas, ikuti langkah-langkah ini:

1. Buat daftar peristiwa Amazon RDS yang terjadi pada instance database `database-1` dan tentukan apakah ada peristiwa dalam kategori `configuration change` yang memiliki pesan`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. Identifikasi grup parameter DB mana yang digunakan instans 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. [Gunakan AWS CLI untuk mencari CloudTrail peristiwa](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-cli.html) di Wilayah tempat `database-1` dikerahkan, dalam periode waktu sekitar peristiwa Amazon RDS yang ditemukan di langkah 1, dan di mana. `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"
   }
   ```

 CloudTrail Acara tersebut mengungkapkan bahwa `User1` dengan peran `Role1` dari AWS akun 111122223333 memodifikasi grup parameter DB`mariadb10-6-test`, yang digunakan oleh instans DB pada. `database-1` `2022-12-01 at 09:18:19 h` Dua parameter dimodifikasi dan diatur ke nilai berikut:
+ `innodb_log_buffer_size = 8388612`
+ `innodb_write_io_threads = 8`

## Fitur tambahan CloudTrail dan CloudWatch Log
<a name="additional-features"></a>

Anda dapat memecahkan masalah insiden operasional dan keamanan selama 90 hari terakhir dengan melihat **riwayat Acara di konsol**. CloudTrail Untuk memperpanjang periode retensi dan memanfaatkan kemampuan kueri tambahan, Anda dapat menggunakan [AWS CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html). Dengan AWS CloudTrail Lake, Anda dapat menyimpan data acara di penyimpanan data acara hingga tujuh tahun. **Selain itu, layanan ini mendukung kueri SQL kompleks yang menawarkan tampilan peristiwa yang lebih dalam dan lebih dapat disesuaikan daripada tampilan yang disediakan oleh pencarian nilai kunci sederhana dalam riwayat Acara.**

Untuk memantau jejak audit, mengatur alarm, dan mendapatkan notifikasi saat aktivitas tertentu terjadi, Anda perlu [mengonfigurasi untuk mengirim catatan jejaknya CloudTrail ke](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html) Log. CloudWatch Setelah catatan jejak disimpan sebagai CloudWatch Log, Anda dapat menentukan filter metrik untuk mengevaluasi peristiwa log agar sesuai dengan istilah, frasa, atau nilai, dan menetapkan metrik ke filter metrik. Selanjutnya, Anda dapat membuat CloudWatch alarm yang dihasilkan sesuai dengan ambang batas dan periode waktu yang Anda tentukan. Misalnya, Anda dapat mengonfigurasi alarm yang mengirim pemberitahuan ke tim yang bertanggung jawab, sehingga mereka dapat mengambil tindakan yang sesuai. Anda juga dapat mengonfigurasi CloudWatch untuk secara otomatis melakukan tindakan sebagai respons terhadap alarm.