Delen via


Logboeken en metrische gegevens van Uw Apache Spark-toepassingen verzamelen met behulp van Azure Event Hubs

De diagnostische emitterextensie van Synapse Apache Spark is een bibliotheek waarmee de Apache Spark-toepassing de logboeken, gebeurtenislogboeken en metrische gegevens naar een of meer bestemmingen kan verzenden, waaronder Azure Log Analytics, Azure Storage en Azure Event Hubs.

In deze zelfstudie leert u hoe u de diagnostische emitterextensie van Synapse Apache Spark gebruikt om logboeken, gebeurtenislogboeken en metrische gegevens van Apache Spark-toepassingen naar uw Azure Event Hubs te verzenden.

Logboeken en metrische gegevens verzamelen in Azure Event Hubs

Stap 1: Een Azure Event Hubs-exemplaar maken

Als u diagnostische logboeken en metrische gegevens voor Azure Event Hubs wilt verzamelen, kunt u een bestaand Azure Event Hubs-exemplaar gebruiken. Of als u er nog geen hebt, kunt u een Event Hub maken.

Stap 2: een Apache Spark-configuratiebestand maken

Maak een diagnostic-emitter-azure-event-hub-conf.txt en kopieer de volgende inhoud naar het bestand. Of download een voorbeeldsjabloonbestand voor de configuratie van apache Spark-pools.

spark.synapse.diagnostic.emitters MyDestination1
spark.synapse.diagnostic.emitter.MyDestination1.type AzureEventHub
spark.synapse.diagnostic.emitter.MyDestination1.categories Log,EventLog,Metrics
spark.synapse.diagnostic.emitter.MyDestination1.secret <connection-string>

Vul de volgende parameters in het configuratiebestand in: <connection-string>. Voor meer beschrijving van de parameters kunt u azure Event Hubs-configuraties raadplegen.

Stap 3: Het Apache Spark-configuratiebestand uploaden naar een Apache Spark-pool

  1. Navigeer naar uw Apache Spark-pool in Synapse Studio (Beheren -> Apache Spark-pools)
  2. Klik op de knop '...' rechts van uw Apache Spark-pool en selecteer de Apache Spark-configuratie
  3. Klik op Uploaden en kies het configuratiebestand .txt en klik op Toepassen.

Beschikbare configuraties

Configuratie Beschrijving
spark.synapse.diagnostic.emitters Vereist. De door komma's gescheiden doelnamen van diagnostische emitters.
spark.synapse.diagnostic.emitter.<destination>.type Vereist. Ingebouwd doeltype. Als u de Azure Event Hubs-bestemming wilt inschakelen, moet de waarde zijn AzureEventHub.
spark.synapse.diagnostic.emitter.<destination>.categories Optioneel. De door komma's gescheiden geselecteerde logboekcategorieën. Beschikbare waarden zijn onder andere DriverLog, ExecutorLog, EventLog. Metrics Als deze niet is ingesteld, is de standaardwaarde alle categorieën.
spark.synapse.diagnostic.emitter.<destination>.secret Optioneel. Het Azure Event Hubs-exemplaar verbindingsreeks. Dit veld moet overeenkomen met dit patroon Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName>
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault Vereist als .secret dit niet is opgegeven. De naam van de Azure Key Vault waar het geheim (verbindingsreeks) is opgeslagen.
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName Vereist als .secret.keyVault dit is opgegeven. De naam van het Azure Key Vault-geheim waarin het geheim (verbindingsreeks) is opgeslagen.
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.linkedService Optioneel. De naam van de gekoppelde Azure Key Vault-service. Wanneer deze functie is ingeschakeld in de Synapse-pijplijn, is dit nodig om het geheim van AKV te verkrijgen. (Zorg ervoor dat MSI leesmachtigingen heeft voor de AKV).
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match Optioneel. De namen van door komma's gescheiden Spark-gebeurtenissen kunt u opgeven welke gebeurtenissen moeten worden verzameld. Bijvoorbeeld: SparkListenerApplicationStart,SparkListenerApplicationEnd
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match Optioneel. De door komma's gescheiden log4j-logboeknamen kunt u opgeven welke logboeken moeten worden verzameld. Bijvoorbeeld: org.apache.spark.SparkContext,org.example.Logger
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match Optioneel. Met de door komma's gescheiden naamachtervoegsels voor spark-metrische gegevens kunt u opgeven welke metrische gegevens moeten worden verzameld. Bijvoorbeeld:jvm.heap.used

Notitie

Het Azure EventHub-exemplaar verbindingsreeks moet altijd de EntityPathnaam van het Azure Event Hubs-exemplaar bevatten.

Voorbeeld van logboekgegevens

Hier volgt een voorbeeld van een logboekrecord in JSON-indeling:

{
    "timestamp": "2021-01-02T12:34:56.789Z",
    "category": "Log|EventLog|Metrics",
    "workspaceName": "<my-workspace-name>",
    "sparkPool": "<spark-pool-name>",
    "livyId": "<livy-session-id>",
    "applicationId": "<application-id>",
    "applicationName": "<application-name>",
    "executorId": "<driver-or-executor-id>",
    "properties": {
        // The message properties of logs, events and metrics.
        "timestamp": "2021-01-02T12:34:56.789Z",
        "message": "Registering signal handler for TERM",
        "logger_name": "org.apache.spark.util.SignalUtils",
        "level": "INFO",
        "thread_name": "main"
        // ...
    }
}

Synapse-werkruimte waarvoor beveiliging tegen gegevensexfiltratie is ingeschakeld

Azure Synapse Analytics-werkruimten bieden ondersteuning voor het inschakelen van gegevensexfiltratiebeveiliging voor werkruimten. Met exfiltratiebeveiliging kunnen de logboeken en metrische gegevens niet rechtstreeks naar de doeleindpunten worden verzonden. In dit scenario kunt u bijbehorende beheerde privé-eindpunten maken voor verschillende doeleindpunten of IP-firewallregels maken.