Arsitektur referensi ini menjelaskan cara mengimpor log yang sebelumnya diekspor ke Cloud Storage kembali ke Cloud Logging.
Arsitektur referensi ini ditujukan untuk engineer dan developer, termasuk DevOps, site reliability engineer (SRE), dan investigator keamanan, yang ingin mengonfigurasi dan menjalankan tugas impor log. Dokumen ini mengasumsikan bahwa Anda sudah memahami cara menjalankan tugas Cloud Run, dan cara menggunakan Cloud Storage dan Cloud Logging.
Arsitektur
Diagram berikut menunjukkan cara layanan Google Cloud digunakan dalam arsitektur referensi ini:
Alur kerja ini mencakup komponen berikut:
- Bucket Cloud Storage: Berisi log yang diekspor sebelumnya yang ingin Anda impor kembali ke Cloud Logging. Karena log ini sebelumnya diekspor, log tersebut dikelola dalam format ekspor yang diharapkan.
- Tugas Cloud Run: Menjalankan proses log impor:
- Membaca objek yang menyimpan entri log dari Cloud Storage.
- Menemukan log yang diekspor untuk ID log yang ditentukan, dalam rentang waktu yang diminta, berdasarkan pengaturan log yang diekspor di bucket Cloud Storage.
- Mengonversi objek menjadi struktur
LogEntry
Cloud Logging API. Beberapa strukturLogEntry
digabungkan menjadi batch, untuk mengurangi penggunaan kuota Cloud Logging API. Arsitektur ini menangani error kuota jika diperlukan. - Menulis entri log yang dikonversi ke Cloud Logging. Jika Anda menjalankan ulang tugas yang sama beberapa kali, entri duplikat dapat terjadi. Untuk informasi selengkapnya, lihat Menjalankan tugas impor.
- Cloud Logging: Mengambil dan menyimpan entri log yang dikonversi.
Entri log diproses seperti yang dijelaskan dalam Ringkasan perutean dan penyimpanan.
- Kuota dan batas Logging berlaku, termasuk kuota dan batas Cloud Logging API serta periode retensi selama 30 hari. Arsitektur referensi ini dirancang untuk berfungsi dengan kuota penulisan default, dengan mekanisme percobaan ulang dasar. Jika kuota tulis Anda lebih rendah dari default, penerapan mungkin akan gagal.
- Log yang diimpor tidak disertakan dalam metrik berbasis log karena stempel waktunya sudah lama. Namun, jika Anda memilih untuk menggunakan label, stempel waktu akan mencatat waktu impor, dan log disertakan dalam data metrik.
- BigQuery: Menggunakan SQL untuk menjalankan kueri analisis pada log yang diimpor (opsional). Untuk mengimpor log audit dari Cloud Storage, arsitektur ini mengubah ID log; Anda harus memperhitungkan penggantian nama ini saat mengkueri log yang diimpor.
Kasus penggunaan
Anda dapat memilih untuk men-deploy arsitektur ini jika organisasi Anda memerlukan analisis log tambahan untuk investigasi insiden atau audit lain dari peristiwa terdahulu. Misalnya, Anda mungkin ingin menganalisis koneksi ke database untuk kuartal pertama tahun lalu, sebagai bagian dari audit akses database.
Alternatif desain
Bagian ini menjelaskan alternatif untuk desain default yang ditampilkan dalam dokumen arsitektur referensi ini.
Periode retensi dan log yang diimpor
Cloud Logging mewajibkan entri log masuk memiliki stempel waktu yang tidak melebihi periode retensi 30 hari. Entri log yang diimpor dengan stempel waktu yang lebih lama dari 30 hari sejak waktu impor tidak disimpan.
Arsitektur ini memvalidasi rentang tanggal yang ditetapkan dalam tugas Cloud Run untuk menghindari impor log yang sudah lebih dari 29 hari, sehingga menyisakan margin keamanan satu hari.
Untuk mengimpor log yang lebih lama dari 29 hari, Anda perlu membuat perubahan berikut pada kode implementasi, lalu mem-build image container baru untuk digunakan dalam konfigurasi tugas Cloud Run.
- Menghapus validasi 30 hari untuk rentang tanggal
- Menambahkan stempel waktu asli sebagai label pengguna ke entri log
- Mereset label stempel waktu entri log agar dapat diserap dengan stempel waktu saat ini
Saat menggunakan modifikasi ini, Anda harus menggunakan
kolom labels
bukan
kolom timestamp
dalam kueri Log Analytics. Untuk mengetahui informasi selengkapnya tentang kueri dan contoh Log Analytics, lihat Contoh kueri SQL.
Pertimbangan desain
Panduan berikut dapat membantu Anda mengembangkan arsitektur yang memenuhi persyaratan organisasi Anda.
Pengoptimalan biaya
Biaya untuk mengimpor log menggunakan arsitektur referensi ini memiliki beberapa faktor pendorong.
Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
- Cloud Logging (Biaya periode retensi log berlaku)
- Cloud Run
- Cloud Storage API
Pertimbangkan faktor-faktor berikut yang dapat meningkatkan biaya:
- Duplikasi log: Untuk menghindari biaya penyimpanan log tambahan, jangan jalankan tugas impor dengan konfigurasi yang sama beberapa kali.
- Penyimpanan di tujuan tambahan: Untuk menghindari biaya penyimpanan log tambahan, nonaktifkan kebijakan pemilihan rute di project tujuan untuk mencegah penyimpanan log di lokasi tambahan atau meneruskan log ke tujuan lain seperti Pub/Sub atau BigQuery.
- CPU dan memori tambahan: Jika waktu tunggu tugas impor habis, Anda mungkin perlu meningkatkan CPU dan memori tugas impor di konfigurasi tugas impor. Meningkatkan nilai ini dapat meningkatkan biaya Cloud Run yang dikeluarkan.
- Tugas tambahan: Jika jumlah log yang diperkirakan akan diimpor setiap hari dalam rentang waktu tinggi, Anda mungkin perlu meningkatkan jumlah tugas dalam konfigurasi tugas impor. Tugas akan membagi rentang waktu secara merata di antara tugas, sehingga setiap tugas akan memproses jumlah hari yang serupa dari rentang secara serentak. Meningkatkan jumlah tugas dapat meningkatkan biaya Cloud Run yang timbul.
- Kelas penyimpanan: Jika kelas penyimpanan bucket Cloud Storage Anda bukan Standard, seperti Nearline, Durable Reduced Availability (DRA), atau Coldline, Anda mungkin dikenai biaya tambahan.
- Traffic data antar-lokasi yang berbeda: Konfigurasikan tugas impor agar berjalan di lokasi yang sama dengan bucket Cloud Storage tempat Anda mengimpor log. Jika tidak, biaya traffic keluar jaringan mungkin akan dikenakan.
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, termasuk job Cloud Run, gunakan kalkulator harga.
Efisiensi operasional
Bagian ini menjelaskan pertimbangan untuk mengelola kueri analisis setelah solusi di-deploy.
Nama dan kueri log
Log disimpan ke project yang ditentukan di kolom logName
entri log. Untuk mengimpor log ke project yang dipilih, arsitektur ini
akan mengubah kolom logName
dari setiap log yang diimpor. Log impor disimpan di
bucket log default project yang dipilih yang memiliki ID log imported_logs
(kecuali jika
project memiliki kebijakan pemilihan rute log yang mengubah tujuan penyimpanan).
Nilai asli kolom logName
dipertahankan di
kolom labels
dengan kunci original_logName
.
Anda harus memperhitungkan lokasi nilai logName
asli saat membuat kueri log yang diimpor. Untuk mengetahui informasi selengkapnya tentang kueri dan contoh Log Analytics,
lihat Contoh kueri SQL.
Pengoptimalan performa
Jika volume log yang Anda impor melebihi batas kapasitas Cloud Run, tugas mungkin akan habis waktu tunggunya sebelum impor selesai. Untuk mencegah impor data yang tidak lengkap, pertimbangkan untuk meningkatkan nilai tasks
di tugas impor. Meningkatkan resource CPU
dan memori juga dapat membantu
meningkatkan performa tugas saat Anda meningkatkan jumlah tugas.
Deployment
Untuk men-deploy arsitektur ini, lihat Men-deploy tugas untuk mengimpor log dari Cloud Storage ke Cloud Logging.
Langkah Berikutnya
- Tinjau kode implementasi di repositori GitHub.
- Pelajari cara menganalisis log yang diimpor menggunakan Log Analytics dan SQL.
- Untuk mengetahui lebih banyak tentang arsitektur referensi, diagram, dan praktik terbaik lainnya, jelajahi Pusat Arsitektur Cloud.
Kontributor
Penulis: Leonid Yankulin | Developer Relations Engineer
Kontributor lainnya:
- Summit Tuladhar | Senior Staff Software Engineer
- Wilton Wong | Enterprise Architect
- Xiang Shen | Solutions Architect