Menyerap data log dengan Fluentd ke Azure Data Explorer

Penyerapan log adalah proses mengumpulkan, mengubah, dan menyiapkan data log dari aplikasi, server, kontainer, dan layanan cloud sehingga Anda dapat menyimpan, menganalisis, dan memantaunya. Log menangkap informasi seperti kesalahan, peringatan, pola penggunaan, dan performa sistem. Pemrosesan log yang andal memastikan bahwa data operasional dan keamanan tersedia hampir secara real-time untuk pemecahan masalah dan wawasan. Artikel ini menjelaskan cara mengirim log dari Fluentd ke Azure Data Explorer (Kusto), termasuk langkah-langkah penginstalan, konfigurasi, dan validasi.

Gambaran Umum

Apa itu Fluentd?

Fluentd adalah pengumpul data sumber terbuka yang dapat Anda gunakan untuk menyatukan pengumpulan dan perutean log di beberapa sistem. Ini mendukung lebih dari 1.000 plugin dan menyediakan opsi fleksibel untuk pemfilteran, buffering, dan transformasi data. Anda dapat menggunakan Fluentd di lingkungan cloud-native dan perusahaan untuk agregasi dan penerusan log terpusat.

Apa itu Azure Data Explorer?

Azure Data Explorer (ADX) adalah layanan analitik yang cepat dan dikelola sepenuhnya yang dioptimalkan untuk analisis real time volume besar data terstruktur, semi terstruktur, dan tidak terstruktur. ADX menggunakan Kusto Query Language (KQL) dan banyak digunakan untuk telemetri, pemantauan, diagnostik, dan eksplorasi data interaktif.

Prasyarat

  • Ruby diinstal pada node di mana log harus dibaca. Untuk menginstal dependensi fluentd menggunakan manajer paket gem, lihat instruksi penginstalan Ruby
  • Akses ke kluster dan database Azure Data Explorer.
  • Aplikasi Azure Active Directory dengan izin untuk menyerap data.

Cara mulai menggunakan Fluentd dan Azure Data Explorer

  1. Instal Fluentd dengan menggunakan RubyGems:

    gem install fluentd
    
  2. Instal plugin Fluentd Kusto:

    gem install fluent-plugin-kusto
    
  3. Konfigurasikan Fluentd dengan membuat file konfigurasi (misalnya, fluent.conf) dengan konten berikut. Ganti tempat penampung dengan nilai Azure dan plugin Anda:

    <match <tag-from-source-logs>>
      @type kusto
      endpoint https://<your-cluster>.<region>.kusto.windows.net
      database_name <your-database>
      table_name <your-table>
      logger_path <your-fluentd-log-file-path>
    
      # Authentication options
      auth_type <your-authentication-type>
    
      # AAD authentication
      tenant_id <your-tenant-id>
      client_id <your-client-id>
      client_secret <your-client-secret>
    
      # Managed identity authentication (optional)
      managed_identity_client_id <your-managed-identity-client-id>
    
      # Workload identity authentication (optional)
      workload_identity_tenant_id <your-workload-identity-tenant-id>
      workload_identity_client_id <your-workload-identity-client-id>
    
      # Non-buffered mode
      buffered false
      delayed false
    
      # Buffered mode
      # buffered true
      # delayed <true/false>
    
      <buffer>
        @type memory
        timekey 1m
        flush_interval 10s
      </buffer>
    </match>
    

Untuk detail konfigurasi dan autentikasi lainnya, lihat dokumentasi plugin Fluentd Kusto

  1. Siapkan Azure Data Explorer untuk penyerapan:

    1. Buat kluster dan database ADX. Lihat Membuat kluster dan database Azure Data Explorer.

    2. Buat aplikasi Azure Active Directory dan berikan izin untuk menyerap data ke dalam database ADX. Lihat Membuat pendaftaran aplikasi Microsoft Entra di Azure Data Explorer.

      Nota

      Simpan kunci aplikasi dan ID aplikasi untuk digunakan di masa mendatang.

    3. Buat tabel untuk ingesti log. Contohnya:

    .create table LogTable (
      tag:string,
      timestamp:datetime,
      record:dynamic
    )
    
  2. Jalankan Fluentd dengan file konfigurasi:

    fluentd -c fluent.conf
    
  3. Validasi penyerapan log dengan:

    1. Memeriksa file log Fluentd, mengonfirmasi tidak ada kesalahan, dan bahwa permintaan penyerapan berhasil dikirim.

      Cuplikan layar file log Fluentd memperlihatkan permintaan penyerapan yang berhasil

    2. Mengkueri tabel ADX untuk memastikan log diserap dengan benar:

    LogTable
    | take 10
    
  4. Pemetaan penyerapan: Gunakan pemetaan penyerapan yang telah ditentukan sebelumnya di Kusto untuk mengubah data format 3 kolom default menjadi skema yang Anda inginkan. Untuk informasi selengkapnya, lihat Dukungan pemetaan penyerapan.