Monitorování aplikací Apache Spark pomocí Azure Log Analytics
V tomto kurzu se dozvíte, jak povolit konektor Synapse Studio integrovaný do Log Analytics. Pak můžete shromažďovat a odesílat metriky aplikací a protokoly Apache Sparku do pracovního prostoru služby Log Analytics. Nakonec můžete pomocí sešitu služby Azure Monitor vizualizovat metriky a protokoly.
Konfigurace informací o pracovním prostoru
Podle těchto kroků nakonfigurujte potřebné informace v nástroji Synapse Studio.
Krok 1: Vytvoření pracovního prostoru služby Log Analytics
Pokud chcete vytvořit tento pracovní prostor, obraťte se na některý z následujících zdrojů:
- Vytvořte pracovní prostor na webu Azure Portal.
- Vytvořte pracovní prostor pomocí Azure CLI.
- Vytvořte a nakonfigurujte pracovní prostor ve službě Azure Monitor pomocí PowerShellu.
Krok 2: Shromáždění informací o konfiguraci
K přípravě konfigurace použijte některou z následujících možností.
Možnost 1: Konfigurace s ID a klíčem pracovního prostoru služby Log Analytics
Shromážděte následující hodnoty konfigurace Sparku:
-
<LOG_ANALYTICS_WORKSPACE_ID>
: ID pracovního prostoru služby Log Analytics. -
<LOG_ANALYTICS_WORKSPACE_KEY>
: Klíč Log Analytics. Pokud to chcete najít, přejděte na webu Azure Portal do primárního klíče agentů>pracovního prostoru>Služby Azure Log Analytics.
spark.synapse.logAnalytics.enabled true
spark.synapse.logAnalytics.workspaceId <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.logAnalytics.secret <LOG_ANALYTICS_WORKSPACE_KEY>
Možnost 2: Konfigurace se službou Azure Key Vault
Poznámka:
Uživatelům, kteří budou odesílat aplikace Apache Spark, musíte udělit oprávnění ke čtení tajného kódu. Další informace najdete v tématu Poskytnutí přístupu ke klíčům, certifikátům a tajným kódům služby Key Vault pomocí řízení přístupu na základě role v Azure. Když tuto funkci povolíte v kanálu Synapse, musíte použít možnost 3. To je nezbytné k získání tajného kódu ze služby Azure Key Vault pomocí spravované identity pracovního prostoru.
Pokud chcete nakonfigurovat Azure Key Vault pro uložení klíče pracovního prostoru, postupujte takto:
Vytvořte trezor klíčů na webu Azure Portal a přejděte do trezoru klíčů.
Na stránce nastavení trezoru klíčů vyberte Tajné kódy.
Vyberte Generovat/importovat.
Na obrazovce Vytvoření tajného kódu zvolte následující hodnoty:
-
Název: Zadejte název tajného kódu. Jako výchozí zadejte
SparkLogAnalyticsSecret
. -
Hodnota: Zadejte
<LOG_ANALYTICS_WORKSPACE_KEY>
tajný kód. - U ostatních hodnot ponechte jejich výchozí nastavení. Pak vyberte Vytvořit.
-
Název: Zadejte název tajného kódu. Jako výchozí zadejte
Shromážděte následující hodnoty konfigurace Sparku:
-
<LOG_ANALYTICS_WORKSPACE_ID>
: ID pracovního prostoru služby Log Analytics. -
<AZURE_KEY_VAULT_NAME>
: Název trezoru klíčů, který jste nakonfigurovali. -
<AZURE_KEY_VAULT_SECRET_KEY_NAME>
(volitelné): Název tajného klíče v trezoru klíčů pro klíč pracovního prostoru. Výchozí hodnota jeSparkLogAnalyticsSecret
.
-
spark.synapse.logAnalytics.enabled true
spark.synapse.logAnalytics.workspaceId <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.logAnalytics.keyVault.name <AZURE_KEY_VAULT_NAME>
spark.synapse.logAnalytics.keyVault.key.secret <AZURE_KEY_VAULT_SECRET_KEY_NAME>
Poznámka:
ID pracovního prostoru můžete také uložit ve službě Key Vault. Projděte si předchozí kroky a uložte ID pracovního prostoru s názvem tajného kódu SparkLogAnalyticsWorkspaceId
. Případně můžete pomocí konfigurace spark.synapse.logAnalytics.keyVault.key.workspaceId
zadat název tajného klíče ID pracovního prostoru ve službě Key Vault.
Možnost 3. Konfigurace s propojenou službou
Poznámka:
V této možnosti musíte udělit oprávnění ke čtení tajného klíče spravované identitě pracovního prostoru. Další informace najdete v tématu Poskytnutí přístupu ke klíčům, certifikátům a tajným kódům služby Key Vault pomocí řízení přístupu na základě role v Azure.
Pokud chcete nakonfigurovat propojenou službu Key Vault ve službě Synapse Studio pro uložení klíče pracovního prostoru, postupujte takto:
Postupujte podle všech kroků v předchozí části " Možnost 2".
Vytvoření propojené služby Key Vault v nástroji Synapse Studio:
a. Přejděte na Synapse Studio>Manage Linked Services (Spravovat>propojené služby) a pak vyberte New (Nový).
b. Do vyhledávacího pole vyhledejte Azure Key Vault.
c. Zadejte název propojené služby.
d. Zvolte trezor klíčů a vyberte Vytvořit.
spark.synapse.logAnalytics.keyVault.linkedServiceName
Přidejte položku do konfigurace Apache Sparku.
spark.synapse.logAnalytics.enabled true
spark.synapse.logAnalytics.workspaceId <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.logAnalytics.keyVault.key.secret <AZURE_KEY_VAULT_SECRET_KEY_NAME>
spark.synapse.logAnalytics.keyVault.linkedServiceName <LINKED_SERVICE_NAME>
Seznam konfigurací Apache Sparku najdete v tématu Dostupné konfigurace Apache Sparku.
Krok 3: Vytvoření konfigurace Apache Sparku
Konfiguraci Apache Sparku můžete vytvořit do pracovního prostoru a při vytváření definice úlohy Poznámkový blok nebo Apache Spark můžete vybrat konfiguraci Apache Sparku, kterou chcete použít s fondem Apache Spark. Když ji vyberete, zobrazí se podrobnosti o konfiguraci.
Vyberte Spravovat>konfigurace Apache Sparku.
Výběrem tlačítka Nový vytvořte novou konfiguraci Apache Sparku.
Po výběru tlačítka Nový se otevře stránka konfigurace Apache Sparku.
Jako název můžete zadat preferovaný a platný název.
Do popisu můžete zadat nějaký popis.
U poznámek můžete přidat poznámky kliknutím na tlačítko Nový a také můžete odstranit existující poznámky tak, že vyberete a kliknete na tlačítko Odstranit .
U vlastností konfigurace přidejte všechny vlastnosti z možnosti konfigurace, kterou jste zvolili výběrem tlačítka Přidat . Jako vlastnost přidejte název vlastnosti, jak je uvedeno, a pro hodnotu použijte hodnotu, kterou jste shromáždili v kroku 2. Pokud nepřidáte vlastnost, Azure Synapse použije výchozí hodnotu, pokud je k dispozici.
Odeslání aplikace Apache Spark a zobrazení protokolů a metrik
Postupujte následovně:
Odešlete aplikaci Apache Spark do fondu Apache Spark nakonfigurovaného v předchozím kroku. Můžete to udělat některým z následujících způsobů:
- Spusťte poznámkový blok v nástroji Synapse Studio.
- V synapse Studiu odešlete dávkovou úlohu Apache Sparku prostřednictvím definice úlohy Apache Spark.
- Spusťte kanál, který obsahuje aktivitu Apache Sparku.
Přejděte do zadaného pracovního prostoru služby Log Analytics a po spuštění aplikace Apache Spark zobrazte metriky a protokoly aplikací.
Zápis vlastních aplikačních protokolů
K zápisu vlastních protokolů můžete použít knihovnu Apache Log4j.
Příklad pro Scala:
%%spark
val logger = org.apache.log4j.LogManager.getLogger("com.contoso.LoggerExample")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
//log exception
try {
1/0
} catch {
case e:Exception =>logger.warn("Exception", e)
}
// run job for task level metrics
val data = sc.parallelize(Seq(1,2,3,4)).toDF().count()
Příklad pro PySpark:
%%pyspark
logger = sc._jvm.org.apache.log4j.LogManager.getLogger("com.contoso.PythonLoggerExample")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
Použití ukázkového sešitu k vizualizaci metrik a protokolů
Otevřete a zkopírujte obsah souboru sešitu.
Na webu Azure Portal vyberte Sešity pracovního prostoru>služby Log Analytics.
Otevřete prázdný sešit. Pomocí režimu Rozšířený editor vyberte <ikonu />.
Vložte veškerý kód JSON, který existuje.
Vyberte Použít a pak vyberte Hotovo úpravy.
Pak odešlete aplikaci Apache Spark do nakonfigurovaného fondu Apache Sparku. Jakmile aplikace přejde do spuštěného stavu, zvolte spuštěnou aplikaci v rozevíracím seznamu sešitu.
Sešit můžete přizpůsobit. Můžete například použít dotazy Kusto a nakonfigurovat upozornění.
Dotazování dat pomocí Kusto
Následuje příklad dotazování událostí Apache Sparku:
SparkListenerEvent_CL
| where workspaceName_s == "{SynapseWorkspace}" and clusterName_s == "{SparkPool}" and livyId_s == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Tady je příklad dotazování na protokoly ovladače aplikace Apache Spark a exekutorů:
SparkLoggingEvent_CL
| where workspaceName_s == "{SynapseWorkspace}" and clusterName_s == "{SparkPool}" and livyId_s == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Tady je příklad dotazování metrik Apache Sparku:
SparkMetrics_CL
| where workspaceName_s == "{SynapseWorkspace}" and clusterName_s == "{SparkPool}" and livyId_s == "{LivyId}"
| where name_s endswith "jvm.total.used"
| summarize max(value_d) by bin(TimeGenerated, 30s), executorId_s
| order by TimeGenerated asc
Vytváření a správa upozornění
Uživatelé se můžou dotazovat na vyhodnocení metrik a protokolů s nastavenou frekvencí a aktivovat výstrahu na základě výsledků. Další informace najdete v tématu Vytvoření, zobrazení a správa upozornění protokolu pomocí služby Azure Monitor.
Pracovní prostor Synapse s povolenou ochranou před exfiltrací dat
Po vytvoření pracovního prostoru Synapse s povolenou ochranou před exfiltrací dat
Pokud chcete tuto funkci povolit, musíte ve schválených tenantech Microsoft Entra pracovního prostoru vytvořit žádosti o připojení spravovaného privátního koncového bodu k oborům privátního propojení služby Azure Monitor (AMPLS ).
Pomocí následujících kroků můžete vytvořit spravované připojení privátního koncového bodu k oborům privátního propojení služby Azure Monitor (AMPLS):
- Pokud žádné existující seznamy AMPLS neexistují, můžete ho vytvořit pomocí nastavení připojení Služby Private Link služby Azure Monitor.
- Na webu Azure Portal přejděte na stránku Prostředky služby Azure Monitor a vyberte Přidat a přidejte připojení k pracovnímu prostoru služby Azure Log Analytics.
- Přejděte na Synapse Studio > Spravovat > spravované privátní koncové body, vyberte tlačítko Nový , vyberte Obory služby Private Link služby Azure Monitor a pokračujte.
- Zvolte obor služby Azure Monitor Private Link, který jste vytvořili, a vyberte tlačítko Vytvořit .
- Počkejte několik minut na zřizování privátního koncového bodu.
- Na webu Azure Portal znovu přejděte na adresu AMPLS, na stránce připojení privátního koncového bodu vyberte zřízené připojení a schvalte ho.
Poznámka:
- Objekt AMPLS má řadu omezení, která byste měli zvážit při plánování nastavení služby Private Link. Podrobnější přehled těchto limitů najdete v omezeních amplů.
- Zkontrolujte, jestli máte správná oprávnění k vytvoření spravovaného privátního koncového bodu.