Mengimpor log dari Cloud Storage ke Cloud Logging

Last reviewed 2024-01-02 UTC

Arsitektur referensi ini menjelaskan cara mengimpor log yang sebelumnya diekspor ke Cloud Storage kembali ke Cloud Logging.

Arsitektur referensi ini ditujukan bagi engineer dan developer, termasuk DevOps, Site Reliability Engineer (SRE), dan penyelidik keamanan, yang ingin mengonfigurasi dan menjalankan tugas pengimporan log. Dokumen ini mengasumsikan bahwa Anda telah memahami cara menjalankan tugas Cloud Run, serta cara menggunakan Cloud Storage dan Cloud Logging.

Arsitektur

Diagram berikut menunjukkan cara layanan Google Cloud digunakan dalam arsitektur referensi ini:

Diagram alur kerja impor log dari Cloud Storage ke Cloud Logging.

Alur kerja ini mencakup komponen berikut:

  • Bucket Cloud Storage: Berisi log yang diekspor sebelumnya yang ingin Anda impor kembali ke Cloud Logging. Karena sudah diekspor sebelumnya, log ini diatur dalam format ekspor yang diharapkan.
  • Tugas Cloud Run: Menjalankan proses impor log:
    • Membaca objek yang menyimpan entri log dari Cloud Storage.
    • Menemukan log yang diekspor untuk ID log tertentu, dalam rentang waktu yang diminta, berdasarkan organisasi log yang diekspor di bucket Cloud Storage.
    • Mengonversi objek menjadi struktur LogEntry Cloud Logging API. Beberapa struktur LogEntry digabungkan menjadi beberapa batch, untuk mengurangi pemakaian kuota Cloud Logging API. Arsitektur ini menangani error kuota jika diperlukan.
    • Menulis entri log yang dikonversi ke Cloud Logging. Jika Anda menjalankan kembali tugas yang sama beberapa kali, entri duplikat dapat terjadi. Untuk informasi selengkapnya, lihat Menjalankan tugas impor.
  • Cloud Logging: Menyerap dan menyimpan entri log yang dikonversi. Entri log diproses seperti yang dijelaskan dalam Ringkasan pemilihan rute dan penyimpanan.
    • Kuota dan batas Logging berlaku, termasuk kuota dan batas Cloud Logging API serta periode retensi 30 hari. Arsitektur referensi ini dirancang untuk berfungsi dengan kuota tulis default, dengan mekanisme percobaan ulang dasar. Jika kuota tulis Anda lebih rendah dari default, implementasinya mungkin akan gagal.
    • Log yang diimpor tidak disertakan dalam metrik berbasis log, karena stempel waktunya sudah berlalu. Namun, jika Anda memilih untuk menggunakan label, stempel waktu akan mencatat waktu impor, dan log akan 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 membuat kueri 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 atas peristiwa sebelumnya. Misalnya, Anda mungkin ingin menganalisis koneksi ke database pada 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 mengharuskan 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 dari waktu impor tidak akan disimpan.

Arsitektur ini memvalidasi rentang tanggal yang ditetapkan dalam tugas Cloud Run untuk menghindari pengimporan log yang lebih lama dari 29 hari, sehingga menyisakan margin keamanan satu hari.

Untuk mengimpor log yang lebih lama dari 29 hari, Anda harus melakukan perubahan berikut pada kode penerapan, lalu membuat image container baru untuk digunakan dalam konfigurasi tugas Cloud Run.

  • Hapus validasi 30 hari untuk rentang tanggal
  • Menambahkan stempel waktu asli sebagai label pengguna ke entri log
  • Reset label stempel waktu entri log agar dapat diserap dengan stempel waktu saat ini

Saat menggunakan perubahan ini, Anda harus menggunakan kolom labels, bukan kolom timestamp di kueri Log Analytics Anda. Untuk 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 dengan menggunakan arsitektur referensi ini memiliki beberapa faktor yang berkontribusi.

Anda dapat menggunakan komponen Google Cloud yang dapat ditagih berikut:

Pertimbangkan faktor-faktor berikut yang dapat meningkatkan biaya:

  • Duplikasi log: Untuk menghindari biaya penyimpanan log tambahan, jangan menjalankan tugas impor dengan konfigurasi yang sama beberapa kali.
  • Penyimpanan di tujuan tambahan: Untuk menghindari biaya penyimpanan log tambahan, nonaktifkan kebijakan perutean 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 tugas impor habis, Anda mungkin perlu meningkatkan CPU dan memori tugas impor dalam konfigurasi tugas impor. Meningkatkan nilai ini dapat meningkatkan biaya Cloud Run yang timbul.
  • Tugas tambahan: Jika perkiraan jumlah log yang akan diimpor setiap hari dalam rentang waktu yang tinggi, Anda mungkin perlu meningkatkan jumlah tugas dalam konfigurasi tugas impor. Tugas ini akan membagi rentang waktu secara merata di antara tugas, sehingga setiap tugas akan memproses jumlah hari yang sama dari rentang secara serentak. Peningkatan jumlah tugas dapat meningkatkan biaya Cloud Run yang timbul.
  • Kelas penyimpanan: Jika kelas penyimpanan bucket Cloud Storage Anda selain Standard, seperti Nearline, Tahan Lama Berkurang Availability (DRA), atau Coldline, Anda mungkin dikenai biaya tambahan.
  • Traffic data di antara lokasi yang berbeda: Konfigurasikan tugas impor untuk dijalankan di lokasi yang sama dengan bucket Cloud Storage tempat Anda mengimpor log. Jika tidak, biaya traffic keluar jaringan mungkin akan timbul.

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, termasuk tugas 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 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 perutean 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 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 kehabisan waktu sebelum impor selesai. Untuk mencegah impor data yang tidak lengkap, sebaiknya tingkatkan nilai tasks dalam tugas impor. Meningkatkan resource CPU dan memori juga dapat membantu meningkatkan performa tugas saat Anda menambah jumlah tugas.

Deployment

Untuk men-deploy arsitektur ini, lihat Men-deploy tugas untuk mengimpor log dari Cloud Storage ke Cloud Logging.

Langkah Berikutnya

Kontributor

Penulis: Leonid Yankulin | Developer Relations Engineer

Kontributor lainnya: