Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengaktifkan pencatatan log kueri untuk klaster DB Aurora PostgreSQL
Anda dapat mengumpulkan informasi yang lebih mendetail tentang aktivitas basis data, termasuk kueri, kueri yang menunggu kunci, titik pemeriksaan, dan banyak detail lainnya dengan mengatur beberapa parameter yang tercantum dalam tabel berikut. Topik ini berfokus pada kueri pencatatan log.
Parameter | Default | Deskripsi |
---|---|---|
log_connections |
– |
Mencatat log setiap koneksi yang berhasil. Untuk mempelajari cara menggunakan parameter ini dengan |
log_disconnections |
– |
Mencatat log akhir setiap sesi dan durasinya. Untuk mempelajari cara menggunakan parameter ini dengan |
log_checkpoints |
— |
Tidak berlaku untuk Aurora PostgreSQL |
log_lock_waits |
– |
Mencatat log waktu tunggu kunci yang panjang. Secara default, parameter ini tidak diatur. |
log_min_duration_sample |
– |
(md) Menetapkan waktu eksekusi minimum yang jika terlampaui akan membuat sampel pernyataan dicatat. Ukuran sampel diatur menggunakan parameter log_statement_sample_rate . |
log_min_duration_statement |
– |
Setiap pernyataan SQL yang berjalan setidaknya selama periode waktu tertentu atau lebih lama akan dicatat. Secara default, parameter ini tidak diatur. Mengaktifkan parameter ini dapat membantu Anda menemukan kueri yang belum dioptimalkan. |
log_statement |
– |
Mengatur jenis pernyataan yang dicatat. Secara default, parameter ini tidak diatur, tetapi Anda dapat mengubahnya ke |
log_statement_sample_rate |
– |
Persentase pernyataan melebihi waktu yang ditentukan dalam |
log_statement_stats |
– |
Menulis statistik performa kumulatif ke log server. |
Menggunakan pencatatan log untuk menemukan kueri performa lambat
Anda dapat mencatat pernyataan dan kueri SQL untuk membantu menemukan kueri performa lambat. Anda mengaktifkan kemampuan ini dengan memodifikasi pengaturan di log_statement
dan parameter log_min_duration
seperti yang diuraikan dalam bagian ini. Sebelum mengaktifkan pencatatan log kueri untuk klaster DB Aurora PostgreSQL, Anda harus mengetahui kemungkinan eksposur kata sandi di dalam log dan cara mengurangi risiko ini. Untuk informasi selengkapnya, lihat Mengurangi risiko eksposur kata sandi saat menggunakan pencatatan log kueri.
Berikut ini, Anda dapat menemukan informasi referensi tentang parameter log_statement
dan log_min_duration
.
log_statement
Parameter ini menentukan jenis pernyataan SQL yang harus dikirim ke log. Nilai default-nya adalah none
. Jika Anda mengubah parameter ini ke all
, ddl
, atau mod
, pastikan untuk menerapkan tindakan yang disarankan untuk mengurangi risiko eksposur kata sandi di dalam log. Untuk informasi selengkapnya, lihat Mengurangi risiko eksposur kata sandi saat menggunakan pencatatan log kueri.
- all
-
Mencatat log semua pernyataan. Pengaturan ini direkomendasikan untuk tujuan debugging.
- ddl
-
Mencatat log semua pernyataan bahasa definisi data (DDL), seperti CREATE, ALTER, DROP, dan seterusnya.
- mod
-
Mencatat log semua pernyataan DDL dan pernyataan bahasa manipulasi data (DL), seperti INSERT, UPDATE, dan DELETE, yang mengubah data.
- none
-
Tidak ada pernyataan SQL yang dicatat. Kami merekomendasikan pengaturan ini untuk menghindari risiko eksposur kata sandi di dalam log.
log_min_duration_statement
Setiap pernyataan SQL yang berjalan setidaknya selama periode waktu tertentu atau lebih lama akan dicatat. Secara default, parameter ini tidak diatur. Mengaktifkan parameter ini dapat membantu Anda menemukan kueri yang belum dioptimalkan.
- –1–2147483647
-
Jumlah milidetik (md) runtime di mana pernyataan dicatat.
Untuk menyiapkan pencatatan log kueri
Langkah-langkah ini mengasumsikan bahwa klaster DB Aurora PostgreSQL Anda menggunakan grup parameter klaster kustom.
-
Atur parameter
log_statement
keall
. Contoh berikut ini menunjukkan informasi yang ditulis ke filepostgresql.log
dengan pengaturan parameter ini.2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: statement: SELECT feedback, s.sentiment,s.confidence FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s ORDER BY s.confidence DESC; 2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: QUERY STATISTICS 2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:DETAIL: ! system usage stats: ! 0.017355 s user, 0.000000 s system, 0.168593 s elapsed ! [0.025146 s user, 0.000000 s system total] ! 36644 kB max resident size ! 0/8 [0/8] filesystem blocks in/out ! 0/733 [0/1364] page faults/reclaims, 0 [0] swaps ! 0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent ! 19/0 [27/0] voluntary/involuntary context switches 2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: SELECT feedback, s.sentiment,s.confidence FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s ORDER BY s.confidence DESC; 2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:ERROR: syntax error at or near "ORDER" at character 1 2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: ORDER BY s.confidence DESC; ----------------------- END OF LOG ----------------------
-
Atur parameter
log_min_duration_statement
. Contoh berikut ini menunjukkan informasi yang ditulis ke filepostgresql.log
saat pengaturan parameter ini diatur ke1
.Kueri yang melebihi durasi yang ditentukan dalam parameter
log_min_duration_statement
dicatat. Bagian berikut menunjukkan satu contoh. Anda dapat melihat file log untuk klaster DB Aurora PostgreSQL di Konsol Amazon RDS.2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: statement: DROP table comments; 2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: duration: 167.754 ms 2022-10-05 19:08:07 UTC::@:[355]:LOG: checkpoint starting: time 2022-10-05 19:08:08 UTC::@:[355]:LOG: checkpoint complete: wrote 11 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.013 s, sync=0.006 s, total=1.033 s; sync files=8, longest=0.004 s, average=0.001 s; distance=131028 kB, estimate=131028 kB ----------------------- END OF LOG ----------------------
Mengurangi risiko eksposur kata sandi saat menggunakan pencatatan log kueri
Sebaiknya Anda tetap mengatur log_statement
ke none
agar tidak mengekspos kata sandi. Jika Anda mengatur log_statement
ke all
, ddl
, atau mod
, sebaiknya Anda mengambil satu atau beberapa langkah berikut.
-
Untuk klien, enkripsi informasi sensitif. Untuk mengetahui informasi selengkapnya, lihat Opsi Enkripsi
dalam dokumentasi PostgreSQL. Gunakan opsi ENCRYPTED
(danUNENCRYPTED
) dari pernyataanCREATE
danALTER
. Untuk mengetahui informasi selengkapnya, lihat CREATE USERdalam dokumentasi PostgreSQL. -
Untuk klaster DB Aurora PostgreSQL, siapkan dan gunakan ekstensi PostgreSQL Audit (pgAaudit). Ekstensi ini menyunting informasi sensitif dalam pernyataan CREATE dan ALTER yang dikirim ke log. Untuk informasi selengkapnya, lihat Menggunakan pgAudit untuk mencatat aktivitas database.
-
Batasi akses ke CloudWatch log.
-
Gunakan mekanisme autentikasi yang lebih kuat seperti IAM.