Mengumpulkan log Datadog
Ringkasan
Parser ini mengekstrak kolom dari log Datadog, melakukan beberapa mutasi dan pencocokan Grok untuk menyusun data, serta memetakan kolom yang diekstrak ke UDM. Log ini menangani berbagai format log dalam kolom message, termasuk pasangan nilai kunci dan objek JSON, serta mengonversi kolom tertentu menjadi label dan kolom tambahan yang sesuai dengan UDM.
Sebelum memulai
Pastikan Anda memenuhi prasyarat berikut:
- Instance Google SecOps.
- Akses istimewa ke Google Cloud IAM.
- Akses istimewa ke Cloud Storage.
logs_write_archive
akses pengguna ke Datadog.
Opsi 1: Berbagi log Datadog melalui konfigurasi Cloud Storage
Mengonfigurasi integrasi Datadog dengan Google Cloud Platform
- Siapkan integrasi untuk Google Cloud Platform di Datadog. Untuk mengetahui informasi selengkapnya, lihat penyiapan integrasi Datadog Google Cloud .
Membuat Google Cloud Bucket Storage
- Login ke konsol Google Cloud .
Buka halaman Cloud Storage Buckets.
Klik Buat.
Di halaman Buat bucket, masukkan informasi bucket Anda. Setelah setiap langkah berikut, klik Lanjutkan untuk melanjutkan ke langkah berikutnya:
Di bagian Mulai, lakukan tindakan berikut:
- Masukkan nama unik yang memenuhi persyaratan nama bucket (misalnya, datadog-data).
Untuk mengaktifkan namespace hierarkis, klik panah peluas untuk meluaskan bagian Optimalkan untuk beban kerja berorientasi file dan intensif data, lalu pilih Aktifkan namespace Hierarkis di bucket ini.
Untuk menambahkan label bucket, klik panah peluas untuk meluaskan bagian Label.
Klik Tambahkan label, lalu tentukan kunci dan nilai untuk label Anda.
Di bagian Pilih lokasi untuk menyimpan data Anda, lakukan hal berikut:
- Pilih Jenis lokasi.
- 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 dengan menggunakan kotak centang yang relevan.
- Untuk menyiapkan replikasi lintas bucket, luaskan bagian Siapkan replikasi lintas bucket.
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.
Di bagian Pilih cara mengontrol akses ke objek, pilih tidak untuk menerapkan pencegahan akses publik, dan pilih model kontrol akses untuk objek bucket Anda.
Di bagian Pilih cara melindungi data objek, lakukan tindakan berikut:
- Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket Anda.
- Untuk memilih cara mengenkripsi data objek Anda, klik panah peluas berlabel Enkripsi data, lalu pilih Metode enkripsi data.
Klik Buat.
Buat Akun Layanan Google Cloud
- Buka IAM & Admin > Service Accounts.
- Buat akun layanan baru.
- Beri nama deskriptif (Misalnya, datadog-user).
- Beri akun layanan peran Storage Object Admin di bucket Cloud Storage yang Anda buat pada langkah sebelumnya.
- Buat kunci SSH untuk akun layanan.
- Download file kunci JSON untuk akun layanan. Jaga keamanan file ini.
Mengonfigurasi Datadog untuk mengirim log ke Cloud Storage
- Login ke Datadog menggunakan akun yang memiliki hak istimewa.
- Buka Log > Penerusan Log.
- Klik + Buat Arsip Baru.
- Pilih Google Cloud Storage.
- Masukkan parameter yang diperlukan, lalu klik Simpan.
Opsi 2: Berbagi log Datadog melalui konfigurasi Webhook
Menyiapkan feed
Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Feed name, masukkan nama untuk feed (misalnya, Datadog Logs).
- Pilih Webhook sebagai Jenis sumber.
- Pilih Datadog sebagai Jenis log.
- Klik Berikutnya.
- Opsional: Tentukan nilai untuk parameter input berikut:
- Pemisah pemisahan: pemisah yang digunakan untuk memisahkan baris log, seperti
\n
.
- Pemisah pemisahan: pemisah yang digunakan untuk memisahkan baris log, seperti
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Selesaikan, lalu klik Kirim.
- Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
- 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.
- Dari tab Detail, salin URL endpoint feed dari kolom Informasi Endpoint. Anda perlu menentukan URL endpoint ini di aplikasi klien Anda.
- Klik Selesai.
Membuat kunci API untuk feed webhook
Buka konsolGoogle Cloud > Kredensial.
Klik Create credentials, lalu pilih API key.
Membatasi akses kunci API ke Chronicle API.
Tentukan URL endpoint
- Di aplikasi klien Anda, tentukan URL endpoint HTTPS yang disediakan di feed webhook.
Aktifkan autentikasi dengan menentukan kunci API dan kunci rahasia 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.
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
- Login ke Datadog menggunakan akun yang memiliki hak istimewa.
- Buka Log > Penerusan Log.
- Pilih Tujuan Kustom.
- Klik + Buat Tujuan Baru.
- Tentukan nilai untuk parameter input berikut:
- Pilih jenis tujuan: Pilih HTTP.
- Beri nama tujuan: Berikan nama deskriptif untuk webhook (misalnya, Webhook SecOps Google).
- Konfigurasi tujuan: Masukkan ENDPOINT_URL, diikuti dengan API_KEY dan SECRET.
- Konfigurasi setelan autentikasi: Tambahkan header umum seperti berikut, ini tidak akan membuat permintaan HTTP salah bentuk dan memungkinkan Datadog menyelesaikan pembuatan webhook.
- Nama header:
Accept
. - Nilai header:
application/json
.
- Nama header:
- Klik Simpan.
Link Referensi
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 , dengan awalan "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 sebagian darinya 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 |
Ditetapkan ke "STATUS_UPDATE" jika kolom host ada, dan "GENERIC_EVENT" jika tidak. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.