Apache Spark-toepassingen bewaken met Azure Log Analytics
In deze zelfstudie leert u hoe u de Synapse Studio-connector inschakelt die is ingebouwd in Log Analytics. Vervolgens kunt u metrische gegevens en logboeken van de Apache Spark-toepassing verzamelen en verzenden naar uw Log Analytics-werkruimte. Ten slotte kunt u een Azure Monitor-werkmap gebruiken om de metrische gegevens en logboeken te visualiseren.
Werkruimtegegevens configureren
Volg deze stappen om de benodigde informatie in Synapse Studio te configureren.
Stap 1: Een Log Analytics-werkruimte maken
Raadpleeg een van de volgende resources om deze werkruimte te maken:
- Maak een werkruimte in Azure Portal.
- Maak een werkruimte met Azure CLI.
- Maak en configureer een werkruimte in Azure Monitor met behulp van PowerShell.
Stap 2: configuratiegegevens verzamelen
Gebruik een van de volgende opties om de configuratie voor te bereiden.
Optie 1: Configureren met Log Analytics-werkruimte-id en -sleutel
Verzamel de volgende waarden voor de Spark-configuratie:
<LOG_ANALYTICS_WORKSPACE_ID>
: Log Analytics-werkruimte-id.<LOG_ANALYTICS_WORKSPACE_KEY>
: Log Analytics-sleutel. Als u dit wilt vinden, gaat u in Azure Portal naar de primaire sleutel van azure Log Analytics-werkruimteagents>>.
spark.synapse.logAnalytics.enabled true
spark.synapse.logAnalytics.workspaceId <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.logAnalytics.secret <LOG_ANALYTICS_WORKSPACE_KEY>
Optie 2: Configureren met Azure Key Vault
Notitie
U moet leesgeheimmachtigingen verlenen aan de gebruikers die Apache Spark-toepassingen verzenden. Zie Toegang bieden tot Key Vault-sleutels, -certificaten en -geheimen met een op rollen gebaseerd toegangsbeheer van Azure voor meer informatie. Wanneer u deze functie inschakelt in een Synapse-pijplijn, moet u optie 3 gebruiken. Dit is nodig om het geheim van Azure Key Vault te verkrijgen met een door de werkruimte beheerde identiteit.
Voer de volgende stappen uit om Azure Key Vault te configureren voor het opslaan van de werkruimtesleutel:
Maak en ga naar uw sleutelkluis in Azure Portal.
Selecteer Geheimen op de instellingenpagina voor de sleutelkluis.
Selecteer Genereren/Importeren.
Kies in het scherm Een geheim maken de volgende waarden:
- Naam: Voer de naam in het voor het geheim. Voer voor de standaardwaarde het volgende in
SparkLogAnalyticsSecret
. - Waarde: Voer het
<LOG_ANALYTICS_WORKSPACE_KEY>
voor het geheim in. - Houd voor de overige waarden de standaardwaarden aan. Selecteer vervolgens Maken.
- Naam: Voer de naam in het voor het geheim. Voer voor de standaardwaarde het volgende in
Verzamel de volgende waarden voor de Spark-configuratie:
<LOG_ANALYTICS_WORKSPACE_ID>
: de Log Analytics-werkruimte-id.<AZURE_KEY_VAULT_NAME>
: de naam van de sleutelkluis die u hebt geconfigureerd.<AZURE_KEY_VAULT_SECRET_KEY_NAME>
(optioneel): De geheime naam in de sleutelkluis voor de werkruimtesleutel. De standaardwaarde isSparkLogAnalyticsSecret
.
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>
Notitie
U kunt de werkruimte-id ook opslaan in Key Vault. Raadpleeg de voorgaande stappen en sla de werkruimte-id op met de geheime naam SparkLogAnalyticsWorkspaceId
. U kunt ook de configuratie spark.synapse.logAnalytics.keyVault.key.workspaceId
gebruiken om de geheime naam van de werkruimte-id op te geven in Key Vault.
Optie 3. Configureren met een gekoppelde service
Notitie
In deze optie moet u leesgeheimmachtigingen verlenen voor de beheerde identiteit van de werkruimte. Zie Toegang bieden tot Key Vault-sleutels, -certificaten en -geheimen met een op rollen gebaseerd toegangsbeheer van Azure voor meer informatie.
Voer de volgende stappen uit om een gekoppelde Key Vault-service in Synapse Studio te configureren voor het opslaan van de werkruimtesleutel:
Volg alle stappen in de vorige sectie, 'Optie 2'.
Een gekoppelde Key Vault-service maken in Synapse Studio:
a. Ga naar Synapse Studio>Gekoppelde services beheren>en selecteer Vervolgens Nieuw.
b. Zoek in het zoekvak naar Azure Key Vault.
c. Voer een naam in voor de gekoppelde service.
d. Kies uw sleutelkluis en selecteer Maken.
Voeg een
spark.synapse.logAnalytics.keyVault.linkedServiceName
item toe aan de Apache Spark-configuratie.
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>
Zie Beschikbare Apache Spark-configuraties voor een lijst met Apache Spark-configuraties
Stap 3: Een Apache Spark-configuratie maken
U kunt een Apache Spark-configuratie maken voor uw werkruimte. Wanneer u Notebook of Apache Spark-taakdefinitie maakt, kunt u de Apache Spark-configuratie selecteren die u wilt gebruiken met uw Apache Spark-pool. Wanneer u deze selecteert, worden de details van de configuratie weergegeven.
Selecteer Apache Spark-configuraties beheren>.
Selecteer de knop Nieuw om een nieuwe Apache Spark-configuratie te maken.
De pagina Nieuwe Apache Spark-configuratie wordt geopend nadat u de knop Nieuw hebt geselecteerd.
Voor Naam kunt u de gewenste en geldige naam invoeren.
Voor Beschrijving kunt u hierin een beschrijving invoeren.
Voor aantekeningen kunt u aantekeningen toevoegen door op de knop Nieuw te klikken en ook bestaande aantekeningen te verwijderen door de knop Verwijderen te selecteren en op De knop Verwijderen te klikken.
Voor configuratie-eigenschappen voegt u alle eigenschappen toe van de configuratieoptie die u hebt gekozen door de knop Toevoegen te selecteren. Voeg voor Eigenschap de naam van de eigenschap toe zoals vermeld en gebruik voor Waarde de waarde die u tijdens stap 2 hebt verzameld. Als u geen eigenschap toevoegt, gebruikt Azure Synapse indien van toepassing de standaardwaarde.
Een Apache Spark-toepassing verzenden en de logboeken en metrische gegevens weergeven
U doet dit als volgt:
Dien een Apache Spark-toepassing in bij de Apache Spark-pool die in de vorige stap is geconfigureerd. U kunt dit op een van de volgende manieren doen:
- Voer een notebook uit in Synapse Studio.
- Dien in Synapse Studio een Apache Spark-batchtaak in via een Apache Spark-taakdefinitie.
- Voer een pijplijn uit die Apache Spark-activiteit bevat.
Ga naar de opgegeven Log Analytics-werkruimte en bekijk vervolgens de metrische gegevens en logboeken van de toepassing wanneer de Apache Spark-toepassing wordt uitgevoerd.
Aangepaste toepassingslogboeken schrijven
U kunt de Apache Log4j-bibliotheek gebruiken om aangepaste logboeken te schrijven.
Voorbeeld voor 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()
Voorbeeld voor 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")
De voorbeeldwerkmap gebruiken om de metrische gegevens en logboeken te visualiseren
De inhoud van het werkmapbestand openen en kopiëren.
Selecteer In De Azure-portal Log Analytics-werkruimtewerkmappen>.
Open de lege werkmap. Gebruik de Geavanceerde editor-modus door het </>-pictogram te selecteren.
Plak de JSON-code die bestaat.
Selecteer Toepassen en selecteer Vervolgens Klaar met bewerken.
Verzend vervolgens uw Apache Spark-toepassing naar de geconfigureerde Apache Spark-pool. Nadat de toepassing de status Actief heeft, kiest u de actieve toepassing in de vervolgkeuzelijst van de werkmap.
U kunt de werkmap aanpassen. U kunt bijvoorbeeld Kusto-query's gebruiken en waarschuwingen configureren.
Query's uitvoeren op gegevens met Kusto
Hier volgt een voorbeeld van het uitvoeren van query's op Apache Spark-gebeurtenissen:
SparkListenerEvent_CL
| where workspaceName_s == "{SynapseWorkspace}" and clusterName_s == "{SparkPool}" and livyId_s == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Hier volgt een voorbeeld van het uitvoeren van query's op het apache Spark-toepassingsstuurprogramma en uitvoerderslogboeken:
SparkLoggingEvent_CL
| where workspaceName_s == "{SynapseWorkspace}" and clusterName_s == "{SparkPool}" and livyId_s == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Hier volgt een voorbeeld van het uitvoeren van query's op metrische Apache Spark-gegevens:
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
Waarschuwingen maken en beheren
Gebruikers kunnen query's uitvoeren om metrische gegevens en logboeken te evalueren op basis van een ingestelde frequentie en een waarschuwing activeren op basis van de resultaten. Zie Logboekwaarschuwingen maken, weergeven en beheren met behulp van Azure Monitor voor meer informatie.
Synapse-werkruimte waarvoor beveiliging tegen gegevensexfiltratie is ingeschakeld
Nadat de Synapse-werkruimte is gemaakt met gegevensexfiltratiebeveiliging ingeschakeld.
Wanneer u deze functie wilt inschakelen, moet u verbindingsaanvragen voor beheerde privé-eindpunten maken voor Azure Monitor Private Link-bereiken (AMPLS) in de goedgekeurde Microsoft Entra-tenants van de werkruimte.
U kunt de onderstaande stappen volgen om een beheerde privé-eindpuntverbinding te maken met Azure Monitor Private Link-bereiken (AMPLS):
- Als er geen bestaande AMPLS is, kunt u de azure Monitor Private Link-verbinding instellen om er een te maken.
- Navigeer naar uw AMPLS in Azure Portal, op de pagina Azure Monitor-resources , en selecteer Toevoegen om verbinding met uw Azure Log Analytics-werkruimte toe te voegen.
- Navigeer naar Synapse Studio > Beheerde privé-eindpunten beheren>, selecteer de knop Nieuw, selecteer Azure Monitor Private Link-bereiken en ga door.
- Kies uw Azure Monitor Private Link-bereik dat u hebt gemaakt en selecteer de knop Maken .
- Wacht enkele minuten tot het inrichten van privé-eindpunten is uitgevoerd.
- Ga opnieuw naar uw AMPLS in Azure Portal en selecteer op de pagina Privé-eindpuntverbindingen de verbinding die is ingericht en goedkeuren.
Notitie
- Het AMPLS-object heeft een aantal limieten die u moet overwegen bij het plannen van uw Private Link-installatie. Zie AMPLS-limieten voor een diepere beoordeling van deze limieten.
- Controleer of u over de juiste machtigingen beschikt om een beheerd privé-eindpunt te maken.