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.
Notitie
Deze functie is momenteel niet beschikbaar in de Azure Synapse Runtime voor Apache Spark 3.4 runtime, maar wordt ondersteund na algemene beschikbaarheid.
Logboeken en metrische gegevens verzamelen in Azure Event Hubs
Stap 1: Een Azure Event Hub-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 verwijzen naar Azure EventHub-configuraties
Stap 3: Het Apache Spark-configuratiebestand uploaden naar een Apache Spark-pool
- Navigeer naar uw Apache Spark-pool in Synapse Studio (Beheren -> Apache Spark-pools)
- Klik op de knop '...' rechts van uw Apache Spark-pool en selecteer de Apache Spark-configuratie
- 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 EventHub-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 EntityPath
naam 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.