Mengumpulkan log Datadog

Didukung di:

Ringkasan

Parser ini mengekstrak kolom dari log Datadog, melakukan beberapa mutasi dan pencocokan Grok untuk menyusun data, dan memetakan kolom yang diekstrak ke UDM. Fungsi ini menangani berbagai format log dalam kolom message, termasuk pasangan nilai kunci dan objek JSON, serta mengonversi kolom tertentu menjadi label yang sesuai dengan UDM dan kolom tambahan.

Sebelum memulai

  • Pastikan Anda memiliki instance Google Chronicle.
  • Pastikan Anda memiliki akses dengan hak istimewa ke Google Cloud IAM.
  • Pastikan Anda memiliki akses dengan hak istimewa ke Google Cloud Storage.
  • Pastikan Anda memiliki akses pengguna logs_write_archive ke Datadog.

Opsi 1: Berbagi log Datadog melalui konfigurasi Cloud Storage

Mengonfigurasi integrasi Datadog dengan Google Cloud Platform

Membuat Bucket Google Cloud Storage

  1. Login ke Konsol Google Cloud.
  2. Buka halaman Cloud Storage Buckets.

    Buka Buckets

  3. Klik Buat.

  4. Di halaman Buat bucket, masukkan informasi bucket Anda. Setelah menyelesaikan setiap langkah berikut, klik Lanjutkan untuk melanjutkan ke langkah berikutnya:

    1. Di bagian Mulai, lakukan tindakan berikut:

      1. Masukkan nama unik yang memenuhi persyaratan nama bucket (misalnya, datadog-data).
      2. Untuk mengaktifkan namespace hierarkis, klik panah peluas untuk meluaskan bagian Optimalkan untuk beban kerja yang berorientasi pada file dan intensif data, lalu pilih Aktifkan Namespace hierarkis di bucket ini.

      3. Untuk menambahkan label bucket, klik panah peluas untuk meluaskan bagian Labels.

      4. Klik Tambahkan label, lalu tentukan kunci dan nilai untuk label Anda.

    2. Di bagian Pilih tempat untuk menyimpan data, lakukan hal berikut:

      1. Pilih Jenis lokasi.
      2. Gunakan drop-down jenis lokasi untuk memilih Lokasi tempat data objek dalam bucket Anda akan disimpan secara permanen.
        • Jika memilih jenis lokasi dual-region, Anda juga dapat memilih untuk mengaktifkan replikasi turbo menggunakan kotak centang yang relevan.
      3. Untuk menyiapkan replikasi lintas bucket, luaskan bagian Menyiapkan replikasi lintas bucket.
    3. Di bagian Pilih kelas penyimpanan untuk data Anda, pilih kelas penyimpanan default untuk bucket, atau pilih Autoclass untuk pengelolaan kelas penyimpanan otomatis untuk data bucket Anda.

    4. Di bagian Choose how to control access to objects, pilih not untuk menerapkan public access prevention, dan pilih access control model untuk objek bucket Anda.

    5. Di bagian Pilih cara melindungi data objek, lakukan hal berikut:

      1. Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket.
      2. Untuk memilih cara enkripsi data objek, klik panah peluas berlabel Enkripsi data, lalu pilih Metode enkripsi data.
  5. Klik Buat.

Membuat Akun Layanan Google Cloud

  1. Buka IAM & Admin > Service Accounts.
  2. Buat akun layanan baru.
  3. Beri nama deskriptif (Misalnya, datadog-user).
  4. Berikan akun layanan dengan peran Storage Object Admin di bucket Cloud Storage yang Anda buat di langkah sebelumnya.
  5. Buat kunci SSH untuk akun layanan.
  6. Mendownload file kunci JSON untuk akun layanan. Pastikan file ini tetap aman.

Mengonfigurasi Datadog untuk mengirim log ke Cloud Storage

  1. Login ke Datadog menggunakan akun dengan hak istimewa.
  2. Buka Logs > Log Forwarding.
  3. Klik + Buat Arsip Baru.
  4. Pilih Google Cloud Storage.
  5. Masukkan parameter yang diperlukan, lalu klik Simpan.

Opsi 2: Berbagi log Datadog melalui konfigurasi Webhook

Mengonfigurasi feed di Google SecOps untuk menyerap log Datadog

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan baru.
  3. Di kolom Feed name, masukkan nama untuk feed (misalnya, Datadog Logs).
  4. Pilih Webhook sebagai Jenis sumber.
  5. Pilih Datadog sebagai Jenis log.
  6. Klik Berikutnya.
  7. Opsional: Tentukan nilai untuk parameter input berikut:
    • Pemisah pemisahan: pembatas yang digunakan untuk memisahkan baris log, seperti \n.
    • Namespace aset: namespace aset.
    • Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
  8. Klik Berikutnya.
  9. Tinjau konfigurasi feed di layar Finalize, lalu klik Submit.
  10. Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
  11. Salin dan simpan kunci rahasia. Anda tidak dapat melihat kunci rahasia ini lagi. Jika perlu, Anda dapat membuat ulang kunci rahasia baru, tetapi tindakan ini akan membuat kunci rahasia sebelumnya tidak berlaku lagi.
  12. Dari tab Detail, salin URL endpoint feed dari kolom Endpoint Information. Anda perlu menentukan URL endpoint ini di aplikasi klien.
  13. Klik Selesai.

Membuat kunci API untuk feed webhook

  1. Buka Konsol Google Cloud > Kredensial.

    Buka Kredensial

  2. Klik Create credentials, lalu pilih API key.

  3. Batasi akses kunci API ke Chronicle API.

