Mengintegrasikan Splunk HTTP Event Collector dengan Apache APISIX

API7.ai

February 10, 2022

Ecosystem

Kompleksitas sistem semakin meningkat seiring dengan iterasi teknologi dan evolusi arsitektur perusahaan. Log dapat mendukung dan kompatibel dengan berbagai mesin analisis untuk mengurangi biaya bagi pengguna dalam proses pemilihan, operasi, dan pemeliharaan. Analisis dan observasi berbasis log memainkan peran yang sangat penting sebagai landasan untuk memastikan stabilitas sistem.

Apache APISIX tidak hanya merupakan API Gateway dengan performa luar biasa, tetapi juga telah mendukung sebagian besar solusi logging open source dan komersial utama melalui komunikasi dengan pengguna komunitas tentang operasi dan pemeliharaan data dan logging, termasuk: HTTP Logger, TCP Logger, Kafka Logger, UDP Logger, RocketMQ Logger, SkyWalking Logger, Aliyun Cloud Logging(SLS), Google Cloud Logging, dll.

Kini kami memiliki tambahan baru dalam matriks dukungan Logger Apache APISIX: Splunk HEC Logging.

Artikel ini menjelaskan cara mengkonfigurasi dan menggunakan layanan Splunk HEC di Apache APISIX.

Tentang Splunk HTTP Event Collector

Splunk adalah mesin pencari teks lengkap untuk data mesin yang dapat digunakan untuk mengumpulkan, mengindeks, mencari, dan menganalisis data dari berbagai aplikasi. Menurut peringkat mesin pencari DB Engines, Splunk saat ini berada di posisi kedua dan merupakan perangkat lunak pencarian teks lengkap yang banyak digunakan. Splunk, seperti ElasticSearch, adalah aliran data quasi-real-time yang menyediakan hasil pencarian tanpa henti.

Splunk HTTP Event Collector (HEC) adalah pengumpul event HTTP yang disediakan oleh Splunk yang menyediakan kemampuan untuk mengirim data dan event aplikasi ke Splunk menggunakan protokol HTTP(S).

Tentang plugin splunk-hec-logging

splunk-hec-logging digunakan untuk meneruskan log permintaan Apache APISIX ke Splunk untuk analisis dan penyimpanan. Ketika diaktifkan, Apache APISIX akan mengambil informasi konteks permintaan selama fase Log, mengubahnya menjadi Format Data Event Splunk dan mengirimkannya ke antrian batch. Data dalam antrian akan dikirim ke Splunk HEC ketika kapasitas pemrosesan maksimum antrian batch per batch dipicu, atau ketika waktu maksimum untuk menyegarkan buffer tercapai.

Cara menggunakan plugin splunk-hec-logging

Konfigurasi Splunk

Menyebarkan Splunk Enterprise

Silakan merujuk ke panduan instalasi Splunk untuk penyebaran. Artikel ini akan mendemonstrasikan penyebaran melalui Docker.

Parameter perintah Docker adalah sebagai berikut.

docker run -p 18088:8088 -p 18000:8000 \ # 8088 adalah port HEC, 8000 adalah port backend manajemen -e "SPLUNK_PASSWORD=your-password" \ # Kata sandi login Admin -e "SPLUNK_START_ARGS=--accept-license" \ # Menerima persyaratan lisensi (Splunk akan menyediakan Lisensi Uji Coba Enterprise secara default) -e "SPLUNK_HEC_TOKEN=your-hec-token" \ # Mengatur token HEC default, ini akan membuat HEC default setelah konfigurasi -itd --rm --name splunk-example splunk/splunk:latest

Parameter perintah dijelaskan dalam Dokumentasi Docker Splunk.

Mengkonfigurasi Splunk HEC

HEC default sudah dikonfigurasi dan dibuat di Docker, jadi kami tidak akan membahas proses pembuatannya di sini. Untuk detail tentang proses pembuatan manual, silakan merujuk ke dokumentasi: Set up and use HTTP Event Collector in Splunk Web.

Masuk ke Splunk Enterprise dan periksa HEC

