ANSIBLE_AWX
Dokumen ini menjelaskan cara menyerap log Ansible AWX ke Google Security Operations menggunakan Bindplane. Parser mengekstrak kolom dari log Ansible AWX berformat JSON. Parser ini menggunakan penguraian JSON untuk mengekstrak kolom log, lalu memetakan nilai ini ke Unified Data Model (UDM). Selain itu, fungsi ini juga menetapkan nilai metadata default untuk sumber dan jenis peristiwa.
Sebelum memulai
Pastikan Anda memenuhi prasyarat berikut:
- Instance Google SecOps.
- Host Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
. - Jika berjalan di belakang proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen BindPlane.
- Akses istimewa ke konsol atau appliance pengelolaan Ansible AWX dengan izin administrator.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
- Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.
Menginstal agen Bindplane
Instal agen Bindplane di sistem operasi Windows atau Linux Anda sesuai dengan petunjuk berikut.
Penginstalan Windows
- Buka Command Prompt atau PowerShell sebagai administrator.
Jalankan perintah berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Penginstalan Linux
- Buka terminal dengan hak istimewa root atau sudo.
Jalankan perintah berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Referensi penginstalan tambahan
Untuk opsi penginstalan tambahan, lihat panduan penginstalan.
Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps
- Akses file konfigurasi:
- Cari file
config.yaml
. Biasanya, file tersebut berada di direktori/opt/observiq-otel-collector/
di Linux atau direktoriC:Program FilesobservIQ OpenTelemetry Collector
di Windows. - Buka file menggunakan editor teks (misalnya,
nano
,vi
, atau Notepad).
- Cari file
Edit file
config.yaml
sebagai berikut:receivers: udplog: # Using high port to avoid requiring root privileges listen_address: "0.0.0.0:514" exporters: chronicle/awx: endpoint: malachiteingestion-pa.googleapis.com creds_file_path: '/path/to/ingestion-authentication-file.json' customer_id: YOUR_CUSTOMER_ID log_type: 'ANSIBLE_AWX' raw_log_field: body service: pipelines: logs/awx: receivers: - udplog exporters: - chronicle/awx
- Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.
- Ganti
YOUR_CUSTOMER_ID
dengan ID pelanggan yang sebenarnya. - Perbarui
/path/to/ingestion-authentication-file.json
ke jalur tempat file autentikasi disimpan di Langkah 1.
Mulai ulang Agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen BindPlane di Linux, jalankan perintah berikut:
sudo systemctl restart observiq-otel-collector
Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
sc stop observiq-otel-collector && sc start observiq-otel-collector
Mengonfigurasi logging eksternal di Ansible AWX
- Login ke Konsol Pengelolaan Ansible AWX.
- Buka Setelan dari menu navigasi.
- Pilih Setelan logging dari opsi Sistem.
- Berikan detail konfigurasi berikut:
- Logging Aggregator: Masukkan alamat IP agen Bindplane.
- Logging Aggregator Port: Masukkan nomor port agen BindPlane (misalnya,
514
). - Jenis Agregator Logging: Pilih Lainnya dari daftar.
- Nama Pengguna Pengumpul Log: Biarkan kosong (tidak diperlukan untuk syslog).
- Sandi/Token Penggabung Logging: Kosongkan (tidak diperlukan untuk syslog).
- Logging Aggregator Protocol: Pilih UDP (direkomendasikan untuk syslog).
- Logging Aggregator Level Threshold: Pilih Info atau tingkat log pilihan Anda.
- Aktifkan Logging Eksternal: Klik tombol ke posisi AKTIF.
- Pencatat Log untuk Mengirim Data ke Penggabung Log: Pilih jenis log yang relevan:
awx
: Log server umumactivity_stream
: Catatan perubahan pada objek AWXjob_events
: Data modul callback Ansiblesystem_tracking
: Data konfigurasi dan fakta sistem
- Mencatat Fakta Pelacakan Sistem Secara Terpisah: Nonaktifkan NONAKTIF (default).
- Klik Simpan untuk menerapkan setelan.
- Opsional: Klik Uji untuk memverifikasi koneksi ke agen Bindplane.
Tabel pemetaan UDM
Kolom log | Pemetaan UDM | Logika |
---|---|---|
agent.ephemeral_id |
observer.labels.value |
Nilai agent.ephemeral_id dari log mentah. |
agent.hostname |
observer.hostname |
Nilai agent.hostname dari log mentah. |
agent.id |
observer.asset_id |
Penggabungan "filebeat:" dan nilai agent.id dari log mentah. |
agent.name |
observer.user.userid |
Nilai agent.name dari log mentah. |
agent.type |
observer.application |
Nilai agent.type dari log mentah. |
agent.version |
observer.platform_version |
Nilai agent.version dari log mentah. |
cloud.availability_zone |
principal.resource.attribute.labels.value |
Nilai cloud.availability_zone dari log mentah. |
cloud.instance.id |
principal.resource.product_object_id |
Nilai cloud.instance.id dari log mentah. |
cloud.instance.name |
principal.resource.name |
Nilai cloud.instance.name dari log mentah. |
cloud.machine.type |
principal.resource.attribute.labels.value |
Nilai cloud.machine.type dari log mentah. |
cloud.provider |
principal.resource.attribute.labels.value |
Nilai cloud.provider dari log mentah. |
event1 |
metadata.description |
Nilai event1 dari log mentah. Jika event1 tidak ada, nilai message akan digunakan. |
event1_data.host |
principal.hostname |
Nilai event1_data.host dari log mentah. |
event1_data.remote_addr |
principal.ip |
Alamat IP yang diekstrak dari event1_data.remote_addr menggunakan pola grok. |
event1_data.task |
security_result.detection_fields.value |
Nilai event1_data.task dari log mentah. |
event1_data.task_path |
principal.process.file.full_path |
Nilai event1_data.task_path dari log mentah. |
event1_data.task_uuid |
security_result.detection_fields.value |
Nilai event1_data.task_uuid dari log mentah. |
event1_data.uuid |
metadata.product_log_id |
Nilai event1_data.uuid dari log mentah. |
event1_display |
security_result.description |
Nilai event1_display dari log mentah. |
host |
principal.hostname |
Nilai host dari log mentah, digunakan jika event1_data.host dan host_name tidak ada. |
host.architecture |
target.asset.hardware.cpu_platform |
Nilai host.architecture dari log mentah. |
host.fqdn |
target.administrative_domain |
Nilai host.fqdn dari log mentah. |
host.hostname |
target.hostname |
Nilai host.hostname dari log mentah. |
host.id |
target.asset.asset_id |
Gabungan "Host Id: " dan nilai host.id dari log mentah. |
host.ip |
target.asset.ip |
Nilai host.ip dari log mentah. |
host.mac |
target.mac |
Nilai host.mac dari log mentah. |
host.os.codename |
target.asset.attribute.labels.value |
Nilai host.os.codename dari log mentah. |
host.os.kernel |
target.platform_patch_level |
Nilai host.os.kernel dari log mentah. |
host.os.name |
target.asset.attribute.labels.value |
Nilai host.os.name dari log mentah. |
host.os.platform |
target.platform |
Ditetapkan ke "LINUX" jika host.os.platform adalah "debian". |
host.os.version |
target.platform_version |
Nilai host.os.version dari log mentah. |
host_name |
principal.hostname |
Nilai host_name dari log mentah, digunakan jika event1_data.host tidak ada. |
input.type |
network.ip_protocol |
Tetapkan ke "TCP" jika input.type adalah "tcp". |
level |
security_result.severity |
Dipetakan berdasarkan nilai level : "DEBUG", "INFO", "AUDIT" dipetakan ke "INFORMATIONAL"; "ERROR" dipetakan ke "ERROR"; "WARNING" dipetakan ke "MEDIUM". |
level |
security_result.severity_details |
Nilai level dari log mentah. |
log.source.address |
principal.ip |
Alamat IP yang diekstrak dari log.source.address menggunakan pola grok. |
log.source.address |
principal.port |
Port yang diekstrak dari log.source.address menggunakan pola grok. |
logger_name |
intermediary.application |
Nilai logger_name dari log mentah. |
message |
metadata.description |
Nilai message dari log mentah, digunakan sebagai penggantian jika event1 tidak ada. |
parent_uuid |
security_result.detection_fields.value |
Nilai parent_uuid dari log mentah. |
timestamp |
metadata.event_timestamp |
Nilai timestamp dari log mentah, diuraikan menggunakan filter tanggal. Ditentukan oleh logika: "NETWORK_CONNECTION" jika log.source.address ada dan host.ip ada di JSON; "STATUS_UPDATE" jika principal_hostname atau event1_data.remote_addr ada; "GENERIC_EVENT" jika tidak ada. Dikodekan secara permanen ke "ANSIBLE_AWX". Dikodekan secara permanen ke "ANSIBLE_AWX". Dikodekan secara permanen ke "ANSIBLE_AWX". Dikodekan secara permanen ke "ephemeral_id". Dikodekan secara permanen ke "machine_type", "provider", atau "availability_zone" bergantung pada kolom yang dipetakan. Dikodekan secara permanen ke "VIRTUAL_MACHINE". Dikodekan secara permanen ke "parent_uuid", "task", atau "task_uuid", bergantung pada kolom yang dipetakan. Dikodekan secara permanen ke "codename" atau "os_name" bergantung pada kolom yang dipetakan. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.