Sdílet prostřednictvím


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ů:

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:

  1. Vytvořte trezor klíčů na webu Azure Portal a přejděte do trezoru klíčů.

  2. Na stránce nastavení trezoru klíčů vyberte Tajné kódy.

  3. Vyberte Generovat/importovat.

  4. 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.
  5. 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 je SparkLogAnalyticsSecret.
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:

  1. Postupujte podle všech kroků v předchozí části " Možnost 2".

  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.

  3. 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.

  1. Vyberte Spravovat>konfigurace Apache Sparku.

  2. Výběrem tlačítka Nový vytvořte novou konfiguraci Apache Sparku.

  3. Po výběru tlačítka Nový se otevře stránka konfigurace Apache Sparku.

    Snímek obrazovky, který vytvoří konfiguraci Sparku

  4. Jako název můžete zadat preferovaný a platný název.

  5. Do popisu můžete zadat nějaký popis.

  6. 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 .

  7. 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.

    Snímek obrazovky s příkladem aktualizace vlastností konfigurace

Odeslání aplikace Apache Spark a zobrazení protokolů a metrik

Postupujte následovně:

  1. 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.
  2. 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ů

  1. Stáhněte si sešit.

  2. Otevřete a zkopírujte obsah souboru sešitu.

  3. Na webu Azure Portal vyberte Sešity pracovního prostoru>služby Log Analytics.

  4. Otevřete prázdný sešit. Pomocí režimu Rozšířený editor vyberte <ikonu />.

  5. Vložte veškerý kód JSON, který existuje.

  6. Vyberte Použít a pak vyberte Hotovo úpravy.

    Snímek obrazovky znázorňující nový sešit

    Snímek obrazovky znázorňující, jak importovat sešit

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.

Snímek obrazovky znázorňující sešit

Sešit můžete přizpůsobit. Můžete například použít dotazy Kusto a nakonfigurovat upozornění.

Snímek obrazovky znázorňující přizpůsobení sešitu pomocí dotazu a 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):

  1. Pokud žádné existující seznamy AMPLS neexistují, můžete ho vytvořit pomocí nastavení připojení Služby Private Link služby Azure Monitor.
  2. 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.
  3. 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.

    Snímek obrazovky s vytvořením privátního koncového bodu spravovaného ampls 1

  4. Zvolte obor služby Azure Monitor Private Link, který jste vytvořili, a vyberte tlačítko Vytvořit .

    Snímek obrazovky s vytvořením privátního koncového bodu spravovaného ampls 2

  5. Počkejte několik minut na zřizování privátního koncového bodu.
  6. 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: