Forwarder Management API
Anda dapat menggunakan Google Security Operations Forwarder Management API untuk melakukan hal berikut secara terprogram:
- Membuat dan mengelola forwarder.
- Membuat dan mengelola kolektor.
- Dapatkan konten file untuk file konfigurasi (
.conf
) dan autentikasi (_auth.conf
) penerusan Google Security Operations.
Pengirim terdiri dari satu atau beberapa kolektor. Setiap konfigurasi kolektor menentukan mekanisme penyerapan (misalnya, File, Kafka, PCAP, Splunk, atau Syslog) dan jenis log.
Dengan asumsi persyaratan hardware terpenuhi, Anda dapat menggunakan banyak kolektor di forwarder yang sama untuk menyerap data dari berbagai mekanisme dan jenis log. Misalnya, Anda dapat menginstal forwarder dengan dua kolektor syslog yang memproses data PAN_FIREWALL dan CISCO_ASA_FIREWALL di port terpisah.
API ini memungkinkan Anda membuat forwarder dan kolektornya di instance Google Security Operations. Setelah penerusan dibuat, Anda dapat menggunakan endpoint Generate Forwarder Files untuk mendapatkan konten file (sebagai payload JSON) untuk file konfigurasi (.conf
) dan autentikasi (_auth.conf
) penerusan. Konten ini kemudian dapat ditulis ke file .conf
masing-masing untuk di-deploy dengan layanan Google Security Operations Forwarder di sistem Windows atau Linux.
Untuk contoh Python yang menggunakan Forwarder Management API, lihat repositori GitHub.
Membuat forwarder dan kolektornya
Pengirim harus dibuat sebelum kolektornya dapat dibuat.
Untuk membuat forwarder dan kolektornya:
- Buat penerusan.
- Buat kolektor untuk pengirim.
- (Opsional) Ulangi Langkah 2 untuk menambahkan lebih banyak kolektor.
Cara mengautentikasi dengan Google Security Operations API
Google Security Operations API ini menggunakan protokol OAuth 2.0 untuk autentikasi dan otorisasi. Aplikasi Anda dapat menyelesaikan tugas ini menggunakan salah satu implementasi berikut:
Menggunakan Library Klien Google API untuk bahasa komputer Anda.
Berinteraksi langsung dengan sistem OAuth 2.0 menggunakan HTTP.
Lihat dokumentasi referensi untuk library Autentikasi Google di Python.
Library Autentikasi Google adalah subset dari library klien Google API. Lihat implementasi bahasa lain.
Mendapatkan kredensial autentikasi API
Perwakilan Google Security Operations akan memberi Anda Kredensial Akun Layanan Developer Google untuk memungkinkan klien API berkomunikasi dengan API.
Anda juga harus memberikan Cakupan Autentikasi saat melakukan inisialisasi klien API. OAuth 2.0 menggunakan cakupan untuk membatasi akses aplikasi ke akun. Saat aplikasi meminta cakupan, token akses yang dikeluarkan untuk aplikasi dibatasi pada cakupan yang diberikan.
Gunakan cakupan berikut untuk melakukan inisialisasi klien Google API:
https://www.googleapis.com/auth/chronicle-backstory
Contoh Python
Contoh Python berikut menunjukkan cara menggunakan kredensial OAuth2
dan klien HTTP menggunakan google.oauth2
dan googleapiclient
.
# Imports required for the sample - Google Auth and API Client Library Imports.
# Get these packages from https://pypi.org/project/google-api-python-client/ or run $ pip
# install google-api-python-client from your terminal
from google.auth.transport import requests
from google.oauth2 import service_account
SCOPES = ['https://www.googleapis.com/auth/chronicle-backstory']
# The apikeys-demo.json file contains the customer's OAuth 2 credentials.
# SERVICE_ACCOUNT_FILE is the full path to the apikeys-demo.json file
# ToDo: Replace this with the full path to your OAuth2 credentials
SERVICE_ACCOUNT_FILE = '/customer-keys/apikeys-demo.json'
# Create a credential using Google Developer Service Account Credential and Google Security Operations API
# Scope.
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
# Build a requests Session Object to make authorized OAuth requests.
http_session = requests.AuthorizedSession(credentials)
# Your endpoint GET|POST|PATCH|etc. code will vary below
# Reference List example (for US region)
url = 'https://backstory.googleapis.com/v2/lists/COLDRIVER_SHA256'
# You might need another regional endpoint for your API call; see
# https://cloud.google.com/chronicle/docs/reference/ingestion-api#regional_endpoints
# requests GET example
response = http_session.request("GET", url)
# POST example uses json
body = {
"foo": "bar"
}
response = http_session.request("POST", url, json=body)
# PATCH example uses params and json
params = {
"foo": "bar"
}
response = http_session.request("PATCH", url, params=params, json=body)
# For more complete examples, see:
# https://github.com/chronicle/api-samples-python/
Batas kueri Chronicle API
Chronicle API menerapkan batas pada volume permintaan yang dapat dilakukan oleh satu pelanggan terhadap platform Google Security Operations. Jika Anda mencapai atau melampaui batas kueri, server Chronicle API akan menampilkan HTTP 429 (RESOURCE_EXHAUSTED) kepada pemanggil. Saat mengembangkan aplikasi untuk Chronicle API, Google menyarankan agar Anda menerapkan pembatasan kapasitas dalam sistem untuk menghindari kehabisan resource. Batasan ini berlaku untuk semua Chronicle API, termasuk Search, Forwarder Management, dan Tooling API.
Lihat daftar mendetail tentang batas kueri Chronicle API.
Batas berikut untuk Chronicle Forwarder Management API sedang diterapkan dan diukur dalam kueri per detik (QPS):
Chronicle API | Endpoint API | Batas |
Pengelolaan Pengirim | Membuat Pengirim | 1 QPS |
Mendapatkan Ekspedisi | 1 QPS | |
Mencantumkan Penerus | 1 QPS | |
Memperbarui Pengirim Lanjutan | 1 QPS | |
Menghapus Pengirim | 1 QPS | |
Pengelolaan Kolektor | Membuat Kolektor | 1 QPS |
Mendapatkan Kolektor | 1 QPS | |
Mencantumkan Kolektor | 1 QPS | |
Memperbarui Kolektor | 1 QPS | |
Menghapus Kolektor | 1 QPS |
Referensi Forwarder API
Bagian ini menjelaskan endpoint untuk membuat dan mengelola forwarder. Untuk endpoint guna membuat dan mengelola kolektor, lihat Referensi Collector API.
Membuat Pengirim
Membuat forwarder baru di instance Google SecOps. Pengirim baru akan menyertakan nilai konfigurasi forwarder yang diberikan dalam isi permintaan. Nilai konfigurasi untuk pengumpul harus ditentukan menggunakan Buat Pengumpul setelah menggunakan Buat Pengirim.
Untuk setelan tertentu, nilai konfigurasi yang tidak ada atau bernilai nol dalam isi permintaan ditetapkan ke nilai default. Untuk mengetahui detail tentang kolom dan nilai forwarder, lihat Kolom konfigurasi forwarder.
Permintaan
POST https://backstory.googleapis.com/v2/forwarders
Isi permintaan
{
"display_name": string,
"config": {
object (ForwarderConfig)
}
}
Parameter isi
Kolom | Jenis | Wajib | Deskripsi |
---|---|---|---|
display_name | string | Wajib | Nama pengirim. Nama ini ditampilkan di antarmuka Google SecOps. |
config | objek | Opsional | Setelan konfigurasi untuk forwarder ini. Lihat Kolom konfigurasi forwarder. |
Contoh permintaan
Contoh ini menunjukkan pasangan kunci:nilai yang diperlukan dalam permintaan Create Forwarder. Jika kolom tidak ditentukan dalam permintaan dan memiliki nilai default, nilai default akan diterapkan selama pembuatan forwarder. Untuk mengetahui detail tentang nilai default, lihat Kolom konfigurasi forwarder.
POST https://backstory.googleapis.com/v2/forwarders
{
"display_name": "chronicle_forwarder"
}
Respons
Jika permintaan berhasil, respons akan menampilkan kode status HTTP 200 (OK).
Respons menunjukkan nilai konfigurasi yang diterapkan selama pembuatan forwarder. Nilai konfigurasi default diterapkan untuk setelan tertentu selama pembuatan resource jika kolom tersebut tidak ada atau bernilai nol dalam isi permintaan. Untuk mengetahui detailnya, lihat Kolom konfigurasi forwarder.
Kolom respons
Selain kolom yang ditentukan dalam permintaan dan kolom yang nilai default-nya diterapkan, respons mencakup kolom yang dihasilkan dan khusus output berikut.
Kolom | Jenis | Deskripsi |
---|---|---|
nama | string | ID resource forwarder. Formatnya adalah
"forwarders/forwarderID". Misalnya: forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56 |
state | enum | Menentukan status forwarder saat ini. Nilai yang valid adalah:
Nilai defaultnya adalah ACTIVE. |
Contoh respons
Ini adalah contoh respons yang ditampilkan untuk contoh permintaan di atas.
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
"displayName": "chronicle_forwarder",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
"drainTimeout": 10,
"httpSettings": {
"port": "8080",
"host": "0.0.0.0",
"readTimeout": "3",
"readHeaderTimeout": "3",
"writeTimeout": "3",
"idleTimeout": "3"
"routeSettings": {
"availableStatusCode": "204",
"readyStatusCode": "204",
"unreadyStatusCode": "503"
},
},
},
},
"state": "ACTIVE"
}
Mendapatkan Ekspedisi
Menampilkan forwarder.
Permintaan
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}
Isi permintaan
Jangan sertakan isi permintaan.
Contoh permintaan
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Contoh respons
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
"displayName": "chronicle_forwarder",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
"drainTimeout": 10,
"httpSettings": {
"port": "8080",
"host": "0.0.0.0",
"readTimeout": "3",
"readHeaderTimeout": "3",
"writeTimeout": "3",
"idleTimeout": "3"
"routeSettings": {
"availableStatusCode": "204",
"readyStatusCode": "204",
"unreadyStatusCode": "503"
},
},
},
},
"state": "ACTIVE"
}
Mencantumkan Penerus
Mencantumkan semua penerusan untuk instance Google SecOps.
Permintaan
GET https://backstory.googleapis.com/v2/forwarders
Contoh permintaan
GET https://backstory.googleapis.com/v2/forwarders
Respons
Menampilkan daftar forwarder.
Contoh respons
{
"forwarders": [
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
"displayName": "chronicle_forwarder_1",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
...
},
},
"state": "ACTIVE"
},
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde57",
"displayName": "chronicle_forwarder_2",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
...
},
},
"state": "ACTIVE"
}
]
}
Memperbarui Pengirim Lanjutan
Anda dapat memperbarui pengirim menggunakan parameter kueri URL updateMask
untuk menentukan kolom yang akan diperbarui.
Misalnya, untuk memperbarui nama tampilan, Anda akan menggunakan parameter kueri updateMask
sebagai berikut dalam permintaan patch:
?updateMask=displayName
Isi permintaan hanya boleh berisi kolom yang ingin Anda perbarui (di lokasi persisnya).
Permintaan
PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}?updateMask=<field_1,field_2>
Isi permintaan
{
"display_name": string,
"config": {
object (ForwarderConfig)
},
}
Parameter isi
Kolom | Jenis | Wajib | Deskripsi |
---|---|---|---|
display_name | string | Wajib | Nama pengirim. Nama ini ditampilkan di antarmuka Google SecOps. |
config | objek | Opsional | Setelan konfigurasi untuk forwarder ini. Lihat Kolom konfigurasi forwarder. |
Contoh permintaan
Ini adalah contoh permintaan Update Forwarder yang permintaannya menentukan
nilai baru untuk displayName
dan menambahkan label Metadata.
PATCH https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56?updateMask=displayName,config.metadata.labels
{
"display_name": "UpdatedForwarder",
"config": {
"metadata": {
"labels": [
{
"key": "office",
"value": "corporate",
}
]
}
}
}
Contoh respons
Ini adalah contoh respons yang ditampilkan untuk contoh permintaan di atas.
{
"name": "forwarders/{forwarderUUID}",
"displayName": "UpdatedForwarder",
"config": {
"uploadCompression": "false",
"metadata": {
"labels": [
{
"key": "office",
"value": "corporate"
}
]
}
},
"state": "ACTIVE"
}
Menghapus Pengirim
Menghapus pengirim.
Permintaan
DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}
Isi permintaan
Jangan sertakan isi permintaan.
Contoh permintaan
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Contoh respons
Jika operasi berhasil, Delete Forwarder akan menampilkan respons kosong dengan kode status HTTP 200 (OK).
{}
Membuat File Pengirim
Menghasilkan dan menampilkan konten file konfigurasi (.conf
) dan autentikasi (_auth.conf
) penerusan.
Permintaan
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}:generateForwarderFiles
Isi permintaan
Jangan sertakan isi permintaan.
Contoh permintaan
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56:generateForwarderFiles
Contoh respons
Jika berhasil, operasi akan menampilkan kode status HTTP 200 (OK). Fungsi ini juga menampilkan konten file konfigurasi forwarder, termasuk data konfigurasi untuk kolektor forwarder, serta konten file autentikasi (_auth.conf
) yang digunakan oleh forwarder untuk mengautentikasi dengan instance Google SecOps.
Kolom konfigurasi penerusan
Tabel berikut mencantumkan setelan konfigurasi forwarder yang dapat Anda tentukan menggunakan Create Forwarder dan Update Forwarder. Jika Anda tidak menentukan nilai untuk setelan saat menggunakan Buat Pengirim, nilai default setelan (ditampilkan di bawah) akan diterapkan.
Kolom berikut dapat diberikan dalam objek config
dari isi
permintaan.
Kolom | Jenis | Wajib | Deskripsi |
---|---|---|---|
upload_compression | bool | Opsional | Jika true , batch data akan dikompresi sebelum diupload.Defaultnya adalah false . |
metadata.asset_namespace | string | Opsional | Namespace untuk mengidentifikasi log dari penerusan ini. Catatan: Ini adalah setelan global yang berlaku untuk forwarder dan kolektor forwarder, kecuali jika diganti di tingkat kolektor. Untuk informasi selengkapnya, lihat Mengonfigurasi namespace. |
metadata.labels | list | Opsional | Daftar key-value pair arbitrer yang dapat ditentukan dalam konfigurasi forwarder. Catatan: Ini adalah setelan global yang berlaku untuk forwarder dan kolektor forwarder, kecuali jika diganti di tingkat kolektor. |
metadata.labels.key | string | Opsional | Kunci untuk kolom dalam daftar label metadata. |
metadata.labels.value | string | Opsional | Nilai untuk kolom dalam daftar label metadata. |
regex_filters.description | string | Opsional | Menjelaskan apa yang difilter dan alasannya. |
regex_filters.regexp | string | Opsional | Ekspresi reguler yang digunakan untuk mencocokkan setiap baris yang masuk. |
regex_filters.behavior | enum | Opsional | Menentukan status fungsi server. Nilai yang valid adalah:
|
server_settings | objek | Opsional | Setelan yang mengonfigurasi server HTTP bawaan forwarder, yang dapat digunakan untuk mengonfigurasi opsi load balancing dan ketersediaan tinggi untuk pengumpulan syslog di Linux. |
server_settings.state | enum | Opsional | Menentukan status fungsi server. Nilai yang valid adalah:
|
server_settings.graceful_timeout | bilangan bulat | Opsional | Jumlah detik setelah forwarder menampilkan pemeriksaan kesiapan/status yang buruk dan masih menerima koneksi baru. Ini juga
adalah waktu tunggu antara menerima sinyal untuk berhenti dan benar-benar
memulai shutdown server itu sendiri. Hal ini memungkinkan load
balancer memiliki waktu untuk menghapus forwarder dari kumpulan. Nilai defaultnya adalah 15 . |
server_settings.drain_timeout | bilangan bulat | Opsional | Jumlah detik setelah penerusan menunggu koneksi aktif
berhasil ditutup sendiri sebelum ditutup oleh
server. Nilai defaultnya adalah 10 . |
server_settings.http_settings.port | bilangan bulat | Opsional | Nomor port yang diproses server HTTP untuk health check
dari load balancer. Harus antara 1024-65535. Defaultnya adalah 8080 . |
server_settings.http_settings.host | string | Opsional | Alamat IP, atau nama host yang dapat di-resolve ke alamat IP,
yang harus didengarkan server. Nilai defaultnya adalah 0.0.0.0 (sistem lokal). |
server_settings.http_settings.read_timeout | bilangan bulat | Opsional | Jumlah detik maksimum yang diizinkan untuk membaca seluruh permintaan, yang
mencakup header dan isi. Nilai defaultnya adalah 3 . |
server_settings.http_settings.read_header_timeout | bilangan bulat | Opsional | Jumlah maksimum detik yang diizinkan untuk membaca header permintaan. Nilai defaultnya adalah 3 . |
server_settings.http_settings.write_timeout | bilangan bulat | Opsional | Jumlah detik maksimum yang diizinkan untuk mengirim respons. Nilai defaultnya adalah 3 . |
server_settings.http_settings.idle_timeout | bilangan bulat | Opsional | Jumlah detik maksimum untuk menunggu permintaan berikutnya saat koneksi
tidak ada aktivitas diaktifkan. Defaultnya adalah 3 . |
server_settings.http_settings.route_settings.available_status_code | bilangan bulat | Opsional | Kode status yang ditampilkan saat pemeriksaan keaktifan diterima dan forwarder tersedia. Defaultnya adalah 204 . |
server_settings.http_settings.route_settings.ready_status_code | bilangan bulat | Opsional | Kode status yang ditampilkan saat forwarder siap menerima
traffic. Defaultnya adalah 204 . |
server_settings.http_settings.route_settings.unready_status_code | bilangan bulat | Opsional | Kode status yang ditampilkan saat forwarder belum siap menerima
traffic. Defaultnya adalah 503 . |
Referensi Collector API
Bagian ini menjelaskan endpoint untuk menggunakan kolektor.
Saat membuat dan memperbarui kolektor, perhatikan bahwa setiap konfigurasi kolektor dapat menentukan setelan penyerapan untuk satu, tetapi tidak lebih dari satu, dari hal berikut:
- Data file log
- Topik Kafka
- Data paket (pcap)
- Data Splunk
- Data syslog
Untuk endpoint guna menggunakan forwarder, lihat referensi Forwarder API.
Membuat Kolektor
Membuat kolektor baru di akun Google SecOps. Nilai konfigurasi untuk collector harus ditentukan menggunakan Create Collector setelah menggunakan Create Forwarder.
Untuk setelan tertentu, nilai konfigurasi yang tidak ada atau bernilai nol dalam isi permintaan ditetapkan ke nilai default. Untuk mengetahui detail tentang kolom dan nilai konfigurasi kolektor, lihat Kolom konfigurasi kolektor.
Permintaan
POST https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Isi permintaan
{
"display_name": string,
"config": {
object (CollectorConfig)
}
"state": enum
}
Parameter isi
Kolom | Jenis | Wajib | Deskripsi |
---|---|---|---|
display_name | string | Wajib | Nama kolektor. Nama ini ditampilkan di antarmuka Google SecOps. |
config | objek | Wajib | Setelan konfigurasi untuk pengumpulan ini. Lihat Kolom konfigurasi kolektor. |
state | enum | Opsional | Menentukan status kolektor saat ini. Nilai yang valid adalah:
|
Contoh permintaan
Contoh ini menunjukkan pasangan nilai kunci yang diperlukan dalam permintaan Create Collector. Untuk kolom yang tidak disediakan, nilai default akan diterapkan selama pembuatan kolektor.
Dalam contoh ini, jenis kolektor adalah file
, sehingga konfigurasi kolektor
menyertakan file_settings
untuk menunjukkan jenis kolektor dan setelannya. Jika
jenis kolektor adalah syslog
, konfigurasi kolektor akan menyertakan
syslog_settings
. Untuk mengetahui informasi selengkapnya, lihat
Kolom konfigurasi kolektor.
POST https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors
{
"display_name": "abc_collector",
"config" {
"log_type": "CS_EDR"
"file_settings": {
"file_path": "/opt/chronicle/edr/output/sample.txt",
}
}
}
Respons
Jika permintaan berhasil, respons akan menampilkan kode status HTTP 200 (OK).
Respons menunjukkan nilai konfigurasi yang diterapkan selama pembuatan kolektor. Nilai konfigurasi default diterapkan untuk setelan tertentu selama pembuatan resource jika kolom tersebut tidak ada atau bernilai nol dalam isi permintaan. Untuk mengetahui detailnya, lihat Kolom konfigurasi kolektor.
Kolom respons
Selain kolom yang ditentukan dalam permintaan dan kolom yang nilai defaultnya diterapkan, respons mencakup kolom berikut:
Kolom | Jenis | Deskripsi |
---|---|---|
nama | string | ID resource kolektor. Formatnya adalah
"forwarders/{forwarderID}/collectors/{collectorID}". Misalnya:forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56 |
Contoh respons
Ini adalah contoh respons yang ditampilkan untuk contoh permintaan di atas.
{
"name": "forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56/collectors/
98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
"displayName": "abc_collector",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
Mendapatkan Kolektor
Menampilkan kolektor.
Permintaan
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Isi permintaan
Jangan sertakan isi permintaan.
Contoh permintaan
GET
https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Contoh respons
{
"name": "?",
"displayName": "abc_collector",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
Mencantumkan Kolektor
Mencantumkan kolektor yang ada untuk pengirim yang ditentukan.
Permintaan
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Contoh permintaan
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors
Respons
Menampilkan beberapa kolektor.
Contoh respons
{
"collectors": [
{
"name": "?",
"displayName": "abc_collector_1",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
},
{
"name": "?",
"displayName": "abc_collector_2",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
]
}
Memperbarui Kolektor
Saat memperbarui kolektor dengan API, Anda dapat memilih untuk menimpa seluruh konfigurasi kolektor atau hanya menimpa kolom tertentu dari konfigurasi kolektor. Sebaiknya ganti kolom tertentu agar Anda tidak sengaja menimpa semua data. Untuk menimpa kolom tertentu, berikan FieldMask ke permintaan pembaruan Anda.
Untuk memberikan FieldMask guna memperbarui nama tampilan untuk kolektor, berikan parameter kueri URL updateMask dalam permintaan patch. Contoh:
?updateMask=displayName
Isi permintaan hanya boleh berisi kolom yang ingin Anda perbarui (di lokasi tepatnya).
Permintaan
PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}?updateMask=<field_1,field_2>
Isi permintaan
{
"display_name": string,
"config": {
object (CollectorConfig)
},
}
Parameter isi
Kolom | Jenis | Wajib | Deskripsi |
---|---|---|---|
displayName | string | Wajib | Nama kolektor. Nama ini ditampilkan di antarmuka Google SecOps. |
config | objek | Opsional | Setelan konfigurasi untuk forwarder ini. Lihat Kolom konfigurasi kolektor. |
Contoh permintaan
Ini adalah contoh permintaan Update Collector yang menentukan nilai baru untuk displayName, logType, assetNamespace, dan protocol.
PATCH https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56?updateMask=displayName,config.logType,config.metadata.assetNamespace,config.syslogSettings.protocol
{
"display_name": "UpdatedCollector"
"config": {
"metadata": {
"asset_namespace": "COLLECTOR",
},
"log_type": "CISCO_ASA_FIREWALL",
"syslog_settings": {
"protocol": "TCP",
}
}
}
Contoh respons
Ini adalah contoh respons yang ditampilkan untuk contoh permintaan di atas.
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
"displayName": "UpdatedCollector",
"config": {
"logType": "CISCO_ASA_FIREWALL",
"metadata": {
"assetNamespace": "COLLECTOR"
},
"maxSecondsPerBatch": 10,
"maxBytesPerBatch": "1048576",
"syslogSettings": {
"protocol": "TCP",
"address": "0.0.0.0",
"port": 10514,
}
},
"state": "ACTIVE"
}
Menghapus Kolektor
Menghapus kolektor.
Permintaan
DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Isi permintaan
Jangan sertakan isi permintaan.
Contoh permintaan
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Contoh respons
Jika operasi berhasil, Penghapus Pengumpul akan menampilkan respons kosong dengan kode status HTTP 200 (OK).
{}
Kolom konfigurasi kolektor
Kolom berikut dapat diberikan dalam objek config
dari isi
permintaan.
Kolom | Jenis | Wajib | Deskripsi |
---|---|---|---|
log_type | string | Wajib | Jenis log yang didukung (jenis yang dapat diserap oleh Google SecOps). Untuk daftar
jenis log yang didukung yang memiliki parser Google SecOps, lihat
kolom Label Proses Transfer di halaman Parser default
yang didukung. Untuk mendapatkan daftar lengkap jenis log yang didukung, gunakan endpoint logtypes .
|
metadata.asset_namespace | objek | Opsional | Namespace untuk mengidentifikasi log dari kolektor ini. Catatan: Ini adalah setelan global yang berlaku untuk forwarder dan kolektor forwarder, kecuali jika diganti di tingkat kolektor. Untuk informasi selengkapnya, lihat Mengonfigurasi namespace. |
metadata.labels | list | Opsional | Daftar key:value pair arbitrer yang dapat ditentukan dalam konfigurasi kolektor. Catatan: Ini adalah setelan global yang berlaku untuk forwarder dan kolektor forwarder, kecuali jika diganti di tingkat kolektor. |
metadata.labels.key | string | Opsional | Kunci untuk kolom dalam daftar label metadata. |
metadata.labels.value | string | Opsional | Nilai untuk kolom dalam daftar label metadata. |
regex_filters.description | string | Opsional | Menjelaskan apa yang difilter dan alasannya. |
regex_filters.regexp | string | Opsional | Ekspresi reguler yang digunakan untuk mencocokkan setiap baris yang masuk. |
regex_filters.behavior | enum | Opsional | Menentukan status fungsi server. Nilai yang valid adalah:
|
disk_buffer.state | enum | Opsional | Menentukan status buffering disk untuk kolektor. Nilai yang valid adalah:
|
disk_buffer.directory_path | string | Opsional | Jalur direktori untuk file yang ditulis. |
disk_buffer.max_file_buffer_bytes | bilangan bulat | Opsional | Ukuran file buffering maksimum. |
max_seconds_per_batch | bilangan bulat | Opsional | Jumlah detik di antara batch. Defaultnya adalah 10 . |
max_bytes_per_batch | bilangan bulat | Opsional | Jumlah byte yang diantrekan sebelum upload batch penerusan. Defaultnya adalah 1048576 . |
<collector_type>_settings.<fields> | Wajib | Menentukan jenis kolektor dan setelannya. Setiap kolektor harus menentukan satu jenis kolektor dan kolomnya. Misalnya, untuk menggunakan jenis kolektor file , kolom file_settings.file_path harus ditambahkan ke konfigurasi dan diberi nilai. Misalnya:"file_settings": { Jenis kolektor dan kolomnya tercantum di baris berikutnya dalam tabel ini. Jenis kolektor yang tersedia adalah:
|
|
file_settings.file_path | string | Opsional | Jalur file yang akan dipantau. |
kafka_settings.authentication.username | string | Opsional | Nama pengguna identitas yang digunakan untuk autentikasi. |
kafka_settings.authentication.password | string | Opsional | Sandi akun yang diidentifikasi oleh nama pengguna. |
kafka_settings.topic | string | Opsional | Topik Kafka tempat data akan diserap. Untuk mengetahui detailnya, lihat Mengumpulkan data dari topik Kafka. |
kafka_settings.group_id | string | Opsional | ID grup. |
kafka_settings.timeout | bilangan bulat | Opsional | Jumlah detik maksimum yang diperlukan panggilan untuk menunggu koneksi selesai. Defaultnya adalah 60 . |
kafka_settings.brokers | string | Opsional | String berulang yang mencantumkan broker Kafka. Misalnya: "broker-1:9092", "broker-2:9093" Catatan: Semua nilai diganti selama operasi pembaruan. Oleh karena itu, untuk memperbarui daftar broker guna menambahkan broker baru, tentukan semua broker yang ada dan broker baru. |
kafka_settings.tls_settings.certificate | string | Opsional | Jalur dan nama file sertifikat. Misalnya:/path/to/cert.pem |
kafka_settings.tls_settings.certificate_key | string | Opsional | Jalur dan nama file kunci sertifikat. Misalnya:/path/to/cert.key |
kafka_settings.tls_settings.minimum_tls_version | string | Opsional | Versi TLS minimum. |
kafka_settings.tls_settings.insecure_skip_verify | bool | Opsional | Jika true , verifikasi sertifikasi SSL akan diaktifkan.Defaultnya adalah false . |
pcap_settings.network_interface | string | Opsional | Antarmuka yang akan memproses data PCAP. |
pcap_settings.bpf | string | Opsional | Berkeley Packet Filter (BPF) untuk pcap. |
splunk_settings.authentication.username | string | Opsional | Nama pengguna identitas yang digunakan untuk autentikasi. |
splunk_settings.authentication.password | string | Opsional | Sandi akun yang diidentifikasi oleh nama pengguna. |
splunk_settings.host | string | Opsional | Host atau alamat IP untuk Splunk REST API. |
splunk_settings.port | bilangan bulat | Opsional | Port untuk Splunk REST API. |
splunk_settings.minimum_window_size | bilangan bulat | Opsional | Rentang waktu minimum dalam detik untuk penelusuran Splunk tertentu. Untuk mengetahui detailnya, lihat Mengumpulkan data Splunk. Defaultnya adalah 10 . |
splunk_settings.maximum_window_size | bilangan bulat | Opsional | Rentang waktu maksimum dalam detik untuk penelusuran Splunk tertentu. Untuk mengetahui detailnya, lihat Mengumpulkan data Splunk. Defaultnya adalah 30 . |
splunk_settings.query_string | string | Opsional | Kueri yang digunakan untuk memfilter kumpulan data dalam Splunk. Misalnya: search index=* sourcetype=dns |
splunk_settings.query_mode | string | Opsional | Mode kueri untuk Splunk. Misalnya: realtime |
splunk_settings.cert_ignored | bool | Opsional | Jika true , sertifikat akan diabaikan. |
syslog_settings.protocol | enum | Opsional | Menentukan protokol yang akan digunakan kolektor untuk memproses data syslog. Nilai yang valid adalah:
|
syslog_settings.address | string | Opsional | Alamat IP atau nama host target tempat kolektor berada dan memproses data syslog. |
syslog_settings.port | bilangan bulat | Opsional | Port target tempat kolektor berada dan memproses data syslog. |
syslog_settings.buffer_size | bilangan bulat | Opsional | Ukuran dalam byte dari buffer soket TCP. Default untuk TCP adalah 65536 .Default untuk UDP adalah 8192 . |
syslog_settings.connecton_timeout | bilangan bulat | Opsional | Jumlah detik tidak ada aktivitas setelah koneksi TCP dihentikan. Defaultnya adalah 60 . |
syslog_settings.tls_settings.certificate | string | Opsional | Jalur dan nama file sertifikat. Misalnya:/path/to/cert.pem |
syslog_settings.tls_settings.certificate_key | string | Opsional | Jalur dan nama file kunci sertifikat. Misalnya:/path/to/cert.key |
syslog_settings.tls_settings.minimum_tls_version | string | Opsional | Versi TLS minimum. |
syslog_settings.tls_settings.insecure_skip_verify | bool | Opsional | Jika true , verifikasi sertifikasi SSL akan diaktifkan.Defaultnya adalah false . |