Kirim log dari Log Service ke Splunk secara real time menggunakan Alibaba Cloud Log Service Add-on for Splunk.
Cara kerja
Add-on bekerja sebagai berikut:
-
Membuat consumer group Log Service melalui data input Splunk untuk mengonsumsi log secara real time.
-
Mengirim log yang dikumpulkan ke indexer Splunk melalui protokol privat Splunk atau HTTP Event Collector (HEC).
Ini adalah add-on pengumpulan data. Instal hanya pada heavy forwarder Splunk. Jangan instal di indexer atau search head.
Konsep utama
-
Data input bertindak sebagai konsumen yang mengonsumsi log.
-
Consumer group berisi beberapa konsumen yang bersama-sama mengonsumsi data dari logstore. Setiap log diproses oleh hanya satu konsumen untuk mencegah duplikasi.
-
Logstore berisi beberapa shard.
-
Setiap shard ditugaskan hanya ke satu konsumen.
-
Satu konsumen dapat ditugaskan beberapa shard.
-
-
Nama setiap konsumen menggabungkan nama consumer group, hostname, nama proses, dan jenis protokol event, sehingga menjamin keunikan dalam grup tersebut.
Prasyarat
-
Dapatkan pasangan AccessKey untuk Log Service.
Gunakan Resource Access Management (RAM) Alibaba Cloud untuk mendapatkan pasangan AccessKey untuk proyek Log Service Anda. Pasangan AccessKey.
Gunakan asisten izin untuk mengonfigurasi izin RAM. Konfigurasi asisten izin. Kode berikut menunjukkan kebijakan RAM umum:
CatatanGanti
<Project name>dan<logstore name>dengan nama aktual Anda. Wildcard (*) didukung.{ "Version": "1", "Statement": [ { "Action": [ "log:ListShards", "log:GetCursorOrData", "log:GetConsumerGroupCheckPoint", "log:UpdateConsumerGroup", "log:ConsumerGroupHeartBeat", "log:ConsumerGroupUpdateCheckPoint", "log:ListConsumerGroup", "log:CreateConsumerGroup" ], "Resource": [ "acs:log:*:*:project/<Project name>/logstore/<LogStore name>", "acs:log:*:*:project/<Project name>/logstore/<LogStore name>/*" ], "Effect": "Allow" } ] } -
Periksa versi Splunk dan lingkungan runtime Anda.
-
Pastikan Anda menggunakan versi terbaru add-on.
-
Sistem operasi: Linux, macOS, atau Windows.
-
Versi Splunk: heavy forwarder Splunk 8.0 atau lebih baru dan indexer Splunk 7.0 atau lebih baru.
-
-
Konfigurasi Splunk HTTP Event Collector (HEC). Konfigurasi HTTP Event Collector di Splunk Enterprise.
Hanya diperlukan jika Anda menggunakan HEC. Lewati langkah ini jika Anda menggunakan protokol privat Splunk.
CatatanSaat Anda membuat token Event Collector, fitur acknowledgment indexer tidak didukung.
Instal add-on
Login ke UI web Splunk dan gunakan salah satu metode berikut untuk menginstal add-on.
Ini adalah add-on pengumpulan data. Instal hanya pada heavy forwarder Splunk. Jangan instal di indexer atau search head.
-
Metode 1: Instal dari Splunkbase
-
Klik ikon
. -
Di halaman Apply, klik Browse more apps.
-
Cari Alibaba Cloud Log Service Add-on for Splunk dan klik Install.
-
Restart layanan Splunk seperti yang diminta.
-
-
Metode 2: Instal dari file
-
Klik ikon
. -
Di halaman Apply, klik Install app from file.
-
Pilih file .tgz target dan klik Upload.
Anda dapat mengunduh file .tgz target dari Splunkbase.
-
Klik Install.
-
Restart layanan Splunk seperti yang diminta.
-
Konfigurasi add-on
Jika Splunk tidak berjalan pada instans ECS Alibaba Cloud, gunakan pasangan AccessKey untuk mengakses Log Service:
-
Di UI web Splunk, klik Alibaba Cloud Log Service Add-on for Splunk.
-
Konfigurasi akun global.
Buka tab dan konfigurasi pasangan AccessKey untuk Log Service.
CatatanBidang Username dan Password dipetakan ke AccessKey ID dan AccessKey Secret Log Service.
-
Konfigurasi tingkat logging untuk add-on.
Buka tab dan konfigurasi tingkat logging untuk add-on.
-
Buat data input.
-
Klik Input untuk membuka halaman Input.
-
Klik Create New Input untuk membuat data input baru.
Tabel 1. Parameter data input
Parameter
Wajib dan format
Deskripsi
Contoh
Name
Ya, String
Nama unik global untuk data input.
None
Interval
Ya, Integer
Interval dalam detik sebelum proses data input dimulai ulang setelah keluar.
Nilai default: 10
Index
Ya, String
Indeks Splunk.
None
SLS AccessKey
Ya, String
Pasangan AccessKey Alibaba Cloud (AccessKey ID dan AccessKey Secret).
CatatanBidang Username dan Password dipetakan ke AccessKey ID dan AccessKey Secret Log Service.
Username dan password yang dikonfigurasi untuk akun global.
SLS endpoint
Ya, String
Titik akhir Log Service. Endpoints.
-
cn-huhehaote.log.aliyuncs.com -
https://cn-huhehaote.log.aliyuncs.com
SLS project
Ya, String
Proyek Log Service. Kelola proyek.
None
SLS logstore
Ya, String
Logstore Log Service. Untuk informasi selengkapnya, lihat Kelola logstore.
None
SLS consumer group
Ya, String
Consumer group Log Service. Untuk penskalaan horizontal, gunakan nama consumer group yang sama di beberapa data input. Gunakan consumer group untuk mengonsumsi log.
None
SLS cursor start time
Ya, String
Waktu mulai pengonsumsian log. Hanya berlaku saat consumer group pertama kali dibuat. Consumer group yang sudah ada akan dilanjutkan dari checkpoint terakhir yang disimpan.
CatatanWaktu ini didasarkan pada saat log tiba di server.
Nilai valid:
begin,end, atau waktu dalam format ISO 8601 (misalnya,2018-12-26 0:0:0+8:00).SLS heartbeat interval
Ya, Integer
Interval heartbeat dalam detik antara konsumen dan server.
Nilai default: 60
SLS data fetch interval
Ya, Integer
Interval dalam detik untuk menarik log. Hindari nilai kecil saat frekuensi log rendah.
Nilai default: 1
Consumer processor
Tidak, String
Processor konsumen yang berisi SPL (misalnya, consume-processor-1). Harus dibuat di proyek Anda terlebih dahulu. Hanya untuk Linux x86_64. Kelola processor konsumen.
None
Topic filter
Tidak, String
Daftar topik yang dipisahkan titik koma untuk difilter. Log yang sesuai dengan salah satu topik yang tercantum tidak dikirim ke Splunk.
"TopicA;TopicB"berarti log dengan topik "TopicA" atau "TopicB" diabaikan.Unfolded fields
Tidak, JSON
Pemetaan berformat JSON dari topik ke daftar bidang:
{"topicA": ["field_nameA1", "field_nameA2", ...], "topicB": ["field_nameB1", "field_nameB2", ...], ...}{"actiontrail_audit_event": ["event"] }berarti untuk log dengan topikactiontrail_audit_event, string di bidangeventlog diperluas menjadi objek JSON.Event source
Tidak, String
Sumber data untuk event Splunk.
None
Event source type
Tidak, String
Jenis sumber untuk event Splunk.
None
Event retry times
Tidak, Integer
Atur ke
0untuk percobaan ulang tanpa batas.Nilai default: 0
Event protocol
Ya
Protokol untuk mengirim event Splunk. Jika Anda memilih Private protocol, parameter HEC di bawah tidak berlaku.
-
HTTP untuk HEC
-
HTTPS untuk HEC
-
Private protocol
HEC host
Ya, String. Hanya berlaku saat Event protocol diatur ke opsi HEC.
Host HEC. Siapkan dan gunakan HTTP Event Collector di Splunk Web.
None
HEC port
Ya, Integer. Hanya berlaku saat Event protocol diatur ke opsi HEC.
Port HEC.
None
HEC token
Ya, String. Hanya berlaku saat Event protocol diatur ke opsi HEC.
Token HEC. Tentang token Event Collector.
None
HEC timeout
Ya, Integer. Hanya berlaku saat Event protocol diatur ke opsi HEC.
Periode timeout HEC dalam detik.
Nilai default: 120
-
-
Jika Splunk berjalan pada instans ECS Alibaba Cloud, sambungkan peran RAM ke instans tersebut untuk mengakses Log Service:
Pastikan Splunk berjalan pada instans ECS tempat peran RAM disambungkan.
-
Sambungkan peran RAM ke instans.
Buat peran RAM, berikan izin, dan sambungkan ke instans ECS. Konfigurasi instance RAM role.
Untuk kebijakan izin peran RAM, lihat kebijakan di bagian Prasyarat.
-
Di UI Web Splunk, klik Alibaba Cloud Log Service Add-on for Splunk.
-
Konfigurasi akun global.
Buka tab dan konfigurasi informasi peran RAM untuk instans ECS. Tambahkan akun dengan Username diatur ke
ECS_RAM_ROLEdan Password diatur ke nama peran RAM yang Anda buat di Langkah 1. -
Buat data input.
-
Klik Input untuk membuka halaman Input.
-
Klik Create New Input untuk membuat data input baru.
Atur parameter SLS AccessKey ke akun global yang Anda buat di Langkah 3. Untuk informasi tentang parameter lainnya, lihat Parameter data input.
-
Cari dan tampilkan log
-
Cari data
Pastikan data input diaktifkan. Di halaman utama Splunk, klik Search & Reporting untuk membuka halaman App: Search & Reporting dan kueri log audit yang dikumpulkan.

