Apa Itu Logstash? Pengertian, Fungsi, dan Cara Kerjanya
Halo, DomaiNesians! Pernah nggak kalian mendengar istilah “Logstash”? Logstash adalah bagian atau komponen “L” dari ELK Stack, yaitu platform analisis log paling populer di dunia yang bertugas mengumpulkan data dari berbagai sumber, memprosesnya, dan mengirimkannya ke dalam pipeline untuk kemudian diindeks langsung ke Elasticsearch.
Komponen ELK Stack yang satu ini bisa mengambil data dari hampir semua sumber menggunakan plugin input, menerapkan berbagai jenis transformasi dan peningkatan data menggunakan plugin filter, serta mengirimkan data ke berbagai tujuan menggunakan plugin output.
Karena itu, peran Logstash dalam stack sangat penting karena memungkinkan kalian untuk memfilter, mengolah, dan membentuk data sehingga lebih mudah digunakan. Lalu, bagaimana cara kerja dari komponen ELK Stack tersebut? Yuk kita belajar bersama!
Apa Itu Logstash?
Logstash adalah alat pemrosesan data open-source yang digunakan untuk mengambil, mengolah, dan mengirim data dari berbagai sumber ke berbagai tujuan. Tools yang satu ini merupakan bagian dari Elastic Stack (ELK Stack), yang memungkinkan pengumpulan data secara real-time menggunakan arsitektur plugin yang fleksibel, termasuk plugin input, filter, dan output.
Alat ini biasanya digunakan untuk logging terpusat, transformasi data, dan analisis data secara real-time, seperti mengirim data ke Elasticsearch untuk pencarian atau ke layanan lain untuk analisis lebih lanjut. Dengan menggunakan komponen ELK Stack yang satu ini, kita bisa membuat alur kerja data yang lebih efisien, mengurangi kompleksitas pengelolaan data, dan mendapatkan wawasan lebih cepat dari data yang kita miliki.
Fungsi Utama Logstash
Sebagai alat pemrosesan data, Logstash memiliki beberapa fungsi utama dalam menjalankan tugasnya yaitu sebagai berikut:
1. Pengumpulan Data (Ingestion)
Logstash dapat mengumpulkan data dari berbagai sumber secara real-time, seperti file log, basis data, antrian pesan, atau layanan cloud. Fungsi ini memungkinkan data dari berbagai sistem dikumpulkan dalam satu tempat untuk analisis yang lebih mudah. Dengan begitu, kita bisa melihat gambaran besar dari data yang tersebar di berbagai aplikasi atau server.
2. Transformasi Data (Transformation)
Setelah data terkumpul, Logstash dapat membersihkan, memperkaya, dan mengubahnya sebelum dikirim ke tujuan akhir. Misalnya, data log yang tidak terstruktur bisa diparse untuk mendapatkan informasi penting, menambahkan data geografis berdasarkan IP, atau menghapus informasi sensitif. Hal ini sangat berguna untuk memastikan data yang masuk ke sistem analisis kita jadi lebih bersih, terorganisir, dan siap untuk digunakan.
3. Pengiriman Data (Output)
Setelah diproses, Logstash dapat mengirim data ke berbagai tujuan, seperti Elasticsearch untuk pencarian, basis data lain untuk penyimpanan, atau sistem pesan untuk distribusi lebih lanjut. Dengan kemampuan ini, kita bisa membangun sistem pemantauan dan analisis yang lebih responsif dan terukur.
Bagaimana Cara Kerja Logstash?
Logstash bekerja dengan menggunakan arsitektur pipeline, yang memproses data melalui tiga tahap utama yaitu input, filter, dan output. Hal ini membuat proses pengelolaan data lebih terstruktur dan mudah diatur, bahkan untuk data yang berasal dari berbagai sumber.
(Sumber: XPLG)
1. Tahap Input
- Logstash mengambil data dari berbagai sumber melalui plugin input, seperti file log, basis data, antrian pesan, atau layanan cloud.
- Setiap plugin input dikonfigurasi untuk mengambil data dari sumber tertentu, misalnya plugin file untuk membaca file log atau plugin jdbc untuk mengambil data dari basis data. Dengan fleksibilitas ini, kita bisa mengambil data dari hampir semua jenis sumber.
- Komponen ELK Stack ini memiliki banyak plugin input untuk berbagai jenis event. Berikut beberapa plugin input yang umum digunakan:
| Plugin | Fungsi |
| Beats | Plugin ini digunakan untuk mengirim data umum dan log ke Logstash. Contohnya, winlogbeat untuk log event Windows, filebeat untuk konten file. |
| Cloudwatch | Plugin ini dapat mengambil log event dari AWS CloudWatch. |
| File | Plugin ini bisa menangkap event dari file dan mengirimkannya ke Logstash. |
| Exec | Plugin ini menangkap output dari skrip atau perintah shell. |
| HTTP | Plugin ini bisa menerima data dari endpoint menggunakan protokol HTTP. |
| JDBC | Plugin ini digunakan untuk mengambil data dari database yang sesuai dengan JDBC. |
| Kafka | Plugin ini bisa menerima pesan dari topik Kafka. |
| S3 | Plugin ini dapat mengambil event dari file di bucket S3. |
| SNMP | Plugin ini digunakan untuk mengambil log event dari perangkat jaringan menggunakan Simple Network Management Protocol (SNMP). |
| SQS | Plugin ini digunakan untuk menangkap pesan dari antrian AWS Simple Queue Service (SQS). |
| Syslog | Plugin ini mengolah log sistem menggunakan protokol Syslog. |
| TCP | Plugin ini bisa menerima event dari socket TCP. |
| UDP | Plugin ini bisa menangkap event melalui protokol UDP. |
2. Tahap Filter
- Setelah data diterima, Logstash menggunakan filter untuk memproses data.
- Plugin filter seperti grok digunakan untuk memecah data yang tidak terstruktur, mutate untuk memodifikasi data, date untuk mengonversi timestamp, dan geoip untuk menambahkan informasi geografis berdasarkan alamat IP.
- Filter bisa digabungkan untuk menghasilkan transformasi data yang lebih kompleks, memungkinkan kita untuk membuat data lebih bermakna sebelum dianalisis.
- Filter plugin digunakan untuk memproses data yang masuk. Berikut beberapa filter plugin bawaan Logstash:
| Plugin | Fungsi |
| Grok | Plugin ini digunakan untuk mengubah data tidak terstruktur menjadi sesuatu yang terstruktur dan mudah untuk di-query. |
| JSON | Plugin ini digunakan untuk mem-parsing data event dari payload JSON. |
| XML | Plugin ini digunakan untuk mem-parsing data event dari payload XML. |
| CSV | Plugin ini mem-parsing data yang dipisahkan dengan koma dan memecahnya menjadi field individu. |
| Split | Plugin ini membagi input event multi-baris menjadi beberapa baris event terpisah. |
| Clone | Plugin ini menggandakan record event. |
| DNS | Plugin ini melakukan reverse DNS lookup dari data event. |
| GeoIP | Plugin ini menambahkan informasi geografis berdasarkan alamat IP pada event input. |
| Urldecode | Plugin ini mendekode field yang di-encode dengan URL. |
3. Tahap Output
- Setelah difilter, data yang telah diproses dikirim ke satu atau lebih tujuan menggunakan plugin output.
- Tujuan bisa berupa Elasticsearch untuk pencarian, basis data lain untuk penyimpanan, atau konsol untuk debugging. Dengan banyaknya pilihan tujuan, kita bisa menyesuaikan alur data sesuai kebutuhan bisnis kita.
- Output plugin digunakan untuk mengirim data dari Logstash ke satu atau lebih tujuan. Berikut beberapa output plugin yang umum digunakan:
| Plugin | Fungsi |
| WebSocket | Plugin ini digunakan untuk mengirim data yang telah difilter atau diproses ke WebSocket. |
| TCP | Plugin ini mengirim data ke socket TCP. |
| Stdout | Plugin ini mengirim data ke output standar. |
| HTTP | Plugin ini bisa mengirim data ke endpoint menggunakan protokol HTTP. |
| Syslog | Plugin ini mengirim data event ke server Syslog. |
| SNS | Plugin ini mendorong data event ke topik AWS Simple Notification Service (SNS). |
| Pipe | Plugin ini digunakan untuk mengalirkan data output ke input aplikasi lain. |
| File | Plugin ini menulis data output ke file disk. |
| Plugin ini mengirim data output ke alamat email yang ditentukan. | |
| Kafka | Plugin ini menulis event ke topik Kafka. |
| MongoDB | Plugin ini menulis event ke database MongoDB. |
| Sink | Plugin ini membuang data yang diterima tanpa mengirimnya ke mana pun. |
Contoh Penggunaan Logstash
Untuk memudahkan pemahaman kita tentang cara kerja komponen ELK Stack yang satu ini, berikut adalah beberapa contoh penggunaan Logstash sebagai alat pengumpul data:
- Logging Terpusat: Mengumpulkan dan memproses log dari berbagai aplikasi dan server.
- Transformasi Data: Membersihkan dan memperkaya data sebelum disimpan atau dianalisis.
- Analisis Real-Time: Mengirim data ke Elasticsearch untuk analisis waktu nyata dengan Kibana.
Contoh Konfigurasi Pipeline
Berikut adalah contoh konfigurasi pipeline dari Logstash:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
input { file { path => "/var/log/syslog" start_position => "beginning" } } filter { grok { match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:hostname} %{DATA:program}: %{GREEDYDATA:logmessage}" } } date { match => [ "timestamp", "MMM dd HH:mm:ss", "MMM d HH:mm:ss" ] } } output { elasticsearch { hosts => ["localhost:9200"] index => "syslog-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } } |
Alur Kerja Logstash
Lalu, bagaimana urutan atau alur kerja dari Logstash? Berikut adalah alur kerjanya:
- Pengumpulan Data: Mengambil data dari file log
/var/log/syslog. - Parsing dan Transformasi: Memecah pesan log menjadi beberapa bagian, seperti timestamp, hostname, program, dan pesan log.
- Pengiriman Data: Mengirim data yang sudah diproses ke Elasticsearch untuk penyimpanan dan pencarian, serta mencetak ke konsol untuk debugging.
Kesimpulan
Logstash adalah alat yang sangat kuat untuk mengelola dan menganalisis data dari berbagai sumber. Alat ini dirancang untuk memproses data secara real-time, memungkinkan analisis cepat. Tidak hanya itu, komponen penting dari ELK Stack ini juga mendukung berbagai plugin untuk input, filter, dan output, membuatnya sangat fleksibel. Dengan menggunakan file konfigurasi untuk mendefinisikan alur kerja pemrosesan data yang kompleks.
Nah, agar pemrosesan data di perusahaan kalian bisa berjalan lebih aman dan cepat, pastikan kalian menggunakan Cloud VPS dari DomaiNesia. Hal ini karena Cloud VPS dari DomaiNesia sudah terjamin aman dan tersertifikasi ISO. Jadi, tunggu apa lagi? Yuk, order sekarang juga!
