Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Z tego samouczka dowiesz się, jak włączyć łącznik programu Synapse Studio wbudowany w usługę Log Analytics. Następnie możesz zbierać i wysyłać metryki i dzienniki aplikacji platformy Apache Spark do obszaru roboczego usługi Log Analytics. Na koniec możesz użyć skoroszytu usługi Azure Monitor do wizualizacji metryk i dzienników.
Konfigurowanie informacji o obszarze roboczym
Wykonaj następujące kroki, aby skonfigurować niezbędne informacje w programie Synapse Studio.
Krok 1. Tworzenie obszaru roboczego usługi Log Analytics
Zapoznaj się z jednym z następujących zasobów, aby utworzyć ten obszar roboczy:
- Utwórz obszar roboczy w witrynie Azure Portal.
- Tworzenie obszaru roboczego przy użyciu interfejsu wiersza polecenia platformy Azure.
- Tworzenie i konfigurowanie obszaru roboczego w usłudze Azure Monitor przy użyciu programu PowerShell.
Krok 2. Zbieranie informacji o konfiguracji
Użyj dowolnej z poniższych opcji, aby przygotować konfigurację.
Opcja 1. Konfigurowanie przy użyciu identyfikatora i klucza obszaru roboczego usługi Log Analytics
Zbierz następujące wartości dla konfiguracji platformy Spark:
-
<LOG_ANALYTICS_WORKSPACE_ID>
: identyfikator obszaru roboczego usługi Log Analytics. -
<LOG_ANALYTICS_WORKSPACE_KEY>
: klucz usługi Log Analytics. Aby to znaleźć, w witrynie Azure Portal przejdź do obszaru roboczego Azure Log Analytics>Agenci>Klucz podstawowy.
spark.synapse.logAnalytics.enabled true
spark.synapse.logAnalytics.workspaceId <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.logAnalytics.secret <LOG_ANALYTICS_WORKSPACE_KEY>
Alternatywnie użyj następujących właściwości:
spark.synapse.diagnostic.emitters: LA
spark.synapse.diagnostic.emitter.LA.type: "AzureLogAnalytics"
spark.synapse.diagnostic.emitter.LA.categories: "Log,EventLog,Metrics"
spark.synapse.diagnostic.emitter.LA.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.diagnostic.emitter.LA.secret: <LOG_ANALYTICS_WORKSPACE_KEY>
Opcja 2. Konfigurowanie przy użyciu usługi Azure Key Vault
Uwaga
Musisz udzielić użytkownikom, którzy przesyłają aplikacje Apache Spark, uprawnień do odczytu tajnych danych. Aby uzyskać więcej informacji, zobacz Zapewnianie dostępu do kluczy, certyfikatów i wpisów tajnych usługi Key Vault za pomocą kontroli dostępu opartej na rolach platformy Azure. Po włączeniu tej funkcji w potoku Synapse należy użyć Opcji 3. Jest to konieczne, aby uzyskać tajemnicę z usługi Azure Key Vault z tożsamością zarządzaną przez obszar roboczy.
Aby skonfigurować usługę Azure Key Vault do przechowywania klucza obszaru roboczego, wykonaj następujące kroki:
Utwórz Key Vault i przejdź do swojego Key Vault w portalu Azure.
Udziel odpowiednich uprawnień użytkownikom lub tożsamościom zarządzanym obszarów roboczych.
Na stronie ustawień magazynu kluczy wybierz pozycję Sekrety.
Wybierz Generuj/Import.
Na ekranie Tworzenie wpisu tajnego wybierz następujące wartości:
-
Nazwa: Wprowadź nazwę tajemnicy. Wprowadź
SparkLogAnalyticsSecret
dla domyślnej wartości. -
Wartość: wprowadź
<LOG_ANALYTICS_WORKSPACE_KEY>
dla tajemnicy. - Dla pozostałych opcji zostaw wartości domyślne. Następnie wybierz Utwórz.
-
Nazwa: Wprowadź nazwę tajemnicy. Wprowadź
Zbierz następujące wartości dla konfiguracji platformy Spark:
-
<LOG_ANALYTICS_WORKSPACE_ID>
: identyfikator obszaru roboczego usługi Log Analytics. -
<AZURE_KEY_VAULT_NAME>
: nazwa magazynu kluczy, którą skonfigurowałeś. -
<AZURE_KEY_VAULT_SECRET_KEY_NAME>
(opcjonalnie): tajna nazwa w skrytce kluczy dla klucza przestrzeni roboczej. Wartość domyślna toSparkLogAnalyticsSecret
.
-
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>
Alternatywnie użyj następujących właściwości:
spark.synapse.diagnostic.emitters LA
spark.synapse.diagnostic.emitter.LA.type: "AzureLogAnalytics"
spark.synapse.diagnostic.emitter.LA.categories: "Log,EventLog,Metrics"
spark.synapse.diagnostic.emitter.LA.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.diagnostic.emitter.LA.secret.keyVault: <AZURE_KEY_VAULT_NAME>
spark.synapse.diagnostic.emitter.LA.secret.keyVault.secretName: <AZURE_KEY_VAULT_SECRET_KEY_NAME>
Uwaga
Identyfikator obszaru roboczego można również przechowywać w usłudze Key Vault. Nawiąż do poprzednich kroków i zapisz identyfikator obszaru roboczego przy użyciu tajnej nazwy SparkLogAnalyticsWorkspaceId
. Alternatywnie możesz użyć konfiguracji spark.synapse.logAnalytics.keyVault.key.workspaceId
aby określić tajną nazwę identyfikatora obszaru roboczego w usłudze Key Vault.
Sposób 3. Konfigurowanie za pomocą połączonej usługi
Uwaga
W tej opcji należy nadać uprawnienia do odczytu sekretu tożsamości zarządzanej obszaru roboczego. Aby uzyskać więcej informacji, zobacz Zapewnianie dostępu do kluczy, certyfikatów i wpisów tajnych usługi Key Vault za pomocą kontroli dostępu opartej na rolach platformy Azure.
Aby skonfigurować połączoną usługę Key Vault w programie Synapse Studio do przechowywania klucza obszaru roboczego, wykonaj następujące kroki:
Wykonaj wszystkie kroki opisane w poprzedniej sekcji "Opcja 2".
Utwórz połączoną usługę Key Vault w programie Synapse Studio:
a. Przejdź do Synapse Studio>Zarządzanie>Połączone usługi, a następnie wybierz Nowy.
b. W polu wyszukiwania wyszukaj usługę Azure Key Vault.
c. Wprowadź nazwę połączonej usługi.
d. Wybierz magazyn kluczy, a następnie wybierz opcję Utwórz.
spark.synapse.logAnalytics.keyVault.linkedServiceName
Dodaj element do konfiguracji platformy Apache Spark.
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>
spark.synapse.logAnalytics.keyVault.linkedServiceName <LINKED_SERVICE_NAME>
Alternatywnie użyj następujących właściwości:
spark.synapse.diagnostic.emitters LA
spark.synapse.diagnostic.emitter.LA.type: "AzureLogAnalytics"
spark.synapse.diagnostic.emitter.LA.categories: "Log,EventLog,Metrics"
spark.synapse.diagnostic.emitter.LA.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.diagnostic.emitter.LA.secret.keyVault: <AZURE_KEY_VAULT_NAME>
spark.synapse.diagnostic.emitter.LA.secret.keyVault.secretName: <AZURE_KEY_VAULT_SECRET_KEY_NAME>
spark.synapse.diagnostic.emitter.LA.secret.keyVault.linkedService: <AZURE_KEY_VAULT_LINKED_SERVICE>
Aby uzyskać listę konfiguracji platformy Apache Spark, zobacz Dostępne konfiguracje platformy Apache Spark
Krok 3. Tworzenie konfiguracji platformy Apache Spark
Możesz utworzyć konfigurację Apache Spark w obszarze roboczym, a podczas tworzenia definicji notatnika lub zadania Apache Spark możesz wybrać konfigurację Apache Spark, której chcesz użyć z pulą Apache Spark. Po jej wybraniu zostaną wyświetlone szczegóły konfiguracji.
Wybierz Zarządzaj>konfiguracjami Apache Spark.
Wybierz przycisk Nowy , aby utworzyć nową konfigurację platformy Apache Spark.
Nowa strona konfiguracji platformy Apache Spark zostanie otwarta po wybraniu przycisku Nowy .
W polu Nazwa możesz wprowadzić preferowaną i prawidłową nazwę.
W polu Opis możesz wprowadzić w nim opis.
W obszarze Adnotacje można dodawać adnotacje, klikając przycisk Nowy , a także usunąć istniejące adnotacje, wybierając i klikając przycisk Usuń .
W obszarze Właściwości konfiguracji dodaj wszystkie właściwości z wybranej opcji konfiguracji, wybierając przycisk Dodaj . W polu Właściwość dodaj nazwę właściwości na liście, a w polu Wartość użyj wartości zebranej w kroku 2. Jeśli nie dodasz właściwości, usługa Azure Synapse będzie używać wartości domyślnej, jeśli ma to zastosowanie.
Przesyłanie aplikacji platformy Apache Spark i wyświetlanie dzienników i metryk
Oto, jak to zrobić:
Prześlij aplikację platformy Apache Spark do puli platformy Apache Spark skonfigurowanej w poprzednim kroku. Aby to zrobić, możesz użyć dowolnego z następujących sposobów:
- Uruchom notatnik w programie Synapse Studio.
- W programie Synapse Studio prześlij zadanie wsadowe platformy Apache Spark za pomocą definicji zadania platformy Apache Spark.
- Uruchom potok zawierający aktywność platformy Apache Spark.
Przejdź do określonego obszaru roboczego usługi Log Analytics, a następnie wyświetl metryki aplikacji i dzienniki po uruchomieniu aplikacji Platformy Apache Spark.
Zapisywanie niestandardowych dzienników aplikacji
Możesz użyć biblioteki Apache Log4j do zapisywania dzienników niestandardowych.
Przykład w języku 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()
Przykład dla 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")
Użyj przykładowego skoroszytu, aby zwizualizować metryki i dzienniki
Otwórz i skopiuj zawartość pliku skoroszytu.
W witrynie Azure Portal wybierz pozycję Skoroszyty obszaru roboczego>usługi Log Analytics.
Otwórz pusty skoroszyt. Użyj trybu Edytor zaawansowany, wybierając ikonę </>.
Wklej dowolny kod JSON, który istnieje.
Wybierz pozycję Zastosuj, a następnie wybierz pozycję Zakończono edytowanie.
Następnie prześlij aplikację platformy Apache Spark do skonfigurowanej puli platformy Apache Spark. Po przejściu aplikacji do stanu uruchomienia wybierz uruchomioną aplikację na liście rozwijanej skoroszytu.
Możesz dostosować skoroszyt. Można na przykład użyć zapytań Kusto i skonfigurować alerty.
Wykonywanie zapytań dotyczących danych za pomocą usługi Kusto
Poniżej przedstawiono przykład wykonywania zapytań dotyczących zdarzeń platformy Apache Spark:
SparkListenerEvent_CL
| where workspaceName_s == "{SynapseWorkspace}" and clusterName_s == "{SparkPool}" and livyId_s == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Oto przykład wykonywania zapytań dotyczących sterownika aplikacji platformy Apache Spark i dzienników funkcji wykonawczych:
SparkLoggingEvent_CL
| where workspaceName_s == "{SynapseWorkspace}" and clusterName_s == "{SparkPool}" and livyId_s == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Oto przykład wykonywania zapytań dotyczących metryk platformy Apache Spark:
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
Tworzenie alertów i zarządzanie nimi
Użytkownicy mogą wykonywać zapytania dotyczące oceny metryk i dzienników z ustawioną częstotliwością oraz wyzwalać alert na podstawie wyników. Aby uzyskać więcej informacji, zobacz Tworzenie, wyświetlanie alertów dzienników i zarządzanie nimi przy użyciu usługi Azure Monitor.
Obszar roboczy usługi Synapse z włączoną ochroną przed eksfiltracją danych
Po utworzeniu obszaru roboczego usługi Synapse z włączoną ochroną przed eksfiltracją danych.
Jeśli chcesz włączyć tę funkcję, musisz utworzyć prośby o ustanowienie zarządzanego połączenia do prywatnego punktu końcowego w zakresach łącza prywatnego usługi Azure Monitor (AMPLS) w zatwierdzonych dzierżawach Microsoft Entra w obszarze roboczym.
Poniższe kroki można wykonać, aby utworzyć zarządzane połączenie prywatnego punktu końcowego z zakresami łącza prywatnego usługi Azure Monitor (AMPLS):
- Jeśli nie ma istniejącej usługi AMPLS, możesz skorzystać z konfiguracji połączenia Azure Monitor Private Link, aby ją utworzyć.
- Przejdź do swojego AMPLS w portalu Azure, na stronie Zasoby usługi Azure Monitor i wybierz pozycję Dodaj, aby dodać połączenie do obszaru roboczego usługi Azure Log Analytics.
- Przejdź do Synapse Studio > Zarządzanie > Zarządzanymi prywatnymi punktami końcowymi, wybierz przycisk Nowy, wybierz Zakresy łącza prywatnego usługi Azure Monitor i kontynuuj.
- Wybierz utworzony zakres usługi Azure Monitor Private Link, a następnie wybierz przycisk Utwórz .
- Poczekaj kilka minut na aprowizowanie prywatnego punktu końcowego.
- Ponownie przejdź do AMPLS w portalu Azure na stronie Połączenia prywatnego punktu końcowego, wybierz aprowizowane połączenie i zatwierdź.
Uwaga
- Obiekt AMPLS ma wiele ograniczeń, które należy wziąć pod uwagę podczas planowania konfiguracji usługi Private Link. Zobacz AMPLS limity , aby dowiedzieć się więcej na temat tych limitów.
- Sprawdź, czy masz odpowiednie uprawnienia do tworzenia zarządzanego prywatnego punktu końcowego.
Dostępne konfiguracje
Konfigurowanie | opis |
---|---|
spark.synapse.diagnostic.emitters |
Wymagane. Rozdzielane przecinkami nazwy docelowe emiterów diagnostycznych. Na przykład MyDest1,MyDest2 |
spark.synapse.diagnostic.emitter.<destination>.type |
Wymagane. Wbudowany typ destynacji. Aby włączyć miejsce docelowe usługi Azure Log Analytics, w tym polu należy uwzględnić usługę AzureLogAnalytics. |
spark.synapse.diagnostic.emitter.<destination>.categories |
Opcjonalny. Wybrane kategorie dzienników, rozdzielone przecinkami. Dostępne wartości obejmują DriverLog , , ExecutorLog EventLog , Metrics . Jeśli nie zostanie ustawiona, wartość domyślna to wszystkie kategorie. |
spark.synapse.diagnostic.emitter.<destination>.workspaceId |
Wymagane. Aby włączyć miejsce docelowe usługi Azure Log Analytics, w tym polu należy uwzględnić identyfikator workspaceId. |
spark.synapse.diagnostic.emitter.<destination>.secret |
Opcjonalny. Zawartość sekretu (klucz Log Analytics). Aby to znaleźć, w portalu Azure przejdź do obszaru roboczego usługi Azure Log Analytics, a następnie wybierz > Agenci > Klucz podstawowy. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Wymagane, jeśli .secret nie zostanie określony.
Azure Key Vault nazwa, gdzie jest przechowywana tajemnica (klucz dostępu lub SAS). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Wymagane, jeśli .secret.keyVault jest określony. Nazwa tajemnicy usługi Azure Key Vault, w której jest przechowywana. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.linkedService |
Opcjonalny. Nazwa połączonej usługi Azure Key Vault. Po włączeniu w potoku usługi Synapse konieczne jest uzyskanie tajemnicy z usługi Azure Key Vault. (Upewnij się, że tożsamość usługi zarządzanej (MSI) ma dostęp do odczytu w Azure Key Vault). |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Opcjonalny. Nazwy rejestratorów Log4j rozdzielone przecinkami pozwalają określić, które dzienniki chcesz zebrać. Na przykład SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Opcjonalny. Można określić nazwy rejestratorów log4j rozdzielane przecinkami, aby wskazać, które dzienniki mają być zbierane. Na przykład: org.apache.spark.SparkContext,org.example.Logger . |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Opcjonalny. Sufiksy nazw metryk platformy Spark rozdzielone przecinkami umożliwiają określenie metryk do zebrania. Na przykład:jvm.heap.used |