Topik ini menjelaskan cara mengirim log dari Layanan Log Sederhana ke Splunk menggunakan Add-on Alibaba Cloud Log Service untuk Splunk.
Arsitektur
Berikut adalah penjelasan tentang cara mengirim log menggunakan add-on:
Buat grup konsumen menggunakan input data Splunk dan gunakan grup tersebut untuk mengonsumsi log di Layanan Log Sederhana secara real-time.
Splunk heavy forwarder menggunakan protokol pribadi Splunk atau HTTP Event Collector (HEC) untuk meneruskan log ke indexer Splunk.
Add-on ini hanya digunakan untuk mengumpulkan data. Anda harus menginstalnya pada Splunk heavy forwarder, tetapi tidak pada indexer atau search head.
Istilah
Input data adalah konsumen yang mengonsumsi log.
Grup konsumen berisi beberapa konsumen. Setiap konsumen dalam grup mengonsumsi log yang berbeda yang disimpan dalam penyimpanan log.
Penyimpanan log berisi beberapa shard.
Setiap shard hanya dapat dialokasikan ke satu konsumen.
Seorang konsumen dapat mengonsumsi data dari beberapa shard.
Nama seorang konsumen mencakup nama grup konsumen tempat konsumen tersebut termasuk, nama host, nama proses, dan protokol yang digunakan untuk mengirim peristiwa Splunk. Konvensi penamaan ini memastikan bahwa nama setiap konsumen dalam grup bersifat unik.
Untuk informasi lebih lanjut tentang grup konsumen, lihat Gunakan Grup Konsumen untuk Mengonsumsi Log.
Persiapan
Dapatkan pasangan AccessKey yang digunakan untuk mengakses Layanan Log Sederhana.
Anda dapat menggunakan pasangan AccessKey dari pengguna Resource Access Management (RAM) untuk mengakses proyek Layanan Log Sederhana. Untuk informasi lebih lanjut, lihat Pasangan AccessKey.
Gunakan fitur Asisten Izin untuk memberikan izin kepada pengguna RAM. Contoh berikut menunjukkan kebijakan umum.
Catatan<Nama Proyek> menentukan nama proyek Layanan Log Sederhana Anda. <Nama Penyimpanan Log> menentukan nama penyimpanan log Layanan Log Sederhana Anda. Ganti nilai-nilai tersebut dengan nilai aktual. Gunakan karakter wildcard untuk menentukan nama, dan tanda bintang (*) 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/<Nama Proyek>/logstore/<Nama Penyimpanan Log>", "acs:log:*:*:project/<Nama Proyek>/logstore/<Nama Penyimpanan Log>/*" ], "Effect": "Allow" } ] }Periksa versi Splunk dan sistem operasi tempat Splunk dijalankan. Pastikan bahwa:
Versi terbaru dari add-on digunakan.
Sistem operasi adalah Linux, macOS, atau Windows.
Versi Splunk heavy forwarder adalah 8.0 atau lebih baru dan versi Splunk indexer adalah 7.0 atau lebih baru.
Konfigurasikan HEC pada Splunk.
Jika Anda menggunakan HEC untuk mengirim peristiwa ke indexer Splunk, pastikan HEC dikonfigurasikan pada Splunk. Jika Anda menggunakan protokol pribadi Splunk untuk mengirim peristiwa ke indexer Splunk, lewati langkah ini.
CatatanSaat membuat token HEC, jangan aktifkan fitur pengakuan indexer untuk token tersebut.
Instal add-on
Anda dapat masuk ke antarmuka web Splunk dan menginstal add-on. Untuk menginstal add-on, kami merekomendasikan salah satu metode berikut:
Add-on ini hanya digunakan untuk mengumpulkan data. Anda harus menginstalnya pada Splunk heavy forwarder. Tidak perlu menginstalnya pada indexer Splunk atau search head.
Metode 1
Klik ikon
.Di halaman Apps, klik Find More Apps.
Di halaman Browse More Apps, cari Alibaba Cloud Log Service Add-on for Splunk dan klik Install.
Setelah add-on diinstal, mulai ulang Splunk sesuai petunjuk.
Metode 2
Klik ikon
.Di halaman Apps, klik Install app from file.
Di halaman Upload app, pilih file TGZ yang ingin Anda unggah dan klik Upload.
Anda dapat mengklik Hasil Pencarian Aplikasi dan mengunduh file TGZ yang diperlukan.
Klik Install.
Setelah add-on diinstal, mulai ulang Splunk sesuai petunjuk.
Konfigurasikan add-on
Jika Splunk tidak berjalan pada instance Elastic Compute Service (ECS), gunakan pasangan AccessKey akun Alibaba Cloud Anda untuk mengakses Layanan Log Sederhana.
Di antarmuka web Splunk, klik Alibaba Cloud Log Service Add-on for Splunk.
Konfigurasikan akun global.
Di halaman yang muncul, pilih . Di halaman Konfigurasi, klik tab Account. Di tab ini, klik Add. Dalam kotak dialog Tambah Akun, tentukan pasangan AccessKey yang dapat digunakan untuk mengakses Layanan Log Sederhana.
CatatanAnda harus memasukkan ID AccessKey di bidang Nama Pengguna dan Rahasia AccessKey terkait di bidang Kata Sandi.
Tentukan level log add-on.
Pilih . Di halaman Konfigurasi, klik tab Logging. Di tab ini, pilih level dari daftar drop-down Level Log.
Buat input data.
Klik inputs untuk membuka halaman inputs.
Klik Create New Input. Dalam kotak dialog Tambah sls_datainput, konfigurasikan parameter input data.
Tabel 1. Parameter Input Data
Parameter
Wajib dan tipe data
Deskripsi
Contoh
Nama
Ya, string
Nama input data. Harus unik secara global.
Tidak ada.
Interval
Ya, integer
Periode waktu yang diperlukan untuk memulai kembali proses input data Splunk setelah proses berhenti. Unit: detik.
Nilai default: 10.
Indeks
Ya, string
Indeks Splunk.
Tidak ada.
SLS AccessKey
Ya, string
Pasangan Alibaba Cloud AccessKey yang terdiri dari ID AccessKey dan Rahasia AccessKey.
CatatanAnda harus memasukkan ID AccessKey di bidang Nama Pengguna dan Rahasia AccessKey terkait di bidang Kata Sandi.
Pasangan AccessKey yang Anda masukkan saat mengonfigurasi akun global.
Titik akhir SLS
Ya, string
cn-huhehaote.log.aliyuncs.com
https://cn-huhehaote.log.aliyuncs.com
Proyek SLS
Ya, string
Nama proyek Layanan Log Sederhana. Untuk informasi lebih lanjut, lihat Kelola proyek.
Tidak ada.
Penyimpanan log SLS
Ya, string
Nama penyimpanan log Layanan Log Sederhana. Untuk informasi lebih lanjut, lihat Kelola penyimpanan log.
Tidak ada.
Grup konsumen SLS
Ya, string
Nama grup konsumen Layanan Log Sederhana. Jika Anda ingin menggunakan beberapa input data untuk mengonsumsi data yang disimpan di penyimpanan log yang sama, Anda harus menentukan nama grup konsumen yang sama untuk input data tersebut. Untuk informasi lebih lanjut, lihat Gunakan grup konsumen untuk mengonsumsi log.
Tidak ada.
Waktu mulai kursor SLS
Ya, string
Waktu mulai konsumsi data log. Parameter ini hanya valid jika Anda menggunakan grup konsumen baru. Jika Anda menggunakan grup konsumen yang sudah ada, data dikonsumsi dari checkpoint terakhir.
CatatanWaktu mulai adalah waktu penerimaan log.
Nilai valid: begin, end, dan nilai waktu dalam format ISO 8601. Contoh: 2018-12-26 0:0:0+8:00.
Interval denyut jantung SLS
Ya, integer
Interval pengiriman pesan denyut jantung antara konsumen dan server. Unit: detik.
Nilai default: 60.
Interval pengambilan data SLS
Ya, integer
Interval pengambilan log dari Layanan Log Sederhana. Jika log dihasilkan dengan frekuensi rendah, kami sarankan Anda tidak menetapkan parameter ini ke nilai kecil. Unit: detik.
Nilai default: 1.
Filter topik
Tidak, string
String yang digunakan untuk menyaring log berdasarkan topik. Pisahkan beberapa topik dengan titik koma (;). Jika topik log cocok, log akan diabaikan dan tidak dikirim ke Splunk.
TopicA;TopicB. Nilai tersebut menentukan bahwa log yang topiknya adalah TopicA atau TopicB diabaikan.
Bidang yang dibuka
Tidak, JSON
Hubungan pemetaan antara topik log dalam format JSON dan daftar bidang. {"topicA": ["field_nameA1", "field_nameA2", ...], "topicB": ["field_nameB1", "field_nameB2", ...], ...}
{"actiontrail_audit_event": ["event"] }. Nilai tersebut menentukan bahwa dalam log yang topiknya adalah actiontrail_audit_event, string JSON dari bidang yang ditentukan diperluas dan disimpan di bidang event.
Sumber peristiwa
Tidak, string
Sumber peristiwa Splunk.
Tidak ada.
Tipe sumber peristiwa
Tidak, string
Tipe sumber untuk peristiwa Splunk.
Tidak ada.
Jumlah percobaan ulang peristiwa
Tidak, integer
Jumlah percobaan ulang untuk mengonsumsi data log.
Nilai default: 0, yang menentukan percobaan ulang tanpa batas.
Protokol peristiwa
Ya, string
Protokol yang digunakan untuk mengirim peristiwa Splunk. Jika Anda menggunakan protokol pribadi Splunk untuk mengirim peristiwa Splunk, Anda tidak perlu mengonfigurasi parameter berikut dalam tabel.
HTTP untuk HEC
HTTPS untuk HEC
Protokol pribadi
Host HEC
Ya, string
Host HEC. Parameter ini hanya valid jika Anda menggunakan HEC untuk mengirim peristiwa Splunk. Untuk informasi lebih lanjut, lihat Siapkan dan gunakan HTTP Event Collector di Splunk Web.
Tidak ada.
Port HEC
Ya, integer
Port HEC. Parameter ini hanya valid jika Anda menggunakan HEC untuk mengirim peristiwa Splunk.
Tidak ada.
Token HEC
Ya, string
Token HEC. Parameter ini hanya valid jika Anda menggunakan HEC untuk mengirim peristiwa Splunk. Untuk informasi lebih lanjut, lihat Token HEC.
Tidak ada.
Timeout HEC
Ya, integer
Periode timeout HEC. Parameter ini hanya valid jika Anda menggunakan HEC untuk mengirim peristiwa Splunk. Unit: detik.
Nilai default: 120.
Jika Splunk berjalan pada instance ECS, Anda dapat melampirkan peran RAM ke instance ECS. Kemudian, instance ECS dapat mengasumsikan peran RAM untuk mengakses Layanan Log Sederhana. Prosedur:
Pastikan Splunk berjalan pada instance ECS tempat peran RAM yang diperlukan dilampirkan.
Lampirkan peran RAM ke instance ECS.
Pada langkah ini, buat peran RAM, berikan izin kepada peran RAM, dan kemudian lampirkan peran RAM ke instance ECS. Untuk informasi lebih lanjut, lihat Konfigurasikan Peran RAM Instance.
Untuk informasi lebih lanjut tentang kebijakan peran RAM, lihat kebijakan dalam Persiapan.
Di antarmuka web Splunk, klik Alibaba Cloud Log Service Add-on for Splunk.
Konfigurasikan akun global.
Di halaman yang muncul, pilih . Di halaman Konfigurasi, klik tab Account. Di tab ini, klik Tambah. Dalam kotak dialog Tambah Akun, tentukan peran RAM yang dilampirkan ke instance ECS. Dalam contoh ini, masukkan ECS_RAM_ROLE di bidang Nama Pengguna dan masukkan nama peran RAM yang dibuat di Langkah 1 di bidang Kata Sandi.
Buat input data.
Klik inputs untuk membuka halaman inputs.
Klik Create New Input. Dalam kotak dialog Tambah sls_datainput, konfigurasikan parameter input data.
Anda harus menetapkan parameter SLS AccessKey ke akun global yang dibuat di Langkah 3. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Parameter Input Data.
Operasi terkait
Kueri Data
Pastikan input data dalam keadaan Aktif. Di antarmuka web Splunk, klik Search & Reporting. Di halaman App: Search & Reporting, kueri log audit yang dikumpulkan.

Kueri Log Operasional Layanan Log Sederhana
Masukkan
index="_internal" | search "SLS info"di kotak pencarian untuk mengkueri log info Layanan Log Sederhana.Masukkan
index="_internal" | search "error"di kotak pencarian untuk mengkueri log kesalahan Layanan Log Sederhana.
Kinerja dan keamanan
Kinerja
Kinerja add-on dan throughput transmisi data bervariasi berdasarkan faktor-faktor berikut:
Titik Akhir: Anda dapat mengakses Layanan Log Sederhana menggunakan titik akhir publik, jaringan klasik, virtual private cloud (VPC), atau percepatan global. Dalam kebanyakan kasus, kami sarankan Anda menggunakan titik akhir jaringan klasik atau titik akhir VPC. Untuk informasi lebih lanjut, lihat Titik Akhir.
Bandwidth: Bandwidth transmisi data antara Layanan Log Sederhana dan forwarder berat Splunk serta antara forwarder berat Splunk dan indexer memengaruhi kinerja.
Kemampuan pemrosesan indexer Splunk: Kemampuan indexer untuk menerima data dari forwarder berat Splunk memengaruhi kinerja.
Jumlah Shard: Jumlah shard yang lebih besar dalam penyimpanan log menunjukkan kemampuan transmisi data yang lebih tinggi. Anda harus menentukan jumlah shard berdasarkan kecepatan pembuatan log mentah. Untuk informasi lebih lanjut, lihat Kelola Shard.
Jumlah Input Data Splunk: Jumlah input data yang lebih besar dalam grup konsumen yang dikonfigurasikan untuk penyimpanan log menunjukkan throughput yang lebih tinggi.
CatatanKonsumsi log data bersamaan bervariasi berdasarkan jumlah shard dalam penyimpanan log.
Jumlah Core CPU dan Sumber Daya Memori yang Digunakan oleh Forwarder Berat Splunk: Dalam kebanyakan kasus, satu input data Splunk mengonsumsi 1 GB hingga 2 GB sumber daya memori dan 1 core CPU.
Jika sumber daya memori dan CPU yang cukup dialokasikan, satu input data Splunk dapat mengonsumsi data log dengan kecepatan 1 MB hingga 2 MB per detik. Anda harus menentukan jumlah shard berdasarkan kecepatan pembuatan log mentah.
Sebagai contoh, jika log ditulis ke penyimpanan log dengan kecepatan 10 MB per detik, Anda harus membuat setidaknya 10 shard dalam penyimpanan log dan mengonfigurasikan 10 input data dalam add-on. Jika Anda menerapkan add-on pada server tunggal, pastikan server tersebut memiliki 10 core CPU yang tidak digunakan dan 12 GB memori yang tersedia.
Ketersediaan Tinggi
Grup konsumen menyimpan checkpoint di sisi server. Saat seorang konsumen berhenti mengonsumsi data, konsumen lain melanjutkan mengonsumsi data dari checkpoint terakhir. Anda dapat membuat input data Splunk di beberapa server. Jika sebuah server berhenti beroperasi atau rusak, input data Splunk di server lain melanjutkan mengonsumsi data dari checkpoint terakhir. Secara teori, jumlah input data Splunk yang diluncurkan di beberapa server dapat lebih besar daripada jumlah shard, yang memastikan bahwa data dikonsumsi dari checkpoint terakhir jika terjadi pengecualian.
Transmisi Data Berbasis HTTPS
Layanan Log Sederhana
Untuk menggunakan HTTPS untuk mengenkripsi data yang ditransmisikan antara program Anda dan Layanan Log Sederhana, pastikan titik akhir Anda diawali dengan https://. Contoh: https://cn-beijing.log.aliyuncs.com.
Sertifikat server *.aliyuncs.com diterbitkan oleh GlobalSign. Secara default, sebagian besar server Linux dan Windows sudah dikonfigurasi untuk mempercayai sertifikat ini. Jika server tidak mempercayai sertifikat ini, lihat Instal Root CA Tepercaya atau Sertifikat Tanda Tangan Sendiri.
Splunk
Untuk menggunakan HEC berbasis HTTPS, aktifkan fitur SSL saat Anda mengaktifkan HEC dalam kotak dialog Pengaturan Global. Untuk informasi lebih lanjut, lihat Konfigurasikan HTTP Event Collector pada Splunk Enterprise.
Perlindungan Penyimpanan Pasangan AccessKey
Pasangan AccessKey yang Anda gunakan untuk mengakses Layanan Log Sederhana dan token HEC dienkripsi dan disimpan di Splunk. Ini mencegah kebocoran data.
FAQ
Apa yang harus saya lakukan jika terjadi kesalahan konfigurasi?
Kesalahan konfigurasi dapat terjadi pada input data saat Anda membuat atau memodifikasi input data. Dalam hal ini, periksa konfigurasi dasar input data. Untuk informasi lebih lanjut tentang parameter, lihat Parameter Input Data.
Kesalahan konfigurasi dapat terjadi pada Layanan Log Sederhana. Misalnya, sistem gagal membuat grup konsumen. Dalam hal ini, periksa konfigurasi Layanan Log Sederhana.
Perintah:
index="_internal" | search "error"Log Kesalahan:
aliyun.log.consumer.exceptions.ClientWorkerException: kesalahan terjadi saat membuat grup konsumen, kode kesalahan: LogStoreNotExist, pesan kesalahan: logstore xxxx tidak adaKesalahan ConsumerGroupQuotaExceed
Anda dapat mengonfigurasikan hingga 20 grup konsumen untuk penyimpanan log. Kami sarankan Anda melihat grup konsumen di konsol Layanan Log Sederhana dan menghapus grup konsumen yang tidak lagi diperlukan. Jika lebih dari 20 grup konsumen dikonfigurasikan untuk penyimpanan log, kesalahan ConsumerGroupQuotaExceed dilaporkan.
Apa yang harus saya lakukan jika terjadi kesalahan izin?
Anda tidak berwenang untuk mengakses Layanan Log Sederhana. Periksa izin Anda.
Perintah:
index="_internal" | search "error"Log Kesalahan:
aliyun.log.consumer.exceptions.ClientWorkerException: kesalahan terjadi saat membuat grup konsumen, kode kesalahan: SignatureNotMatch, pesan kesalahan: signature J70VwxYH0+W/AciA4BdkuWxK6W8= tidak cocok
Otentikasi RAM untuk instance ECS Anda gagal.
Perintah:
index="_internal" | search "error"Log Kesalahan:
Deteksi ECS RAM Role dalam konfigurasi pengguna, tetapi gagal mendapatkan kredensial RAM ECS. Silakan periksa apakah instance ECS dan peran RAM 'ECS-Role' dikonfigurasi dengan benar.ECS-Role adalah peran RAM yang Anda buat. Variabel ECS-Role ditampilkan sebagai nilai aktual.
Pemecahan Masalah:
Periksa apakah parameter SLS AccessKey dari input data Anda dikonfigurasikan sebagai akun global yang memiliki peran RAM.
Periksa apakah peran RAM dikonfigurasikan dengan benar untuk akun global. Nama pengguna harus diatur ke ECS_RAM_ROLE, dan kata sandi harus diatur ke nama peran RAM.
Periksa apakah peran RAM dilampirkan ke instance ECS.
Periksa apakah jenis entitas tepercaya dari peran RAM diatur ke Alibaba Cloud Service. Periksa apakah layanan tepercaya yang dipilih adalah ECS.
Periksa apakah instance ECS tempat peran RAM dilampirkan adalah instance ECS tempat Splunk berjalan.
Anda tidak berwenang untuk mengakses HEC.
Perintah:
index="_internal" | search "error"Log Kesalahan:
ERROR HttpInputDataHandler - Gagal memproses input http, nama token=n/a, saluran=n/a, source_IP=127.0.0.1, balasan=4, events_processed=0, ukuran_badan_http_input=369 PERINGATAN pid=48412 tid=ThreadPoolExecutor-0_1 file=base_modinput.py:log_warning:302 | SLS info: Gagal menulis [{"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) menggunakan hec. Pengecualian: 403 Client Error: Forbidden for url: http://127.0.0.1:8088/services/collector, kali: 3Penyebab Potensial:
HEC tidak dikonfigurasikan atau dimulai.
Parameter HEC terkait input data tidak valid. Misalnya, jika Anda menggunakan HEC berbasis HTTPS, Anda harus mengaktifkan fitur SSL.
Fitur pengakuan indexer dinonaktifkan untuk token HEC Anda.
Apa yang harus saya lakukan jika ada latensi konsumsi?
Anda dapat memeriksa status grup konsumen Anda di konsol Layanan Log Sederhana.
Kami sarankan Anda meningkatkan jumlah shard atau membuat lebih banyak input data dalam grup konsumen yang sama. Untuk informasi lebih lanjut, lihat Kinerja dan Keamanan.
Apa yang harus saya lakukan jika terjadi jitter jaringan?
Perintah:
index="_internal" | search "SLS info: Failed to write"Log Kesalahan:
PERINGATAN pid=58837 tid=ThreadPoolExecutor-0_0 file=base_modinput.py:log_warning:302 | SLS info: Gagal menulis [{"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) menggunakan hec. Pengecualian: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer')), kali: 3
Jika jitter jaringan terjadi, peristiwa Splunk akan dikirim ulang secara otomatis. Jika masalah berlanjut, hubungi administrator jaringan Anda.
Bagaimana cara mengubah waktu mulai konsumsi?
CatatanParameter waktu mulai kursor SLS hanya valid saat Anda menggunakan grup konsumen baru. Jika Anda menggunakan grup konsumen yang sudah ada, data dikonsumsi dari checkpoint terakhir.
Di halaman inputs antarmuka web Splunk, nonaktifkan input data terkait.
Masuk ke konsol Layanan Log Sederhana. Temukan penyimpanan log tempat data dikonsumsi dan hapus grup konsumen terkait di bagian Data Consumption.
Di halaman inputs antarmuka web Splunk, temukan input data, dan pilih . Dalam kotak dialog yang muncul, modifikasi parameter Waktu Mulai Kursor SLS. Kemudian, aktifkan input data.