-
Lihat log internal
-
Gunakan kueri
index="_internal" | search "SLS info"untuk mencari informasi terkait Log Service. -
Gunakan kueri
index="_internal" | search "error"untuk mencari pesan kesalahan waktu proses.
-
Kinerja dan keamanan
-
Spesifikasi kinerja
Faktor-faktor berikut memengaruhi throughput add-on:
-
Titik akhir: Gunakan titik akhir publik, jaringan klasik, VPC, atau percepatan global. Titik akhir jaringan klasik atau VPC direkomendasikan. Endpoints.
-
Bandwidth: Antara Log Service dan heavy forwarder, serta antara heavy forwarder dan indexer.
-
Kemampuan pemrosesan indexer Splunk.
-
Jumlah shard: Lebih banyak shard meningkatkan kemampuan transfer data. Atur jumlah berdasarkan laju pembuatan log sumber Anda. Kelola shard.
-
Jumlah data input Splunk: Lebih banyak data input dengan consumer group yang sama meningkatkan throughput.
CatatanKonkurensi konsumen dipengaruhi oleh jumlah shard di logstore Log Service.
-
CPU dan memori: Setiap data input biasanya menggunakan 1–2 GB memori dan satu core CPU.
Satu data input dapat mengonsumsi log dengan kecepatan 1–2 MB/detik. Atur jumlah shard berdasarkan laju pembuatan log sumber Anda.
Sebagai contoh, logstore yang menghasilkan 10 MB/detik memerlukan minimal 10 shard dan 10 data input. Pada satu mesin, ini memerlukan 10 core CPU dan 12 GB memori.
-
-
Ketersediaan tinggi
Consumer group menyimpan checkpoint di server. Jika satu konsumen berhenti, konsumen lain mengambil alih dari checkpoint terakhir. Anda dapat mendistribusikan data input di beberapa mesin untuk redundansi. Untuk toleransi kesalahan tambahan, jalankan lebih banyak data input daripada jumlah shard.
-
Gunakan HTTPS
-
Log Service
Jika titik akhir diawali dengan
https://, sepertihttps://cn-beijing.log.aliyuncs.com, koneksi ke Log Service secara otomatis dienkripsi menggunakan HTTPS.Sertifikat server
*.aliyuncs.comdikeluarkan oleh GlobalSign. Secara default, sebagian besar mesin Linux dan Windows secara otomatis mempercayai sertifikat ini. Dalam kasus jarang di mana mesin tidak mempercayai sertifikat ini, lihat Instal CA root tepercaya atau sertifikat tanda tangan sendiri. -
Splunk
Untuk menggunakan HEC melalui HTTPS, aktifkan SSL di pengaturan global HEC Splunk. Konfigurasi HTTP Event Collector di Splunk Enterprise.
-
-
Perlindungan penyimpanan pasangan AccessKey
Pasangan AccessKey Log Service dan token HEC Splunk disimpan dalam penyimpanan terenkripsi Splunk untuk mencegah kebocoran kredensial.
Pemecahan masalah
-
Kesalahan konfigurasi
-
Pemeriksaan konfigurasi dasar dijalankan saat Anda membuat atau mengubah data input. Parameter data input.
-
Terjadi kesalahan konfigurasi Log Service, seperti kegagalan membuat consumer group.
-
Perintah:
index="_internal" | search "error" -
Log kesalahan:
aliyun.log.consumer.exceptions.ClientWorkerException: error occour when create consumer group, errorCode: LogStoreNotExist, errorMessage: logstore xxxx does not exist -
Kesalahan ConsumerGroupQuotaExceed
Satu logstore mendukung hingga 20 consumer group. Hapus consumer group yang tidak diperlukan di konsol Log Service jika Anda mendekati batas tersebut. Melebihi 20 akan memicu kesalahan
ConsumerGroupQuotaExceed.
-
-
-
Kesalahan izin
-
Tidak memiliki izin untuk mengakses Alibaba Cloud Log Service
-
Perintah:
index="_internal" | search "error" -
Log kesalahan:
aliyun.log.consumer.exceptions.ClientWorkerException: error occour when create consumer group, errorCode: SignatureNotMatch, errorMessage: signature J70VwxYH0+W/AciA4BdkuWxK6W8= not match
-
-
Otentikasi RAM ECS gagal
-
Perintah:
index="_internal" | search "error" -
Log kesalahan:
ECS RAM Role detected in user config, but failed to get ECS RAM credentials. Please check if ECS instance and RAM role 'ECS-Role' are configured appropriately.Nama ECS-Role adalah placeholder untuk nama aktual peran RAM Anda.
-
Kemungkinan penyebab:
-
Pastikan parameter SLS AccessKey di data input dikonfigurasi untuk menggunakan akun global yang memiliki peran RAM.
-
Pastikan akun global dikonfigurasi dengan benar untuk peran RAM. Username harus
ECS_RAM_ROLE, dan password harus nama peran RAM. -
Pastikan peran RAM disambungkan ke instans ECS.
-
Pastikan entitas tepercaya untuk peran RAM adalah layanan Alibaba Cloud, dan layanan tepercaya adalah Elastic Compute Service (ECS).
-
Pastikan instans ECS dengan peran RAM yang disambungkan adalah mesin yang sama yang menjalankan Splunk.
-
-
-
Tidak memiliki izin untuk mengakses HEC
-
Perintah:
index="_internal" | search "error" -
Log kesalahan:
ERROR HttpInputDataHandler - Failed processing http input, token name=n/a, channel=n/a, source_IP=127.0.0.1, reply=4, events_processed=0, http_input_body_size=369 WARNING pid=48412 tid=ThreadPoolExecutor-0_1 file=base_modinput.py:log_warning:302 | SLS info: Failed to write [{"event": "{\"__topic__\": \"topic_test0\", \"__source__\": \"127.0.0.1\", \"__tag__:__client_ip__\": \"10.10.10.10\", \"__tag__:__receive_time__\": \"1584945639\", \"content\": \"goroutine id [0, 1584945637]\", \"content2\": \"num[9], time[2020-03-23 14:40:37|1584945637]\"}", "index": "main", "source": "sls log", "sourcetype": "http of hec", "time": "1584945637"}] remote Splunk server (http://127.0.0.1:8088/services/collector) using hec. Exception: 403 Client Error: Forbidden for url: http://127.0.0.1:8088/services/collector, times: 3 -
Kemungkinan penyebab:
-
HEC tidak dikonfigurasi atau diaktifkan.
-
Konfigurasi HEC di data input salah. Misalnya, jika Anda menggunakan HTTPS, Anda harus mengaktifkan konfigurasi SSL.
-
Periksa apakah fitur acknowledgment indexer dinonaktifkan untuk token HEC.
-
-
-
-
Latensi konsumsi
Lihat status consumer group di konsol Log Service. Langkah 2: Lihat status consumer group.
Untuk mengatasi latensi konsumsi, tingkatkan jumlah shard atau buat lebih banyak data input dengan consumer group yang sama. Spesifikasi kinerja.
-
Jitter jaringan
-
Perintah:
index="_internal" | search "SLS info: Failed to write" -
Log kesalahan:
WARNING pid=58837 tid=ThreadPoolExecutor-0_0 file=base_modinput.py:log_warning:302 | SLS info: Failed to write [{"event": "{\"__topic__\": \"topic_test0\", \"__source__\": \"127.0.0.1\", \"__tag__:__client_ip__\": \"10.10.10.10\", \"__tag__:__receive_time__\": \"1584951417\", \"content2\": \"num[999], time[2020-03-23 16:16:57|1584951417]\", \"content\": \"goroutine id [0, 1584951315]\"}", "index": "main", "source": "sls log", "sourcetype": "http of hec", "time": "1584951417"}] remote Splunk server (http://127.0.0.1:8088/services/collector) using hec. Exception: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer')), times: 3
Add-on secara otomatis mencoba ulang. Jika masalah berlanjut, hubungi administrator jaringan Anda.
-
-
Ubah waktu mulai konsumsi
CatatanParameter SLS cursor start time hanya berlaku saat consumer group pertama kali dibuat. Grup yang sudah ada akan dilanjutkan dari checkpoint terakhir.
-
Di halaman Input di UI web Splunk, nonaktifkan data input target.
-
Login ke konsol Log Service. Di bagian Data Consumption logstore target, hapus consumer group yang sesuai.
-
Di halaman Input di UI web Splunk, klik di samping data input target. Ubah parameter SLS cursor start time lalu restart data input.
-