Logboeken naar Microsoft Sentinel doorsturen met Logstash en de DCR-gebaseerde API

Belangrijk

Gegevensopname met behulp van de Logstash-uitvoerinvoegtoepassing met gegevensverzamelingsregels (DCR's) is momenteel in openbare preview. Deze functie wordt geleverd zonder service level agreement. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor meer informatie.

de Logstash-uitvoerinvoegtoepassing van Microsoft Sentinel ondersteunt pijplijntransformaties en geavanceerde configuratie via regels voor gegevensverzameling (DCR's). De invoegtoepassing stuurt logboeken van externe gegevensbronnen door naar aangepaste of standaardtabellen in Log Analytics of Microsoft Sentinel.

In dit artikel leert u hoe u de Logstash-invoegtoepassing instelt om gegevens te streamen naar Log Analytics of Microsoft Sentinel met behulp van DCR's, met volledige controle over het uitvoerschema.

Met de invoegtoepassing kunt u het volgende doen:

  • De configuratie van de kolomnamen en -typen beheren.
  • Voer tijdens de gegevensinname transformaties uit, zoals filteren of verrijken.
  • Neem aangepaste logboeken op in een aangepaste tabel of neem een Syslog-invoerstroom op in de Log Analytics Syslog-tabel.

Opname in standaardtabellen is alleen beperkt tot standaardtabellen die worden ondersteund voor opname van aangepaste logboeken.

Zie Aan de slag met Logstash voor meer informatie over het werken met de Logstash-engine voor gegevensverzameling.

Overzicht van architectuur

Diagram van de Logstash-architectuur met fasen van invoer-, filter- en uitvoerinvoegtoepassingen die gegevens verzenden naar Log Analytics via de Logs Ingestion-API.

De Logstash-engine bestaat uit drie onderdelen:

  • Invoerinvoegtoepassingen: Aangepaste verzameling van gegevens uit verschillende bronnen.
  • Filterinvoegtoepassingen: Manipulatie en normalisatie van gegevens volgens opgegeven criteria.
  • Uitvoerinvoegtoepassingen: Aangepaste verzending van verzamelde en verwerkte gegevens naar verschillende bestemmingen.

Opmerking

De invoegtoepassing verzendt gegevens in JSON-indeling naar uw Log Analytics-werkruimte met behulp van de Logboekopname-API. De gegevens worden opgenomen in aangepaste logboeken of een standaardtabel.

De Microsoft Sentinel-uitvoerinvoegtoepassing implementeren in Logstash

Volg deze stappen om de invoegtoepassing in te stellen:

  • Bekijk de vereisten voor de Logstash-plugin
  • Installeer de plug-in
  • Een voorbeeldbestand maken
  • De vereiste DCR-gerelateerde resources maken
  • Logstash-configuratiebestand configureren
  • Logstash opnieuw starten
  • Binnenkomende logboeken weergeven in Microsoft Sentinel
  • Auditlogboeken van uitvoerinvoegtoepassingen bewaken

Vereisten voor logstash-invoegtoepassing

  • Installeer een ondersteunde versie van Logstash. De invoegtoepassing ondersteunt de volgende Logstash-versies:

  • Controleer of u een Log Analytics-werkruimte hebt met ten minste inzenderrechten.

  • Controleer of u machtigingen hebt om DCR-objecten te maken in de werkruimte.

Installeer de plug-in

De Microsoft Sentinel-uitvoerinvoegtoepassing is beschikbaar in de logstash-verzameling op RubyGems.

  • Volg de instructies in het document Logstash Working with plugins om de invoegtoepassing microsoft-sentinel-log-analytics-logstash-output-plugin te installeren. Voer de volgende opdracht uit om te installeren op een bestaande Logstash-installatie:

    logstash-plugin install microsoft-sentinel-log-analytics-logstash-output-plugin
    
  • Als uw Logstash-systeem geen internettoegang heeft, volgt u de instructies in het document Logstash Offline Plugin Management om een offline invoegtoepassingspakket voor te bereiden en te gebruiken. (Hiervoor moet een ander Logstash-systeem met internettoegang worden gebouwd.)

Een voorbeeldbestand maken

In deze sectie maakt u een voorbeeldbestand in een van de volgende scenario's:

  • Een voorbeeldbestand maken voor aangepaste logboeken
  • Een voorbeeldbestand maken om logboeken op te nemen in de Syslog-tabel

Een voorbeeldbestand maken voor aangepaste logboeken

In dit scenario configureert u de Logstash-invoerinvoegtoepassing om gebeurtenissen te verzenden naar Microsoft Sentinel. In dit voorbeeld wordt de invoerinvoegtoepassing voor de generator gebruikt om gebeurtenissen te simuleren. U kunt elke andere invoerinvoegtoepassing gebruiken.

In dit voorbeeld ziet het logstash-configuratiebestand er als volgt uit:

input {
      generator {
            lines => [
                 "This is a test log message"
            ]
           count => 10
      }
}

Voer de volgende stappen uit om het voorbeeldbestand te maken:

  1. Kopieer de onderstaande configuratie van de uitvoerinvoegtoepassing naar uw Logstash-configuratiebestand.

    output {
        microsoft-sentinel-log-analytics-logstash-output-plugin {
          create_sample_file => true
          sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/tmp" for Linux. 
        }
    }
    
  2. Zorg ervoor dat het bestandspad waarnaar wordt verwezen al bestaat en start vervolgens Logstash.

    De invoegtoepassing schrijft tien records naar een voorbeeldbestand met de naam sampleFile<epoch seconds>.json in het geconfigureerde pad zodra er tien gebeurtenissen zijn om een steekproef te nemen of wanneer het Logstash-proces correct wordt afgesloten. Bijvoorbeeld: c:\temp\sampleFile1648453501.json. Dit is een onderdeel van een voorbeeldbestand dat door de invoegtoepassing wordt gemaakt:

    [
            {
                "host": "logstashMachine",
                "sequence": 0,
                "message": "This is a test log message",
                "ls_timestamp": "2022-03-28T17:45:01.690Z",
                "ls_version": "1"
            },
            {
                "host": "logstashMachine",
                "sequence": 1
        ...
    
        ]    
    

    De invoegtoepassing voegt deze eigenschappen automatisch toe aan elke record:

    • ls_timestamp: het tijdstip waarop de record wordt ontvangen van de invoerinvoegtoepassing
    • ls_version: De logstash-pijplijnversie.

    U kunt deze velden verwijderen wanneer u de DCR maakt.

Een voorbeeldbestand maken om logboeken op te nemen in de Syslog-tabel

In dit scenario configureert u de Logstash-invoerinvoegtoepassing om syslog-gebeurtenissen te verzenden naar Microsoft Sentinel.

  1. Als u nog geen syslog-berichten hebt doorgestuurd naar uw Logstash-computer, kunt u de opdracht logger gebruiken om berichten te genereren. Bijvoorbeeld (voor Linux):

    logger -p local4.warn --rfc3164 --tcp -t CEF "0|Microsoft|Device|cef-test|example|data|1|here is some more data for the example" -P 514 -d -n 127.0.0.1
    

    Hier volgt een voorbeeld van de Logstash-invoerinvoegtoepassing:

    input {
         syslog {
             port => 514
        }
    }
    
  2. Kopieer de onderstaande configuratie van de uitvoerinvoegtoepassing naar uw Logstash-configuratiebestand.

    output {
        microsoft-sentinel-log-analytics-logstash-output-plugin {
          create_sample_file => true
          sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/tmp" for Linux. 
        }
    }
    
  3. Controleer of het bestandspad al bestaat en start Logstash.

    De invoegtoepassing schrijft tien records naar een voorbeeldbestand met de naam sampleFile<epoch seconds>.json in het geconfigureerde pad zodra er tien gebeurtenissen zijn om een steekproef te nemen of wanneer het Logstash-proces correct wordt afgesloten. Bijvoorbeeld: c:\temp\sampleFile1648453501.json. Dit is een onderdeel van een voorbeeldbestand dat door de invoegtoepassing wordt gemaakt:

    [
            {
                "logsource": "logstashMachine",
                "facility": 20,
                "severity_label": "Warning",
                "severity": 4,
                "timestamp": "Apr  7 08:26:04",
                "program": "CEF:",
                "host": "127.0.0.1",
                "facility_label": "local4",
                "priority": 164,
                "message": "0|Microsoft|Device|cef-test|example|data|1|here is some more data for the example",
                "ls_timestamp": "2022-04-07T08:26:04.000Z",
                "ls_version": "1"
            }
    ]    
    
    

    De invoegtoepassing voegt deze eigenschappen automatisch toe aan elke record:

    • ls_timestamp: het tijdstip waarop de record wordt ontvangen van de invoerinvoegtoepassing
    • ls_version: De logstash-pijplijnversie.

    U kunt deze velden verwijderen wanneer u de DCR maakt.

De vereiste DCR-resources maken

Als u de Microsoft Sentinel op DCR gebaseerde Logstash-invoegtoepassing wilt configureren, maakt u eerst de DCR-gerelateerde resources.

In deze sectie maakt u resources voor gebruik voor uw DCR, in een van de volgende scenario's:

  • DCR-resources maken voor opname in een aangepaste tabel
  • DCR-resources maken voor opname in een standaardtabel

DCR-resources maken voor opname in een aangepaste tabel

Als u de gegevens wilt opnemen in een aangepaste tabel, volgt u deze stappen (op basis van de zelfstudie Gegevens verzenden naar Azure Logboeken bewaken met behulp van REST API (Azure Portal):

  1. Controleer de voorvereisten.

  2. Configureer de toepassing.

  3. Een aangepaste logboektabel toevoegen.

  4. Parseert en filter voorbeeldgegevens met behulp van het voorbeeldbestand dat u in de vorige sectie hebt gemaakt.

  5. Gegevens verzamelen uit de DCR.

  6. Wijs machtigingen toe aan de DCR.

    Sla de stap Voorbeeldgegevens verzenden over.

Als je problemen tegenkomt, bekijk dan de stappen voor probleemoplossing in de Logs Ingestion API.

DCR-resources maken voor opname in een standaardtabel

Als u de gegevens wilt opnemen in een standaardtabel zoals Syslog of CommonSecurityLog, gebruikt u een proces op basis van de zelfstudie Gegevens verzenden naar Azure Logboeken bewaken met behulp van REST API (Resource Manager sjablonen). In de zelfstudie wordt uitgelegd hoe u gegevens opneemt in een aangepaste tabel, maar u kunt het proces eenvoudig aanpassen om gegevens op te nemen in een standaardtabel. De onderstaande stappen geven relevante wijzigingen in de stappen aan.

  1. Controleer de voorvereisten.

  2. Werkruimtegegevens verzamelen.

  3. Een toepassing configureren.

    Sla de stap Nieuwe tabel maken in Log Analytics-werkruimte over. Deze stap is niet relevant bij het opnemen van gegevens in een standaardtabel, omdat de tabel al is gedefinieerd in Log Analytics.

  4. Maak de DCR aan. In deze stap:

    • Geef het voorbeeldbestand dat je hebt gemaakt in Create a sample file.
    • Gebruik het voorbeeldbestand dat u hebt gemaakt om de streamDeclarations eigenschap te definiëren. Elk van de velden in het voorbeeldbestand moet een bijbehorende kolom hebben met dezelfde naam en het juiste type (zie het onderstaande voorbeeld).
    • Configureer de waarde van de outputStream eigenschap met de naam van de standaardtabel in plaats van de aangepaste tabel. In tegenstelling tot aangepaste tabellen hebben standaardtabelnamen niet het _CL achtervoegsel.
    • Het voorvoegsel van de tabelnaam moet Microsoft- in plaats van Custom-zijn. In dit voorbeeld is de waarde van de eigenschap outputStreamMicrosoft-Syslog.
  5. Machtigingen toewijzen aan een DCR.

    Sla de stap Voorbeeldgegevens verzenden over.

Als je problemen tegenkomt, bekijk dan de stappen voor probleemoplossing in de Logs Ingestion API.

Voorbeeld: DCR die gegevens opneemt in de Syslog-tabel

Houd rekening met deze punten:

  • De streamDeclarations kolomnamen en -typen moeten hetzelfde zijn als de voorbeeldbestandsvelden, maar u hoeft ze niet allemaal op te geven. In de onderstaande DCR worden bijvoorbeeld de PRIvelden , type en ls_version weggelaten uit de streamDeclarations kolom.
  • De dataflows eigenschap transformeert de invoer naar de Syslog-tabelindeling en stelt de outputStream in op Microsoft-Syslog.
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "dataCollectionRuleName": {
      "type": "String",
      "metadata": {
        "description": "Specifies the name of the Data Collection Rule to create."
      }
    },
    "location": {
      "defaultValue": "[resourceGroup().location]",
      "type": "String",
      "metadata": {
        "description": "Specifies the location in which to create the Data Collection Rule."
      }
    },
    "workspaceResourceId": {
      "type": "String",
      "metadata": {
        "description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Insights/dataCollectionRules",
      "apiVersion": "2021-09-01-preview",
      "name": "[parameters('dataCollectionRuleName')]",
      "location": "[parameters('location')]",
      "properties": {
        "streamDeclarations": {
          "Custom-SyslogStream": {
            "columns": [
              { "name": "ls_timestamp", "type": "datetime" },
              { "name": "timestamp", "type": "datetime" },
              { "name": "message", "type": "string" },
              { "name": "facility_label", "type": "string" },
              { "name": "severity_label", "type": "string" },
              { "name": "host", "type": "string" },
              { "name": "logsource", "type": "string" }
            ]
          }
        },
        "destinations": {
          "logAnalytics": [
            {
              "workspaceResourceId": "[parameters('workspaceResourceId')]",
              "name": "clv2ws1"
            }
          ]
        },
        "dataFlows": [
          {
            "streams": ["Custom-SyslogStream"],
            "destinations": ["clv2ws1"],
            "transformKql": "source | project TimeGenerated = ls_timestamp, EventTime = todatetime(timestamp), Computer = logsource, HostName = logsource, HostIP = host, SyslogMessage = message, Facility = facility_label, SeverityLevel = severity_label",
            "outputStream": "Microsoft-Syslog"
          }
        ]
      }
    }
  ],
  "outputs": {
    "dataCollectionRuleId": {
      "type": "String",
      "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
    }
  }
}

Logstash-configuratiebestand configureren

De invoegtoepassing ondersteunt twee verificatiemethoden: service-principal (clientreferenties) en beheerde identiteit (zonder wachtwoord). Kies de methode die bij uw omgeving past.

Verificatie van service-principal

Om het Logstash-configuratiebestand te configureren zodat het de logs invoert in een aangepaste tabel met service principal-authenticatie, haal je de volgende waarden op: client_id, client_secret, tenant_id, , data_collection_endpoint, dcr_id, en stream_name.

Veld Hoe op te halen
client_id De Application (client) ID waarde die je creëert in stap 3 wanneer je de DCR-resources aanmaakt, volgens de Azure portal tutorial of Resource Manager templates tutorial.
client_secret De client secret-waarde die je aanmaakt in stap 5 wanneer je de DCR-resources aanmaakt, volgens de Azure portal tutorial of Resource Manager templates tutorial.
tenant_id De tenant-id van uw abonnement. U vindt de tenant-id onder Home > Microsoft Entra ID > Overzicht > Basisinformatie.
data_collection_endpoint De waarde van de logsIngestion URI in stap 3 wanneer je de DCR-resources aanmaakt, volgens de Azure portal tutorial of Resource Manager templates tutorial.
dcr_id De waarde van de DCR immutableId in stap 6 wanneer je de DCR-resources aanmaakt, volgens de Azure portal tutorial of Resource Manager templates tutorial.
stream_name Voor aangepaste tabellen, zoals uitgelegd in stap 6 wanneer u de DCR-resources maakt, gaat u naar de JSON-weergave van de DCR en kopieert u de dataFlows>streams eigenschap. Zie het stream_name voorbeeld van de configuratieconfiguratie van Service principal output plugin. Voor standaardtabellen is Custom-SyslogStreamde waarde .

Nadat u de vereiste waarden hebt opgehaald:

  1. Vervang de uitvoersectie van het Logstash-configuratiebestand dat u in de vorige stap hebt gemaakt door het onderstaande voorbeeld.
  2. Vervang de tijdelijke aanduidingstekenreeksen in het onderstaande voorbeeld door de waarden die u hebt opgehaald.
  3. Zorg ervoor dat u het create_sample_file kenmerk wijzigt in false.
Voorbeeld: configuratie van de uitvoer-plug-in voor een service-principal
output {
    microsoft-sentinel-log-analytics-logstash-output-plugin {
      client_id => "<enter your client_id value here>"
      client_secret => "<enter your client_secret value here>"
      tenant_id => "<enter your tenant id here>"
      data_collection_endpoint => "<enter your logsIngestion URI here>"
      dcr_id => "<enter your DCR immutableId here>"
      stream_name => "<enter your stream name here>"
      create_sample_file=> false
      sample_file_path => "c:\\temp"
    }
}

Verificatie van beheerde identiteit (zonder wachtwoord)

Wanneer je geen service-principalreferenties (client_id, client_secret en tenant_id) opgeeft, authenticeert de plugin zich met behulp van DefaultAzureCredential uit de Azure SDK. DefaultAzureCredential probeert een reeks authenticatiemethoden en gebruikt de eerste die slaagt. In een serveromgeving worden de relevante methoden in deze volgorde geprobeerd:

  1. Omgevingsvariabelen: Leet credentials uit omgevingsvariabelen zoals AZURE_CLIENT_ID, AZURE_TENANT_ID, en AZURE_CLIENT_SECRET om te authenticeren als service principal.
  2. Workload-identiteit: Als de plugin draait op een Azure-host met workload-identiteit ingeschakeld (bijvoorbeeld AKS met de AZURE_FEDERATED_TOKEN_FILE omgevingsvariabele ingesteld), voert de plugin een OIDC-tokenuitwisseling uit.
  3. Beheerde identiteit: Als de host een beheerde identiteit heeft ingeschakeld, authenticeert de plugin door die identiteit te gebruiken. Deze methode omvat Azure VM's, Virtual Machine Scale Sets en servers met Azure Arc.

Raadpleeg Credential chains in de Azure Identity-bibliotheek voor Java voor de volledige reeks referenties die DefaultAzureCredential probeert.

Vereiste configuratie voor beheerde identiteit:

Veld Beschrijving
data_collection_endpoint Tekenreeks. De logsIngestion-URI voor uw DCE.
dcr_id Tekenreeks. De immutableId van de DCR.
stream_name Tekenreeks. De naam van de gegevensstroom.
Voorbeeld: Beheerde identiteit
output {
    microsoft-sentinel-log-analytics-logstash-output-plugin {
      data_collection_endpoint => "<enter your DCE logsIngestion URI here>"
      dcr_id => "<enter your DCR immutableId here>"
      stream_name => "<enter your stream name here>"
    }
}

Opmerking

  • Wanneer u Azure Arc gebruikt, moet het Logstash-proces worden uitgevoerd als een gebruiker die lid is van de groep himds om het challenge-token te lezen. Zie de documentatie over de beheerde identiteit van Azure Arc voor meer informatie.
  • Geef om veiligheidsredenen niet impliciet gevoelige configuratiewaarden op, zoals client_secret in uw Logstash-configuratiebestand. Sla gevoelige informatie op in een Logstash KeyStore.
  • Wanneer u een lege tekenreeks instelt als een waarde voor een proxy-instelling, wordt elke proxy-instelling voor het hele systeem ongedaan.

Optionele configuratie

Key Default Beschrijving
azure_cloud AzurePublicCloud Azure-cloudomgeving
proxy (geen) Optionele. Standaard-HTTP-proxy-URL gebruikt voor al het plug-inverkeer. Indeling: [http://][user:password@]host:port. Wanneer niet ingezet, wordt geen proxy gebruikt en blijft het gedrag ongewijzigd.
proxy_aad (waarde van proxy) Optionele. HTTP-proxy-URL wordt alleen gebruikt voor Microsoft Entra ID-authenticatie en tokenverkeer. Valt terug op proxy indien niet ingesteld.
proxy_endpoint (waarde van proxy) Optionele. HTTP-proxy URL gebruikt alleen voor verkeer naar het Data Collection Endpoint. Valt terug op proxy indien niet ingesteld.
keys_to_keep (alles) Lijst met veldnamen die moeten worden verzonden (filteren op een subset).
max_retries_num 3 Maximaal aantal pogingen voor mislukte verzendpogingen.
initial_wait_time_seconds 1 Initiële wachttijd tussen nieuwe pogingen.
connect_timeout_seconds 15 Time-out bij het tot stand brengen van de verbinding met het ingestion-endpoint. Beperkt hoe lang een upload in de verbindingsfase kan worden opgehouden; een daardoor optredende time-out wordt opnieuw geprobeerd.
write_timeout_seconds 60 Time-out bij het verzenden van de aanvraagtekst naar het ingestie-eindpunt. Beperkt hoelang een upload kan blokkeren in de schrijffase; bij een resulterende time-out wordt de upload opnieuw geprobeerd.
max_graceful_shutdown_time_seconds 60 Max, wacht op een gracieuze afsluiting.
max_waiting_time_for_batch_seconds 10 Max, wacht voordat je een batch doorspoelt.
max_waiting_for_unifier_time_seconds 10 Max wacht voordat je de unifier spoelt.
max_batch_size 10000 Maximum aantal gebeurtenissen per batch. Wanneer een batch deze grootte bereikt, wordt deze direct doorgespoeld, ongeacht het tijdsvenster.
input_queue_capacity 50000 Maximale capaciteit van de invoerwachtrij. Begrenst het geheugengebruik bij grootschalige gegevensinname. Wanneer deze vol is, wordt er tegendruk op de Logstash-pijpleiding toegepast.
internal_queue_capacity 500 Maximale capaciteit van de interne wachtrijen tussen batcher-, unifier- en sender-arbeiders. Beperkt het geheugengebruik voor batches tijdens de vlucht.
worker_sleep_time_millis 10 Vertraging tussen iteraties van de worker.
batcher_workers_count (automatisch) Aantal batcherthreads.
sender_workers_count (automatisch) Aantal verzendthreads.
unifier_workers_count (automatisch) Aantal unifier-threads.
id Geen Een aangepaste identificatietag die aan de logboeken van verzonden batches wordt toegevoegd.

Logstash opnieuw starten

Start Logstash opnieuw met de bijgewerkte configuratie van de uitvoerinvoegtoepassing. Controleer of de gegevens worden opgenomen in de juiste tabel volgens uw DCR-configuratie.

Binnenkomende logboeken weergeven in Microsoft Sentinel

Voer de volgende stappen uit om te controleren of logboekgegevens uw werkruimte bereiken:

  1. Controleer of er berichten worden verzonden naar de uitvoerinvoegtoepassing.

  2. Selecteer logboeken in het navigatiemenu Microsoft Sentinel. Vouw onder de kop Tabellen de categorie Aangepaste logboeken uit . Zoek en selecteer de naam van de tabel die u hebt opgegeven (met een _CL achtervoegsel) in de configuratie.

    Schermopname van de pagina Logboeken van Microsoft Sentinel, waarbij de categorie Aangepaste logboeken is uitgevouwen en een aangepaste Logstash-tabel is geselecteerd.

  3. Als u records in de tabel wilt zien, voert u een query uit op de tabel met behulp van de tabelnaam als schema.

    Schermopname van een aangepaste logsquery van Logstash.

Auditlogboeken van uitvoerinvoegtoepassingen bewaken

Als u de connectiviteit en activiteit van de Microsoft Sentinel-uitvoerinvoegtoepassing wilt bewaken, schakelt u het juiste Logboekbestand van Logstash in. Zie het document Logstash Directory Layout voor de locatie van het logboekbestand.

Als u geen gegevens in dit logboekbestand ziet, genereert en verzendt u enkele gebeurtenissen lokaal via de invoer- en filterinvoegtoepassingen om ervoor te zorgen dat de uitvoerinvoegtoepassing gegevens ontvangt. Microsoft Sentinel ondersteunt alleen problemen met betrekking tot de uitvoerinvoegtoepassing.

Netwerkbeveiliging

Definieer netwerkinstellingen en schakel netwerkisolatie in voor de Microsoft Sentinel Logstash-uitvoerinvoegtoepassing.

Servicetags voor virtuele netwerken

Microsoft Sentinel uitvoerinvoegtoepassing ondersteunt Azure servicetags van virtuele netwerken. Zowel AzureMonitor - als AzureActiveDirectory-tags zijn vereist.

Azure Virtual Network servicetags kunnen worden gebruikt voor het definiëren van netwerktoegangsbeheer voor netwerkbeveiligingsgroepen, Azure Firewall en door de gebruiker gedefinieerde routes. Gebruik servicetags in plaats van specifieke IP-adressen wanneer u beveiligingsregels en -routes maakt. Voor scenario's waarin Azure Virtual Network servicetags niet kunnen worden gebruikt, worden de firewallvereisten hieronder beschreven.

Firewallvereisten

De volgende tabel bevat de firewallvereisten voor scenario's waarin Azure servicetags van virtuele netwerken niet kunnen worden gebruikt.

Cloud Eindpunt Doel Poort Richting HTTPS-inspectie omzeilen
Azure Commercieel https://login.microsoftonline.com Autorisatieserver (de Microsoft identity platform) Poort 443 Uitgaand Ja
Azure Commercieel https://<data collection endpoint name>.<Azure cloud region>.ingest.monitor.azure.com Eindpunt voor gegevensverzameling Poort 443 Uitgaand Ja
Azure Government https://login.microsoftonline.us Autorisatieserver (de Microsoft identity platform) Poort 443 Uitgaand Ja
Azure Government Vervang '.com' hierboven door '.us' Eindpunt voor gegevensverzameling Poort 443 Uitgaand Ja
Microsoft Azure beheerd door 21Vianet https://login.chinacloudapi.cn Autorisatieserver (de Microsoft identity platform) Poort 443 Uitgaand Ja
Microsoft Azure beheerd door 21Vianet Vervang '.com' hierboven door '.cn' Eindpunt voor gegevensverzameling Poort 443 Uitgaand Ja

Versiegeschiedenis van invoegtoepassing

2.5.0

  • Optionele proxyconfiguratie per plugin toegevoegd voor authenticatie en ingestieverkeer met gebruik van proxy, proxy_aad, en proxy_endpoint.
  • Netty-handler, HTTP-, HTTP/2- en DNS-componenten zijn bijgewerkt van 4.1.133.Final naar 4.1.136.Final.
  • Jackson Databind en Jackson Core zijn bijgewerkt van 2.18.6 naar 2.18.8.

2.4.0

  • Worker-threads draaien nu als begrensde, door de executor geplande passes: herstelbare uitzonderingen worden gelogd en de worker hervat in de volgende cyclus; fatale JVM-fouten worden geregistreerd en opnieuw gegooid.
  • Vaste sierlijke afsluiting zodat batches tijdens de vlucht worden leeggehaald (batchers, dan unifiers, daarna senders) voordat de werkers stoppen, begrensd door max_graceful_shutdown_time_seconds.
  • Instelbare uploadtimeouts connect_timeout_seconds toegevoegd (standaard 15) en write_timeout_seconds (standaard 60); verbindings- en schrijftimeouts worden opnieuw geprobeerd.
  • Thread-ID, uitzonderingstype, batchgrootte en DCR-stroom toegevoegd aan batch-faallogs.

2.3.3

  • Verlies van numerieke en booleaanse typegetrouwheid opgelost: velden die gebruikmaken van de interne JRuby-typen van Logstash (bijvoorbeeld poorten en byteaantallen) worden nu behouden als native JSON-getallen en booleaanse waarden in plaats van te worden omgezet in tekenreeksen, zodat betrouwbare inname door DCR’s met getypeerde kolommen is gewaarborgd.

2.3.2

  • Opgelost: het ongemerkt stoppen van de werkthread, veroorzaakt door niet-afgevangen uitzonderingen in de verwerkingslus van de werkthread.
  • NullPointerException in SenderWorker opgelost als Azure een LogsUploadException met een null HTTP-respons retourneert.
  • Veerkrachtige foutafhandeling toegevoegd met opeenvolgende foutregistratie om permanente werkfoutuitval te verminderen.
  • Optionele id configuratiewaarde toegevoegd voor telemetrie.
  • DCR-stroom toegevoegd aan de logging van sent-batches.

2.3.0

  • Functionaliteit ingeschakeld met Logstash 9.4.
  • Afhankelijkheidsversies voor externe bibliotheken (azure-sdk-bom, logback, slf4j, Netty) bijgewerkt.

2.2.1

  • Voegt een info-level loglijn toe wanneer batches succesvol zijn verzonden.

2.2.0

  • Voegt de mogelijkheid toe om zowel nieuwe als oude configuratiewaarden te gebruiken.

2.1.2

  • Documentatie-updates.

2.1.0

  • Eventnormalisatie opgelost.

2.0.0

  • De plugin is van Ruby naar Java herschreven.
  • ManagedIdentity-verificatie toegevoegd.
  • Codebasis verplaatst van GitHub naar Azure DevOps.
  • Gesloten codebasis.

1.2.0

  • Voegt ondersteuning voor verificatie van beheerde identiteit toe voor Azure VM's/VMSS (door het systeem toegewezen en door de gebruiker toegewezen via IMDS).
  • Voegt ondersteuning voor AKS-workloadidentiteit toe via OIDC-tokenuitwisseling.
  • Voegt Azure ondersteuning voor beheerde arc-identiteiten toe voor hybride en on-premises servers.
  • Hiermee wordt de verificatiemethode tijdens runtime automatisch gedetecteerd op basis van de omgeving (workload identity env vars, Arc-agent of IMDS-terugval).
  • Migreert HTTP-client van excon naar rest-client voor verbeterde compatibiliteit van JRuby- en Logstash-invoegtoepassingsecosysteem.
  • Hiermee wijzigt u de naam van Azure Active Directory-verwijzingen naar Microsoft Entra ID.

1.1.4

  • Hiermee wordt excon de bibliotheekversie beperkt tot lager dan 1.0.0 om ervoor te zorgen dat de poort altijd wordt gebruikt wanneer u een proxy gebruikt.

1.1.3

  • Vervangt de rest-client bibliotheek die wordt gebruikt om verbinding te maken met Azure met de excon bibliotheek.

1.1.1

  • Hiermee wordt ondersteuning toegevoegd voor Azure cloud van de Amerikaanse overheid en Microsoft Azure beheerd door 21Vianet in China.

1.1.0

  • Hiermee kunt u verschillende proxywaarden instellen voor API-verbindingen.
  • Hiermee wordt de versie voor logboekopname-API bijgewerkt naar 01-01-2023.
  • Wijzigt de naam van de invoegtoepassing in microsoft-sentinel-log-analytics-logstash-output-plugin.

1.0.0

  • De eerste release voor de Logstash-uitvoerinvoegtoepassing voor Microsoft Sentinel. Deze invoegtoepassing maakt gebruik van gegevensverzamelingsregels (DCR's) met de Logboekopname-API van Azure Monitor.

Bekende problemen

Wanneer u Logstash gebruikt die is geïnstalleerd op een Docker-installatiekopie van Lite Ubuntu, kan de volgende waarschuwing worden weergegeven:

java.lang.RuntimeException: getprotobyname_r failed

U kunt deze fout oplossen door het netbase-pakket in uw Dockerfile te installeren:

USER root
RUN apt install netbase -y

Zie JNR-regressie in Logstash 7.17.0 (Docker) voor meer informatie.

Als het evenementenpercentage in je omgeving laag is, verhoog dan de waarde van max_waiting_time_for_batch_seconds en max_waiting_for_unifier_time_seconds naar 60 of meer. U kunt de payload voor gegevensinname bewaken met behulp van DCR-metrieken. Voor meer informatie over de wachttijdvariabelen, zie de optie configuratietabel .

Beperkingen