Menentukan URL endpoint

  1. Di aplikasi klien, tentukan URL endpoint HTTPS yang diberikan di feed webhook.
  2. Aktifkan autentikasi dengan menentukan kunci API dan kunci secret sebagai bagian dari header kustom dalam format berikut:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    Rekomendasi: Tentukan kunci API sebagai header, bukan menentukannya di URL.

  3. Jika klien webhook Anda tidak mendukung header kustom, Anda dapat menentukan kunci API dan kunci rahasia menggunakan parameter kueri dalam format berikut:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    Ganti kode berikut:

    • ENDPOINT_URL: URL endpoint feed.
    • API_KEY: kunci API untuk mengautentikasi ke Google SecOps.
    • SECRET: kunci rahasia yang Anda buat untuk mengautentikasi feed.

Mengonfigurasi Datadog untuk mengirim log ke webhook

  1. Login ke Datadog menggunakan akun dengan hak istimewa.
  2. Buka Logs > Log Forwarding.
  3. Pilih Tujuan Kustom.
  4. Klik + Buat Tujuan Baru.
  5. Tentukan nilai untuk parameter input berikut:
    1. Pilih jenis tujuan: Pilih HTTP.
    2. Beri nama tujuan: Berikan nama deskriptif untuk webhook (misalnya, Webhook Google SecOps).
    3. Konfigurasikan tujuan: Masukkan ENDPOINT_URL, diikuti dengan API_KEY dan SECRET.
    4. Konfigurasikan setelan autentikasi: Tambahkan header umum seperti berikut, tindakan ini tidak akan merusak permintaan HTTP dan memungkinkan Datadog menyelesaikan pembuatan webhook.
      • Nama header: Accept.
      • Nilai header: application/json.
    5. Klik Simpan.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
_id read_only_udm.metadata.product_log_id Dipetakan langsung dari kolom _id.
alert read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom alert dan ditambahkan sebagai label dalam objek security_result.
attributes.@timestamp read_only_udm.metadata.event_timestamp Stempel waktu peristiwa diekstrak dari kolom attributes.@timestamp dan dikonversi menjadi detik dan nanodetik.
attributes.@version read_only_udm.metadata.product_version Dipetakan langsung dari kolom attributes.@version.
attributes.level_value read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom attributes.level_value dan ditambahkan sebagai label dalam objek security_result.
attributes.logger_name read_only_udm.principal.application Dipetakan langsung dari kolom attributes.logger_name.
attributes._trace.baggage._sli_service read_only_udm.additional.fields Dipetakan langsung dari kolom attributes._trace.baggage._sli_service dan ditambahkan sebagai kolom tambahan.
attributes._trace.baggage.device_id read_only_udm.principal.asset.asset_id Dipetakan langsung dari kolom attributes._trace.baggage.device_id, diawali dengan "Device Id:".
attributes._trace.origin.operation read_only_udm.metadata.product_event_type Dipetakan langsung dari kolom attributes._trace.origin.operation.
caller read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom caller dan ditambahkan sebagai label dalam objek security_result.
component read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom component dan ditambahkan sebagai label dalam objek security_result.
context.AlertName read_only_udm.security_result.threat_name Dipetakan langsung dari kolom context.AlertName.
context.BusArch read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom context.BusArch dan ditambahkan sebagai label dalam objek security_result.
context.CANDBVersion read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom context.CANDBVersion dan ditambahkan sebagai label dalam objek security_result.
context.esn read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom context.esn dan ditambahkan sebagai label dalam objek security_result.
context.ftcpVersion read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom context.ftcpVersion dan ditambahkan sebagai label dalam objek security_result.
context.ingestMessageId read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom context.ingestMessageId dan ditambahkan sebagai label dalam objek security_result.
context.redactedVin read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom context.redactedVin dan ditambahkan sebagai label dalam objek security_result.
context.vehicleId read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom context.vehicleId dan ditambahkan sebagai label dalam objek security_result.
date read_only_udm.metadata.collected_timestamp Stempel waktu yang dikumpulkan diekstrak dari kolom date (diganti namanya menjadi date1 di parser) dan dikonversi menjadi detik dan nanodetik.
host read_only_udm.principal.hostname Dipetakan langsung dari kolom host.
message read_only_udm.security_result.about.resource.attribute.labels Kolom message diuraikan, dan bagian-bagiannya digunakan untuk mengisi kolom summary dan json_data. Bagian yang tersisa diperlakukan sebagai key-value pair dan ditambahkan sebagai label dalam objek security_result.
msg read_only_udm.security_result.about.resource.attribute.labels Diekstrak dari kolom msg dan ditambahkan sebagai label dalam objek security_result.
service read_only_udm.metadata.product_name Dipetakan langsung dari kolom service.
status read_only_udm.security_result.severity Tingkat keparahan ditentukan berdasarkan kolom status. "INFO", "DEBUG", "debug", dan "info" dipetakan ke "LOW", "WARN" dipetakan ke "MEDIUM", dan nilai lainnya tidak dipetakan secara eksplisit dalam cuplikan kode yang diberikan.
tags read_only_udm.additional.fields Setiap tag dalam array tags diuraikan menjadi pasangan nilai kunci dan ditambahkan sebagai kolom tambahan.
T/A read_only_udm.metadata.event_type Tetapkan ke "STATUS_UPDATE" jika kolom host ada, dan "GENERIC_EVENT" jika tidak.

Perubahan

2023-07-21

  • Parser dibuat.

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.