Akses port yang dipetakan dari Docker melalui browser. Karena Anda perlu memetakan port 8000 dari backend manajemen ke port 18000 dari host, Anda dapat mengaksesnya dari browser dengan "alamat loopback ditambah port" pada host selama operasi. Misalnya: http://127.0.0.1:18000, nama pengguna default untuk login adalah admin, dan kata sandi adalah nilai SPLUNK_PASSWORD yang diatur dalam variabel lingkungan pada contoh di atas.

Seperti yang ditunjukkan pada gambar di bawah ini, berarti login berhasil.

Splunk UI

Klik "Settings > Data Inputs" di bagian kanan atas layar untuk memeriksa apakah HEC default berhasil diatur.

Default HEC

Kita sudah dapat melihat jumlah HEC di kolom Inputs dari HTTP Event Collector, yang menunjukkan pengaturan berhasil.

jumlah HEC

Pada titik ini, Anda dapat mengklik HTTP Event Collector untuk masuk ke daftar detail HEC untuk melihat informasi Token dari HEC.

Informasi Token HEC

Token Values adalah nilai dari SPLUNK_HEC_TOKEN yang dikonfigurasi dalam variabel lingkungan Docker di atas.

Konfigurasi Apache APISIX

Mengaktifkan plugin splunk-hec-logging

Jalankan perintah berikut untuk mengaktifkan plugin splunk-hec-logging.

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "plugins":{ "splunk-hec-logging":{ "endpoint":{ // endpoint HEC "uri":"http://127.0.0.1:18088/services/collector", // Token HEC "token":"BD274822-96AA-4DA6-90EC-18940FB2414C" }, // Waktu maksimum (dalam detik) untuk menyegarkan buffer antrian batch "inactive_timeout":2, // Jumlah maksimum entri log per antrian batch "batch_max_size":10 } }, "upstream":{ "type":"roundrobin", "nodes":{ "127.0.0.1:1980":1 } }, "uri":"/splunk.do" }'

Parameter plugin dijelaskan dalam tabel berikut.

NamaDiperlukanNilai DefaultDeskripsi
endpointYaN/AInformasi Konfigurasi Endpoint Splunk HEC
endpoint.uriYaN/AAPI Pengumpulan Event Splunk HEC
endpoint.tokenYaN/AToken Identitas Splunk HEC
endpoint.channelTidakN/AIdentifikasi saluran pengiriman Splunk HEC, lihat: About HTTP Event Collector Indexer Acknowledgment
endpoint.timeoutTidak10Waktu tunggu pengiriman data Splunk HEC dalam detik.
ssl_verifyTidakTRUEMengaktifkan autentikasi SSL, lihat: Dokumentasi OpenResty.
max_retry_countTidak0Jumlah maksimum percobaan ulang sebelum dihapus dari pipeline pemrosesan.
retry_delayTidak1Jumlah detik yang harus ditunda eksekusi proses jika eksekusi gagal.
buffer_durationTidak60Durasi maksimum (dalam detik) dari entri tertua dalam batch yang harus diproses terlebih dahulu.
inactive_timeoutTidak5Waktu maksimum untuk menyegarkan buffer dalam detik.
batch_max_sizeTidak1000Jumlah maksimum entri per antrian batch.

Mengirim permintaan

Jalankan perintah berikut untuk mengirim permintaan ke Splunk.

$ curl -i http://127.0.0.1:9080/splink.do HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Date: Fri, 10 Dec 2021 09:57:52 GMT Server: APISIX/2.11.0 Hello, Splunk HEC Logging

Memverifikasi log

Masuk ke konsol Splunk dan klik "Search & Reporting".

Konsol Splunk

Ketik source="apache-apisix-splunk-hec-logging" di kotak pencarian untuk menanyakan log permintaan yang dikirim.

menanyakan log

Menonaktifkan plugin splunk-hec-logging

Hapus konfigurasi splunk-hec-logging untuk menonaktifkan plugin.

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri":"/logging.do", "upstream":{ "type":"roundrobin", "nodes":{ "127.0.0.1:1980":1 } }, "plugins":{ } }'

Ringkasan

Apache APISIX juga saat ini sedang mengerjakan plugin tambahan untuk mendukung integrasi dengan lebih banyak layanan, jadi jika Anda tertarik, jangan ragu untuk memulai thread diskusi di GitHub Discussion kami atau berkomunikasi melalui mailing list.

Artikel terkait

Tags: