Alibaba Cloud Elasticsearch mendukung empat metode pengumpulan data: Elastic Beats, Logstash, klien Elasticsearch, dan konsol Kibana. Pilih metode berdasarkan jenis data, kebutuhan transformasi, serta asal data—apakah dari infrastruktur, aplikasi, atau interaksi API langsung.
Elasticsearch banyak digunakan dalam berbagai skenario, termasuk pencarian aplikasi, pencarian website, logging, pemantauan infrastruktur, Pemantauan Kinerja Aplikasi (APM), dan analitik keamanan. Solusi untuk skenario-skenario ini disediakan secara gratis. Sebelum menggunakannya, Anda harus mengimpor data yang diperlukan ke dalam Elasticsearch.
Pilih metode pengumpulan
Mulailah dengan opsi paling sederhana yang memenuhi kebutuhan Anda.
| Skenario Anda | Metode yang direkomendasikan |
|---|---|
| Mengumpulkan log, metrik, atau peristiwa sistem dari server, perangkat edge, atau sensor IoT | Elastic Beats |
| Mengumpulkan jenis data yang sama tetapi memerlukan enrichmen, routing kondisional, atau beberapa output | Logstash |
| Mengirim data secara terprogram dari kode aplikasi Anda | Klien Elasticsearch |
| Menguji, men-debug permintaan Elasticsearch, atau mengindeks dokumen individual | Konsol Kibana |
Jika kebutuhan Anda belum jelas, mulailah dengan Beats. Beats memiliki overhead penyiapan paling rendah dan cocok untuk sebagian besar skenario pengumpulan log dan metrik. Naikkan ke Logstash hanya jika modul Beats tidak mampu memenuhi kebutuhan transformasi atau routing Anda.
Elastic Beats
Beats adalah kumpulan shipper data ringan. Setiap shipper menargetkan jenis data tertentu dan berjalan dengan overhead sumber daya minimal, menjadikannya pilihan utama untuk perangkat edge, sensor IoT, firewall, dan host mana pun di mana agen yang lebih berat tidak praktis.
Beats juga dapat dijalankan di server berkapasitas penuh. Saat kebutuhan pengumpulan bersifat sederhana, Beats lebih cepat dikonfigurasi dibandingkan Logstash. Modul bawaan menangani penguraian, pengindeksan, dan penyiapan Dasbor untuk tumpukan perangkat lunak umum. Penerapan dasar biasanya selesai dalam waktu kurang dari lima menit.
Shipper yang tersedia
| Shipper | Data yang dikumpulkan | Sumber data utama |
|---|---|---|
| Filebeat | File log dan aliran teks | File, TCP, UDP, kontainer, Redis, syslogs; modul untuk Apache, MySQL, Kafka |
| Metricbeat | Metrik sistem dan layanan | CPU, memori, disk, jaringan, proses yang berjalan; modul untuk Kafka, Redis, Palo Alto Networks |
| Packetbeat | Lalu lintas jaringan Real-time | DHCP, DNS, HTTP, MongoDB, NFS, TLS; analitik keamanan dan APM |
| Winlogbeat | Log peristiwa Windows | Peristiwa aplikasi, perangkat keras, keamanan, dan sistem |
| Auditbeat | Integritas file dan peristiwa audit | Framework audit Linux; analitik keamanan |
| Heartbeat | Ketersediaan layanan | Probe ICMP, TCP, HTTP; pemantauan infrastruktur |
| Functionbeat | Log dan metrik arsitektur tanpa server | AWS Lambda dan lingkungan arsitektur tanpa server lainnya |
Untuk contoh praktis menggunakan Metricbeat, lihat Gunakan Metricbeat self-managed untuk mengumpulkan metrik sistem. Shipper lain mengikuti pola penyiapan yang sama.
Logstash
Logstash membaca, mentransformasi, dan merutekan data dari hampir semua sumber. Logstash menangani tugas enrichmen kompleks yang tidak dapat dilakukan Beats sendiri—seperti mengkueri sumber data eksternal, menerapkan logika kondisional, atau merutekan event ke beberapa output secara simultan.
Logstash memerlukan lebih banyak CPU dan memori dibandingkan Beats. Jangan gunakan di perangkat berkapasitas terbatas. Gunakan Logstash ketika kebutuhan transformasi Anda melampaui kemampuan modul Beats.
Alibaba Cloud Logstash adalah layanan fully managed. Anda tidak perlu menyediakan atau memelihara infrastruktur Logstash. Layanan ini kompatibel dengan semua kemampuan Logstash open-source dan dapat mengumpulkan data dari beberapa sumber secara bersamaan.
Komponen pipeline
Pipeline Logstash terdiri dari tiga tahap:
Plugin input — membaca data dari file, titik akhir HTTP, IMAP, JDBC, Kafka, syslogs, TCP, atau UDP.
Plugin filter — mengurai dan memperkaya data. Plugin filter Grok menangani ekspresi reguler, CSV, JSON, dan pasangan kunci-nilai. Plugin lain menambahkan geolokasi IP, pencarian DNS, atau pencarian nilai dari direktori kustom atau indeks Elasticsearch. Plugin mutate mengganti nama, menyalin, atau menghapus bidang.
Plugin output — menulis hasil ke tujuan. Plugin output Elasticsearch mengirim data yang telah diproses ke kluster Anda.
Contoh: ingest feed RSS
Pipeline berikut membaca feed RSS Elastic Blogs, menghapus tag HTML, lalu mengirim data yang telah dibersihkan ke Elasticsearch.
Prasyarat
Sebelum memulai, pastikan:
Anda memiliki instans Alibaba Cloud Logstash.
Anda memiliki kluster Alibaba Cloud Elasticsearch dengan titik akhir internal dan kredensial akses yang diketahui.
Terdapat konektivitas jaringan antara instans Logstash dan kluster Elasticsearch.
Konfigurasikan pipeline
input {
rss {
url => "https://www.elastic.co/blog/feed"
interval => 120
}
}
filter {
mutate {
rename => [ "message", "blog_html" ]
copy => { "blog_html" => "blog_text" }
copy => { "published" => "@timestamp" }
}
mutate {
gsub => [
"blog_text", "<.*?>", "",
"blog_text", "[\n\t]", " "
]
remove_field => [ "published", "author" ]
}
}
output {
stdout {
codec => dots
}
elasticsearch {
hosts => [ "https://<your-elasticsearch-internal-endpoint>:9200" ]
index => "elastic_blog"
user => "elastic"
password => "<your-elasticsearch-password>"
}
}Ganti placeholder berikut sebelum menjalankan pipeline:
| Placeholder | Deskripsi | Contoh |
|---|---|---|
<your-elasticsearch-internal-endpoint> | Titik akhir internal kluster Elasticsearch Anda | es-cn-xxxx.elasticsearch.aliyuncs.com |
<your-elasticsearch-password> | Password untuk pengguna elastic pada kluster | — |
Verifikasi hasil
Setelah pipeline berjalan, kueri indeks dari konsol Kibana:
POST elastic_blog/_searchUntuk detail cara membaca hasil kueri, lihat Langkah 3: Lihat hasil sinkronisasi.
Klien Elasticsearch
Klien Elasticsearch adalah pustaka spesifik bahasa yang menyembunyikan detail HTTP tingkat rendah dari API RESTful. Gunakan klien ini ketika aplikasi Anda perlu mengindeks atau mengkueri data secara terprogram. Anda juga dapat menggunakan API RESTful untuk mengelola kluster dan indeks Elasticsearch.
Bahasa yang didukung resmi mencakup Java, JavaScript, Go, .NET, PHP, Perl, Python, dan Ruby. Untuk dokumentasi lengkap dan contoh kode, lihat Klien Elasticsearch.
Jika bahasa Anda tidak tercantum di atas, periksa Klien kontribusi komunitas.
Konsol Kibana
Konsol Kibana menyediakan antarmuka berbasis browser untuk API RESTful Elasticsearch yang menyembunyikan detail teknis permintaan HTTP yang mendasarinya. Gunakan antarmuka ini untuk pengembangan, debugging, dan tugas pengindeksan satu kali.
Contoh berikut menambahkan satu dokumen JSON ke dalam indeks:
PUT my_first_index/_doc/1
{
"title" : "How to Ingest Into Elasticsearch Service",
"date" : "2019-08-15T14:12:12",
"description" : "This is an overview article about the various ways to ingest into Elasticsearch Service"
}Untuk alur kerja berbasis skrip atau otomatis, cURL merupakan alternatif command line yang berkomunikasi dengan Elasticsearch melalui API RESTful yang sama dan dapat digunakan untuk mengintegrasikan skrip khusus.
Rangkuman
Pilih metode yang sesuai dengan asal data dan batasan operasional Anda:
Beats — praktis, ringan, dan siap pakai. Modul bawaan mencakup database umum, sistem operasi, kontainer, server web, dan cache. Dasbor dapat berjalan dalam waktu kurang dari lima menit. Paling cocok untuk perangkat embedded, sensor IoT, atau firewall dengan sumber daya terbatas.
Logstash — gunakan ketika Beats tidak dapat memenuhi kebutuhan enrichmen, filtering, atau routing Anda. Alibaba Cloud Logstash sepenuhnya dikelola; Anda tidak perlu mengoperasikan infrastrukturnya.
Klien Elasticsearch — direkomendasikan ketika aplikasi Anda mengumpulkan atau menghasilkan data yang harus dikirim secara terprogram.
Konsol Kibana — direkomendasikan untuk mengembangkan, menguji, atau men-debug permintaan Elasticsearch secara interaktif.