全部产品
Search
文档中心

Elasticsearch:Pengumpulan data untuk Alibaba Cloud Elasticsearch

更新时间:Jul 02, 2025

Topik ini menjelaskan metode yang digunakan untuk mengumpulkan dan mengirim data dari berbagai sumber ke kluster Alibaba Cloud Elasticsearch.

Informasi latar belakang

Elasticsearch banyak digunakan dalam pencarian data dan analitik. Pengembang serta komunitas memanfaatkan Elasticsearch dalam berbagai skenario, termasuk pencarian aplikasi, pencarian situs web, logging, Pemantauan Infrastruktur, Pemantauan Kinerja Aplikasi (APM), dan analitik keamanan. Solusi untuk skenario-skenario ini tersedia secara gratis. Namun, sebelum pengembang menggunakan solusi tersebut, mereka harus mengimpor data yang diperlukan ke Elasticsearch.

Topik ini menyediakan metode umum berikut untuk mengumpulkan data:

Elasticsearch menyediakan API RESTful yang fleksibel untuk berkomunikasi dengan aplikasi klien. Anda dapat memanggil API ini untuk mengumpulkan, mencari, dan menganalisis data. Selain itu, API ini juga dapat digunakan untuk mengelola kluster Elasticsearch dan indeks di dalamnya.

Elastic Beats

Elastic Beats terdiri dari serangkaian pengirim data ringan yang dapat mentransfer data ke Elasticsearch tanpa membebani waktu proses secara signifikan. Beats dapat berjalan dan mengumpulkan data pada perangkat dengan sumber daya perangkat keras terbatas, seperti perangkat IoT, perangkat edge, atau perangkat tertanam. Jika Anda ingin mengumpulkan data tetapi memiliki keterbatasan sumber daya untuk menjalankan pengirim data intensif, kami sarankan menggunakan Beats. Berdasarkan data yang dikumpulkan oleh Beats dari semua perangkat terhubung ke internet, Anda dapat dengan cepat mengidentifikasi pengecualian, seperti kesalahan sistem dan masalah keamanan, lalu mengambil tindakan untuk menanganinya.

Beats juga dapat digunakan pada sistem dengan sumber daya perangkat keras yang cukup.

Anda dapat menggunakan Beats untuk mengumpulkan berbagai jenis data:

  • Filebeat

    Filebeat dapat membaca, memproses awal, dan mentransfer data dari file. Dalam banyak kasus, Filebeat digunakan untuk membaca data dari file log. Filebeat juga mendukung pembacaan data dari file non-binari dan sumber lain seperti TCP, UDP, kontainer, Redis, dan syslogs. Berdasarkan berbagai modul, Filebeat menyediakan cara mudah untuk mengumpulkan log aplikasi umum seperti Apache, MySQL, dan Kafka, lalu mengurai log untuk mendapatkan data yang diperlukan.

  • Metricbeat

    Metricbeat dapat mengumpulkan dan memproses awal metrik sistem dan layanan. Metrik sistem meliputi informasi tentang proses yang sedang berjalan, pemanfaatan CPU, penggunaan memori, disk, dan jaringan. Berdasarkan berbagai modul, Metricbeat dapat mengumpulkan data dari layanan seperti Kafka, Palo Alto Networks, dan Redis.

  • Packetbeat

    Packetbeat dapat mengumpulkan dan memproses awal data jaringan secara real-time. Anda dapat menggunakan Packetbeat untuk analitik keamanan, pemantauan aplikasi, dan analitik kinerja. Packetbeat mendukung protokol seperti DHCP, DNS, HTTP, MongoDB, NFS, dan TLS.

  • Winlogbeat

    Winlogbeat dapat menangkap log peristiwa dari sistem operasi Windows, termasuk aplikasi, perangkat keras, keamanan, dan peristiwa sistem.

  • Auditbeat

    Auditbeat dapat mendeteksi perubahan pada file penting dan mengumpulkan peristiwa audit dari kerangka audit Linux. Auditbeat sering digunakan untuk analitik keamanan.

  • Heartbeat

    Heartbeat dapat memeriksa ketersediaan sistem dan layanan Anda melalui probing. Heartbeat cocok untuk skenario seperti pemantauan infrastruktur dan analitik keamanan. Heartbeat mendukung ICMP, TCP, dan HTTP.

  • Functionbeat

    Functionbeat dapat mengumpulkan log dan metrik dari lingkungan serverless seperti AWS Lambda.

