Shromažďování protokolů a metrik aplikací Apache Spark pomocí služby Azure Event Hubs
Rozšíření diagnostického emitoru Synapse Apache Spark je knihovna, která aplikaci Apache Spark umožňuje generovat protokoly, protokoly událostí a metriky do jednoho nebo více cílů, včetně Azure Log Analytics, Azure Storage a Azure Event Hubs.
V tomto kurzu se dozvíte, jak pomocí rozšíření diagnostického emitoru Synapse Apache Sparku generovat protokoly aplikací Apache Spark, protokoly událostí a metriky do služby Azure Event Hubs.
Poznámka:
Tato funkce je v současné době nedostupná v modulu Runtime Azure Synapse pro modul runtime Apache Spark 3.4 , ale bude podporována po ga.
Shromažďování protokolů a metrik do služby Azure Event Hubs
Krok 1: Vytvoření instance centra událostí Azure
Pokud chcete shromažďovat diagnostické protokoly a metriky do služby Azure Event Hubs, můžete použít existující instanci služby Azure Event Hubs. Nebo pokud ho nemáte, můžete vytvořit centrum událostí.
Krok 2: Vytvoření konfiguračního souboru Apache Sparku
Vytvořte diagnostic-emitter-azure-event-hub-conf.txt
do souboru následující obsah a zkopírujte ho. Nebo si stáhněte ukázkový soubor šablony pro konfiguraci fondu Apache Spark.
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>
Do konfiguračního souboru zadejte následující parametry: <connection-string>
.
Další popis parametrů najdete v konfiguracích Azure EventHubu.
Krok 3: Nahrání konfiguračního souboru Apache Sparku do fondu Apache Spark
- Přejděte do fondu Apache Sparku v synapse Studiu (správa –> fondy Apache Sparku)
- Klikněte na tlačítko "..." na pravé straně fondu Apache Spark a vyberte konfiguraci Apache Sparku.
- Klikněte na Nahrát a zvolte konfigurační soubor .txt a klikněte na Použít.
Dostupné konfigurace
Konfigurace | Popis |
---|---|
spark.synapse.diagnostic.emitters |
Požadováno. Cílové názvy diagnostických emitorů oddělené čárkami. |
spark.synapse.diagnostic.emitter.<destination>.type |
Povinný: Předdefinovaný cílový typ Pokud chcete povolit cíl služby Azure Event Hubs, měla by být AzureEventHub hodnota . |
spark.synapse.diagnostic.emitter.<destination>.categories |
Nepovinné. Vybrané kategorie protokolu oddělené čárkami. Mezi dostupné hodnoty patří DriverLog , ExecutorLog , EventLog , Metrics . Pokud není nastavená, výchozí hodnota je všechny kategorie. |
spark.synapse.diagnostic.emitter.<destination>.secret |
Nepovinné. Instance Azure EventHubu připojovací řetězec. Toto pole by mělo odpovídat tomuto vzoru. Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName> |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Povinné, pokud .secret není zadáno. Název trezoru klíčů Azure, ve kterém je uložený tajný klíč (připojovací řetězec). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Vyžaduje se, pokud .secret.keyVault je zadáno. Název tajného kódu služby Azure Key Vault, ve kterém je tajný klíč (připojovací řetězec) uložený. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.linkedService |
Nepovinné. Název propojené služby Azure Key Vault. Pokud je v kanálu Synapse povolené, je to nezbytné k získání tajného kódu z AKV. (Ujistěte se, že MSI má oprávnění ke čtení ve službě AKV). |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Nepovinné. Názvy událostí Spark oddělených čárkami můžete určit, které události se mají shromažďovat. Příklad: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Nepovinné. Názvy protokolovacího nástroje odděleného čárkami, můžete určit, které protokoly se mají shromažďovat. Příklad: org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Nepovinné. Přípony názvů sparkových metrik oddělených čárkami můžete určit, které metriky se mají shromažďovat. Příklad: jvm.heap.used |
Poznámka:
Instance Azure EventHubu připojovací řetězec by měla vždy obsahovat EntityPath
název instance Azure Event Hubs.
Ukázka dat protokolu
Tady je ukázkový záznam protokolu ve formátu JSON:
{
"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"
// ...
}
}
Pracovní prostor Synapse s povolenou ochranou před exfiltrací dat
Pracovní prostory Azure Synapse Analytics podporují zapnutí ochrany před exfiltrací dat. Díky ochraně exfiltrace se protokoly a metriky nedají odesílat přímo do cílových koncových bodů. V tomto scénáři můžete vytvořit odpovídající spravované privátní koncové body pro různé cílové koncové body nebo vytvořit pravidla brány firewall protokolu IP.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro