Mata in loggdata med Fluentd i Azure Data Explorer

Logginmatning är processen att samla in, transformera och förbereda loggdata från program, servrar, containrar och molntjänster så att du kan lagra, analysera och övervaka dem. Loggar samlar in information som fel, varningar, användningsmönster och systemprestanda. Tillförlitlig logginmatning säkerställer att drifts- och säkerhetsdata är tillgängliga nästan i realtid för felsökning och insikter. Den här artikeln beskriver hur du skickar loggar från Fluentd till Azure Data Explorer (Kusto), inklusive installations-, konfigurations- och valideringssteg.

Översikt

Vad är Fluentd?

Fluentd är en datainsamlare med öppen källkod som du kan använda för att förena logginsamling och routning mellan flera system. Det stöder mer än 1 000 plugin-program och tillhandahåller flexibla alternativ för filtrering, buffring och transformering av data. Du kan använda Fluentd i molnbaserade miljöer och företagsmiljöer för centraliserad loggaggregering och vidarebefordran.

Vad är Azure Data Explorer?

Azure Data Explorer (ADX) är en snabb, fullständigt hanterad analystjänst som är optimerad för realtidsanalys av stora volymer strukturerade, halvstrukturerade och ostrukturerade data. ADX använder Kusto Query Language (KQL) och används ofta för telemetri, övervakning, diagnostik och interaktiv datautforskning.

Förutsättningar

  • Ruby har installerats på noden där loggar måste matas in. Information om hur du installerar Fluentds beroenden med gem package manager finns i Ruby-installationsanvisningarna
  • Åtkomst till ett Azure Data Explorer-kluster och en databas.
  • Azure Active Directory-program med behörighet att mata in data.

Så här kommer du igång med Fluentd och Azure Data Explorer

  1. Installera Fluentd med hjälp av RubyGems:

    gem install fluentd
    
  2. Installera plugin-programmet Fluentd Kusto:

    gem install fluent-plugin-kusto
    
  3. Konfigurera Fluentd genom att skapa en konfigurationsfil (till exempel fluent.conf) med följande innehåll. Ersätt platshållarna med dina Azure- och plugin-värden:

    <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>
    

Mer information om konfiguration och autentisering finns i plugin-dokumentationen för Fluentd Kusto

  1. Förbereda Azure Data Explorer för inmatning:

    1. Skapa ett ADX-kluster och en databas. Se Skapa ett Azure Data Explorer-kluster och en databas.

    2. Skapa ett Azure Active Directory-program och bevilja behörighet att mata in data i ADX-databasen. Se Skapa en Microsoft Entra-programregistrering i Azure Data Explorer.

      Anmärkning

      Spara appnyckeln och program-ID:t för framtida användning.

    3. Skapa en tabell för logginmatning. Till exempel:

    .create table LogTable (
      tag:string,
      timestamp:datetime,
      record:dynamic
    )
    
  2. Kör Fluentd med konfigurationsfilen :

    fluentd -c fluent.conf
    
  3. Verifiera logginmatning genom att:

    1. Kontrollera fluentd-loggfilen, bekräfta att det inte finns några fel och att inmatningsbegäranden skickas korrekt.

      Skärmbild av Fluentd-loggfilen som visar lyckade inmatningsbegäranden

    2. Utföra en fråga mot ADX-tabellen för att säkerställa att loggar importeras korrekt:

    LogTable
    | take 10
    
  4. Inmatningsmappning: Använd de fördefinierade inmatningsmappningarna i Kusto för att omvandla data i standardformatet med 3 kolumner till önskat schema. Mer information finns i Stöd för inmatningsmappningar.