Untuk informasi lebih lanjut tentang cara menggunakan Metricbeat, lihat Gunakan Metricbeat yang dikelola sendiri untuk mengumpulkan metrik sistem. Gunakan pengirim lainnya dengan cara serupa.

Logstash

Logstash adalah alat kuat dan fleksibel yang digunakan untuk membaca, memproses, dan mentransfer berbagai jenis data. Logstash menyediakan berbagai fitur tetapi memiliki persyaratan tinggi terhadap performa perangkat. Beberapa fitur yang disediakan oleh Logstash tidak didukung oleh Beats atau mahal untuk diimplementasikan menggunakan Beats, seperti memperkaya dokumen dengan mencari data di sumber eksternal. Logstash membutuhkan sumber daya perangkat keras lebih tinggi dibandingkan Beats, sehingga tidak dapat diterapkan pada perangkat dengan sumber daya terbatas. Jika Beats tidak memenuhi kebutuhan skenario tertentu, gunakan Logstash sebagai alternatif.

Dalam banyak kasus, Beats dan Logstash bekerja secara kolaboratif. Secara spesifik, gunakan Beats untuk mengumpulkan data dan Logstash untuk memproses data.

Alibaba Cloud Elasticsearch mengintegrasikan layanan Logstash. Alibaba Cloud Logstash adalah pipeline pemrosesan data sisi server yang kompatibel dengan semua kemampuan Logstash open source. Layanan ini dapat mengumpulkan data secara dinamis dari berbagai sumber, mentransformasi, dan menyimpan data ke lokasi yang ditentukan. Alibaba Cloud Logstash dapat memproses dan mentransformasi semua jenis peristiwa menggunakan plug-in input, filter, dan output.

Pipeline pemrosesan data Logstash digunakan untuk menjalankan tugas. Setiap pipeline terdiri dari setidaknya satu plug-in input, satu plug-in filter, dan satu plug-in output:

  • Plug-in Input

    Plug-in input dapat membaca data dari berbagai sumber, termasuk file, HTTP, IMAP, JDBC, Kafka, syslogs, TCP, dan UDP.

  • Plug-in Filter

    Plug-in filter dapat memproses dan memperkaya data dengan berbagai metode. Dalam banyak kasus, plug-in filter pertama-tama menguraikan data log yang tidak terstruktur dan mentransformasinya menjadi data terstruktur. Logstash menyediakan Grok filter plug-in untuk mengurai ekspresi reguler, data CSV, JSON, pasangan kunci-nilai, dan data tidak terstruktur kompleks. Logstash juga menyediakan plug-in filter lainnya untuk memperkaya data, seperti menanyakan catatan DNS, menambahkan lokasi alamat IP, atau mencari direktori kustom atau indeks Elasticsearch. Plug-in filter tambahan seperti mutate memungkinkan Anda melakukan transformasi data yang beragam, seperti menamai ulang, menghapus, dan menyalin bidang serta nilai data.

  • Plug-in Output

    Plug-in output dapat menulis data yang telah diuraikan dan diperkaya ke sink data. Plug-in ini digunakan pada tahap akhir pipeline Logstash. Topik ini fokus pada Elasticsearch output plug-in, yang dapat mengirim data dari berbagai sumber ke kluster Elasticsearch.

