Untuk mengirimkan log ke sistem Security Information and Event Management (SIEM), Anda dapat men-deploy aplikasi yang menghubungkan SLS ke SIEM Anda. Aplikasi ini menggunakan consumer group SLS untuk menarik log, lalu meneruskannya ke SIEM Anda melalui Splunk HEC atau Syslog, sehingga mengintegrasikan log cloud dengan platform analitik keamanan on-premises Anda.
Latar Belakang
Perusahaan sering men-deploy platform Security Information and Event Management (SIEM), seperti Splunk atau QRadar, di pusat data on-premises. Untuk menjaga keamanan, platform tersebut biasanya tidak menyediakan titik akhir publik untuk menerima data. Saat memigrasikan bisnis ke cloud, Anda perlu mengonsolidasikan log dari sumber daya cloud ke SIEM on-premises guna pemantauan, audit, dan analisis ancaman terpadu. Oleh karena itu, Anda harus membuat pipeline pengiriman log yang aman dari SLS ke SIEM on-premises tanpa mengorbankan keamanan sistem yang sudah ada.
Cara Kerja
Untuk pengiriman data secara real-time, gunakan consumer group SLS. Aplikasi khusus menarik log dari SLS dan meneruskannya ke SIEM Anda melalui Splunk HTTP Event Collector (HEC) atau Syslog melalui TCP/TLS.
Logika Inti
-
Penarikan log: Aplikasi berbasis consumer group menarik data dari SLS. Mekanisme ini mendukung konsumsi konkuren dan failover.
-
Konkurensi dan throughput
-
Untuk mencapai throughput lebih tinggi, jalankan beberapa instans aplikasi konsumen. Setiap instans konsumen harus berada dalam consumer group yang sama dan memiliki nama unik, misalnya dengan menggunakan ID proses sebagai akhiran.
-
Hanya satu konsumen yang dapat memproses satu shard dalam satu waktu. Oleh karena itu, jumlah maksimum konsumen konkuren dibatasi oleh jumlah shard dalam penyimpanan log. Misalnya, jika sebuah penyimpanan log memiliki 10 shard, Anda dapat menjalankan hingga 10 konsumen secara paralel.
-
Dalam kondisi jaringan ideal:
-
Satu konsumen (menggunakan sekitar 20% dari satu core CPU) dapat mengonsumsi log mentah dengan laju 10 MB/detik.
-
Sepuluh konsumen dapat memproses hingga 100 MB/detik log mentah.
-
-
-
Ketersediaan tinggi
-
Consumer group menyimpan progres setiap konsumen sebagai checkpoint di server.
-
Jika sebuah instans konsumen gagal, instans lain yang tersedia secara otomatis mengambil alih shard yang ditugaskan kepadanya dan melanjutkan pemrosesan dari checkpoint terakhir yang disimpan. Untuk memastikan failover yang andal, Anda dapat menjalankan instans konsumen pada mesin yang berbeda.
-
Anda dapat menjalankan lebih banyak instans konsumen daripada jumlah shard. Instans tambahan tersebut bertindak sebagai standby untuk failover segera.
-
-
-
Penerusan data: Setelah menarik log, aplikasi memformat dan meneruskannya ke SIEM on-premises Anda sesuai konfigurasi Anda.
Prasyarat
-
Buat Pengguna RAM dan berikan izin: Pengguna RAM harus memiliki kebijakan
AliyunLogFullAccess. -
Persyaratan jaringan: Mesin yang menjalankan aplikasi harus dapat mengakses titik akhir SLS dan berada dalam jaringan yang sama dengan SIEM.
-
Untuk mendapatkan titik akhir:
-
Masuk ke Konsol SLS. Di daftar proyek, klik proyek target Anda.
-
Klik ikon
di sebelah kanan nama proyek untuk membuka halaman ikhtisar proyek. -
Di bagian Endpoint, salin titik akhir publik. Titik akhir lengkapnya adalah
https://+ titik akhir publik.
-
-
-
Persyaratan lingkungan: Siapkan lingkungan runtime Python 3 dan instal SDK Python SLS.
-
Instal SDK Python SLS:
pip install -U aliyun-log-python-sdk. -
Verifikasi instalasi:
pip show aliyun-log-python-sdk. Instalasi yang berhasil akan mengembalikan informasi seperti berikut.Name: aliyun-log-python-sdk Version: 0.9.12 Summary: Aliyun log service Python client SDK Home-page: https://github.com/aliyun/aliyun-log-python-sdk Author: Aliyun
-
Prosedur
Langkah 1: Siapkan aplikasi
SLS menyediakan skrip contoh untuk dua metode pengiriman: Splunk HEC dan Syslog. Pilih metode yang sesuai dengan SIEM Anda dan konfigurasikan skrip yang sesuai.
-
Splunk HEC: HTTP Event Collector (HEC) adalah mekanisme berbasis token yang memungkinkan Anda mengirim data dalam berbagai format secara aman dan efisien ke Splunk melalui HTTP.
-
Syslog: Protokol logging umum yang kompatibel dengan sebagian besar sistem SIEM dan mendukung format teks biasa.
Splunk HEC
Untuk mengirimkan data log ke Splunk, konfigurasikan skrip sync_data.py yang disediakan. Skrip ini terdiri dari tiga bagian utama:
-
Metode main(): Logika kontrol program utama.
-
Metode get_option(): Menentukan opsi konfigurasi konsumsi.
-
Konfigurasi dasar: Termasuk pengaturan koneksi untuk SLS dan consumer group.
-
Opsi consumer group lanjutan: Termasuk parameter penyetelan performa. Jangan ubah ini kecuali diperlukan.
-
Parameter dan opsi SIEM (Splunk).
-
Tambahkan kueri SPL untuk memfilter atau mentransformasi data selama pengiriman untuk tugas seperti filter baris, pemangkasan kolom, atau normalisasi data. Contoh:
# Kueri SPL query = "* | where instance_id in ('instance-1', 'instance-2')" # Buat konsumen dengan aturan filter. Parameter 'query' ditambahkan ke konfigurasi. option = LogHubConfig(endpoint, accessKeyId, accessKey, project, logstore, consumer_group, consumer_name, cursor_position=CursorPosition.SPECIAL_TIMER_CURSOR, cursor_start_time=cursor_start_time, heartbeat_interval=heartbeat_interval, data_fetch_interval=data_fetch_interval, query=query)
-
-
Kelas SyncData(ConsumerProcessorBase): Berisi logika untuk mengambil data dari SLS dan mengirimkannya ke Splunk. Tinjau komentar dalam kode dan sesuaikan logika sesuai kebutuhan.
Skrip lengkap disediakan di bawah ini:
Syslog
Syslog menentukan spesifikasi format log berdasarkan protokol seperti RFC 5424 dan RFC 3164. Kami merekomendasikan penggunaan RFC 5424. Meskipun Syslog dapat ditransmisikan melalui UDP maupun TCP, TCP memberikan transmisi data yang lebih andal. RFC 5424 juga menentukan lapisan transport aman menggunakan TLS. Jika SIEM Anda mendukung Syslog melalui saluran TCP atau TLS, gunakanlah.
Untuk mengirimkan data log ke SIEM menggunakan Syslog, Anda dapat mengonfigurasi skrip sync_data.py yang disediakan. Skrip ini terdiri dari tiga bagian utama:
-
Metode main(): Logika kontrol program utama.
-
Metode get_monitor_option(): Menentukan opsi konfigurasi konsumsi.
-
Konfigurasi dasar: Termasuk pengaturan koneksi untuk SLS dan consumer group.
-
Opsi consumer group lanjutan: Termasuk parameter penyetelan performa. Jangan ubah ini kecuali diperlukan.
-
Parameter dan opsi server Syslog SIEM.
-
Fasilitas Syslog: Komponen program yang menghasilkan log. Contoh ini menggunakan
syslogclient.FAC_USERsebagai default. -
Tingkat keparahan Syslog: tingkat log dari pesan. Anda dapat menyesuaikannya berdasarkan konten log. Contoh ini menggunakan
syslogclient.SEV_INFO. -
Jika SIEM Anda mendukung Syslog melalui TCP atau TLS, atur parameter proto ke TLS dan berikan path ke sertifikat SSL yang valid.
-
-
-
Kelas SyncData(ConsumerProcessorBase): Berisi logika untuk mengambil data dari SLS dan mengirimkannya ke server Syslog. Tinjau komentar dalam kode dan sesuaikan logika sesuai kebutuhan.
Skrip lengkap disediakan di bawah ini:
Langkah 2: Konfigurasikan variabel lingkungan
Setelah mengonfigurasi program, lakukan konfigurasi variabel lingkungan sistem sesuai tabel berikut.
|
Parameter |
Nilai |
Contoh |
|
SLS_ENDPOINT |
Jika titik akhir diawali dengan |
|
|
SLS_PROJECT |
Nama proyek target Anda di Konsol SLS. |
my-sls-project-one |
|
SLS_LOGSTORE |
Nama penyimpanan log target Anda di Konsol SLS. |
my-sls-logstore-a1 |
|
SLS_AK_ID |
ID AccessKey Pengguna RAM Anda. Penting
|
L***ky |
|
SLS_AK_KEY |
Secret AccessKey Pengguna RAM Anda. |
x***Xl |
|
SLS_CG |
Nama consumer group. Anda dapat menggunakan nama sederhana seperti "sync_data". Jika grup yang ditentukan belum ada, aplikasi akan membuatnya secara otomatis. |
sync_data |
Langkah 3: Mulai dan verifikasi
-
Jalankan beberapa proses konsumen untuk mengaktifkan pemrosesan konkuren. Jumlah maksimum proses konkuren sama dengan jumlah shard dalam penyimpanan log Anda.
# Jalankan proses konsumen pertama nohup python3 sync_data.py & # Jalankan proses konsumen kedua nohup python3 sync_data.py & -
Lihat status consumer group di Konsol SLS.
-
Di daftar proyek, klik proyek target Anda. Buka tab . Klik ikon
di sebelah nama penyimpanan log target Anda, lalu klik ikon
di sebelah Data Consumption. -
Di daftar consumer group, klik consumer group target Anda. Di tab Consumer Group Status, lihat klien konsumen dan progres untuk setiap shard.
-
FAQ
ConsumerGroupQuotaExceed error
Error ini menunjukkan bahwa Anda telah melebihi kuota untuk consumer group. Satu penyimpanan log dapat memiliki maksimal 30 consumer group. Untuk mengatasi masalah ini, hapus consumer group yang tidak digunakan di Konsol SLS.