Berikut adalah contoh pipeline Logstash yang dapat digunakan untuk menyelesaikan operasi berikut:

  • Membaca RSS feed Elastic Blogs.

  • Memproses awal data dengan menyalin atau menamai ulang bidang serta menghapus karakter khusus dan tag HTML.

  • Mengirim data ke Elasticsearch.

  1. Konfigurasikan pipeline Logstash:

    input { 
      rss { 
        url => "/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-elsaticsearch-url>" ] 
        index => "elastic_blog" 
        user => "elastic" 
        password => "<your-elasticsearch-password>" 
      } 
    }

    Atur hosts ke format <Titik akhir internal kluster Elasticsearch Anda>:9200. Atur password ke kata sandi yang digunakan untuk mengakses kluster Elasticsearch.

  2. Di konsol Kibana, lihat data indeks yang dimigrasi:

    POST elastic_blog/_search

    Untuk informasi lebih lanjut, lihat Langkah 3: Lihat hasil sinkronisasi.

Klien

Anda dapat menggunakan klien Elasticsearch untuk mengintegrasikan kode pengumpulan data dengan kode aplikasi yang disesuaikan. Klien ini adalah pustaka yang mengabstraksi detail tingkat rendah dari pengumpulan data, memungkinkan Anda fokus pada operasi terkait aplikasi. Elasticsearch mendukung berbagai bahasa pemrograman untuk klien, seperti Java, JavaScript, Go, .NET, PHP, Perl, Python, dan Ruby. Untuk informasi lebih lanjut tentang bahasa pemrograman dan detail serta kode contoh untuk bahasa yang Anda pilih, lihat Klien Elasticsearch.

Jika bahasa pemrograman aplikasi Anda tidak termasuk dalam bahasa yang didukung sebelumnya, peroleh informasi yang diperlukan dari Klien Kontribusi Komunitas.

Kibana

Kami merekomendasikan Anda menggunakan konsol Kibana untuk mengembangkan dan men-debug permintaan Elasticsearch. Kibana menyediakan semua fitur API RESTful di Elasticsearch dan mengabstraksi detail teknis dari permintaan HTTP bawah. Anda dapat menggunakan Kibana untuk menambahkan dokumen JSON asli ke kluster Elasticsearch.

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" 
}
Catatan

Selain Kibana, Anda dapat menggunakan alat lain untuk berkomunikasi dengan Elasticsearch dan mengumpulkan dokumen dengan memanggil API RESTful. Misalnya, Anda dapat menggunakan cURL untuk mengembangkan dan men-debug permintaan Elasticsearch atau mengintegrasikan skrip yang disesuaikan.

Ringkasan

Beberapa metode disediakan untuk mengumpulkan dan mengirim data dari berbagai sumber ke Elasticsearch. Anda harus memilih metode yang paling sesuai berdasarkan skenario bisnis, persyaratan, dan sistem operasi Anda:

  • Pengirim data Beats nyaman, ringan, dan siap pakai. Mereka dapat mengumpulkan data dari berbagai sumber. Modul yang dikemas dengan Beats menyediakan konfigurasi untuk akuisisi data, penguraian, pengindeksan, dan visualisasi untuk banyak database, sistem operasi, kontainer, server web, dan cache umum. Modul-modul ini memungkinkan Anda membuat dasbor untuk data Anda dalam lima menit. Pengirim data Beats paling cocok untuk perangkat tertanam dengan sumber daya terbatas, seperti perangkat IoT atau firewall.

  • Logstash adalah alat fleksibel untuk membaca, mentransformasi, dan mentransfer data. Ini menyediakan berbagai plug-in input, filter, dan output. Jika Beats tidak dapat memenuhi persyaratan untuk skenario tertentu, Anda dapat menggunakan Beats untuk mengumpulkan data, Logstash untuk memproses data, dan kemudian mentransfer data yang diproses ke Elasticsearch.

  • Untuk mengumpulkan data dari aplikasi, kami merekomendasikan Anda menggunakan klien yang didukung oleh Elasticsearch open source.

  • Untuk mengembangkan atau men-debug permintaan Elasticsearch, kami merekomendasikan Anda menggunakan Kibana.

Referensi