Freigeben über


Verwenden der selektiven Protokollierung mit einer Skriptaktion für Azure Monitor Agent (AMA) in Azure HDInsight

Azure Monitor Logs ist ein Azure Monitor-Dienst, der Ihre Cloud- und lokalen Umgebungen überwacht. Die Überwachung hilft, ihre Verfügbarkeit und Leistung aufrechtzuerhalten.

Azure Monitor-Protokolle sammeln Daten, die von Ressourcen in Ihrer Cloud, Ressourcen in lokalen Umgebungen und anderen Überwachungstools generiert werden. Es verwendet die Daten, um Analysen über mehrere Quellen hinweg bereitzustellen. Um die Analyse zu erhalten, aktivieren Sie das selektive Protokollierungsfeature mithilfe einer Skriptaktion für HDInsight im Azure-Portal.

Über selektive Protokollierung

Die selektive Protokollierung ist Teil des gesamten Überwachungssystems in Azure. Nachdem Sie Ihren Cluster mit einem Log Analytics-Arbeitsbereich verbunden und die selektive Protokollierung aktiviert haben, können Sie Protokolle und Metriken wie HDInsight-Sicherheitsprotokolle, Yarn Resource Manager und Systemmetriken ansehen. Sie können Workloads überwachen und sehen, wie sie sich auf die Clusterstabilität auswirken.

Mit der selektiven Protokollierung können Sie im Log Analytics-Arbeitsbereich alle Tabellen aktivieren oder deaktivieren oder ausgewählte Tabellen aktivieren. Sie können den Quelltyp für jede Tabelle anpassen.

Hinweis

Wenn Log Analytics in einem Cluster neu installiert wird, müssen Sie alle Tabellen und Protokolltypen erneut deaktivieren. Die Neuinstallation setzt alle Konfigurationsdateien in ihren ursprünglichen Zustand zurück.

Überlegungen zu Skriptaktionen

  • Das Überwachungssystem verwendet den Metadata Server Daemon (einen Überwachungsagenten) und Fluentd zum Sammeln von Protokollen mithilfe einer einheitlichen Protokollierungsebene.
  • Die selektive Protokollierung verwendet eine Skriptaktion, um Tabellen und ihre Protokolltypen zu deaktivieren oder zu aktivieren. Da bei der selektiven Protokollierung keine neuen Ports geöffnet oder vorhandene Sicherheitseinstellungen geändert werden, gibt es keine Sicherheitsänderungen.
  • Die Skriptaktion wird parallel auf allen angegebenen Knoten ausgeführt und ändert die Konfigurationsdateien zum Deaktivieren oder Aktivieren von Tabellen und deren Protokolltypen.

Voraussetzungen

  • Einen Log Analytics-Arbeitsbereich Sie können sich diesen Arbeitsbereich als einzigartige Azure Monitor-Protokollumgebung mit eigenem Datenrepository, eigenen Datenquellen und eigenen Lösungen vorstellen. Anweisungen hierzu finden Sie unter Erste Schritte mit einem Log Analytics-Arbeitsbereich.
  • Ein Azure HDInsight-Cluster. Derzeit können Sie das selektive Protokollierungsfeature mit den folgenden HDInsight-Clustertypen verwenden:
    • Hadoop
    • hbase
    • Interactive Query
    • Spark

Anweisungen zum Erstellen von HDInsight-Clustern finden Sie unter Hadoop-Tutorial: Erste Schritte bei der Verwendung von Hadoop in HDInsight.

Protokolle mithilfe einer Skriptaktion für mehrere Tabellen und Protokolltypen aktivieren oder deaktivieren

  1. Gehen Sie in Ihrem Cluster zu Skriptaktionen und wählen Sie Neu senden aus, um mit dem Erstellen einer Skriptaktion zu beginnen.

    Screenshot der Schaltfläche zum Starten des Erstellens einer Skriptaktion

    Der Aktionsbereich Skript senden wird angezeigt.

    Screenshot des Bereichs zum Senden einer Skriptaktion

  2. Wählen Sie als Skripttyp Benutzerdefiniert aus.

  3. Nennen Sie das Skript. Beispiel: Zwei Tabellen und zwei Quellen deaktivieren.

  4. Der URI des Bash-Skripts muss ein Link zu selectedLoggingScript.sh sein.

  5. Wählen Sie alle geltenden Knotentypen aus, die für den Cluster gelten. Die Optionen sind Head-Knoten, Worker-Knoten und ZooKeeper-Knoten.

  6. Definieren Sie die Parameter. Zum Beispiel:

    • Spark: spark HDInsightSparkLogs:SparkExecutorLog --disable
    • Interaktive Abfrage: interactivehive HDInsightHadoopAndYarnLogs:NodeManager --enable
    • Hadoop:hadoop HDInsightHiveAndLLAPLogs:HiveServer2Log --disable
    • HBase: hbase HDInsightHBaseLogs:HBaseRegionServerLog --enable

    Weitere Informationen finden Sie im Abschnitt Parametersyntax.

  7. Klicken Sie auf Erstellen.

  8. Nach einigen Minuten wird neben Ihrem Skriptaktionsverlauf ein grünes Häkchen angezeigt. Dies bedeutet, dass das Skript erfolgreich ausgeführt wurde.

    Screenshot nach der erfolgreichen Ausführung eines Skripts zum Aktivieren von Tabellen und Protokolltypen

Ihre Änderungen werden im Log Analytics-Arbeitsbereich angezeigt.

Problembehandlung

Im Log Analytics-Arbeitsbereich werden keine Änderungen angezeigt

Wenn Sie Ihre Skriptaktion senden, aber keine Änderungen im Log Analytics-Arbeitsbereich vorgenommen werden:

  1. Wählen Sie unter Dashboards die Ambari-Startseite aus, um die Debug-Informationen zu überprüfen.

    Screenshot vom Speicherort des Dashboards der Ambari-Startseite

  2. Wählen Sie die Schaltfläche Einstellungen aus.

    Screenshot der Schaltfläche „Einstellungen“

  3. Wählen Sie Ihre letzte Skriptausführung oben in der Liste der Hintergrundvorgänge aus.

    Screenshot der Hintergrundvorgänge

  4. Überprüfen Sie den Status der Skriptausführung in allen Knoten einzeln.

    Screenshot des Skriptausführungsstatus für Hosts

  5. Überprüfen Sie, ob die Parametersyntax aus dem Abschnitt Parametersyntax korrekt ist.

  6. Stellen Sie sicher, dass der Log Analytics-Arbeitsbereich mit dem Cluster verbunden und die Log Analytics-Überwachung aktiviert ist.

  7. Vergewissern Sie sich, dass Sie das Kontrollkästchen Diese Skriptaktion beibehalten, um sie erneut auszuführen, wenn neue Knoten zum Cluster hinzugefügt werden für die von Ihnen ausgeführte Skriptaktion ausgewählt haben.

    Screenshot des Kontrollkästchens zum Beibehalten einer Skriptaktion

  8. Überprüfen Sie, ob dem Cluster kürzlich ein neuer Knoten hinzugefügt wurde.

    Hinweis

    Damit das Skript im neuesten Cluster ausgeführt werden kann, muss das Skript bestehen bleiben.

  9. Stellen Sie sicher, dass Sie alle gewünschten Knotentypen für die Skriptaktion ausgewählt haben.

    Screenshot der ausgewählten Knotentypen

Die Skriptaktion ist fehlgeschlagen

Wenn die Skriptaktion einen Fehlerstatus im Skriptaktionsverlauf anzeigt:

  1. Überprüfen Sie, ob die Parametersyntax aus dem Abschnitt Parametersyntax korrekt ist.
  2. Überprüfen Sie, ob der Skriptlink korrekt ist. Er sollte so aussehen: https://hdiconfigactions.blob.core.windows.net/log-analytics-patch/selectiveLoggingScriptsAma/selectiveLoggingScript.sh.

Tabellennamen

Eine vollständige Auflistung der Tabellennamen für verschiedene Protokolltypen (Quellen) finden Sie unter Azure Monitor Logs-Tabellen.

Parametersyntax

Parameter definieren den Clustertyp, die Tabellennamen, die Quellennamen und die Aktion.

Screenshot des Parametersyntaxfelds

Ein Parameter besteht aus drei Teilen:

  • Clustertyp
  • Tabellen und Protokolltypen
  • Aktion (entweder --disable oder --enable)

Syntax für mehrere Tabellen

Wenn Sie mehrere Tabellen haben, trennen Sie sie durch ein Komma. Zum Beispiel:

spark HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --disable

hbase HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --enable

Syntax für mehrere Quelltypen oder Protokolltypen

Mehrere Quelltypen oder Protokolltypen werden durch ein Leerzeichen getrennt.

Um eine Quelle zu deaktivieren, schreiben Sie den Tabellennamen, der die Protokolltypen enthält, gefolgt von einem Doppelpunkt und dann dem Namen des tatsächlichen Protokolltyps:

TableName : LogTypeName

Angenommen, das spark HDInsightSecurityLogs ist eine Tabelle mit zwei Protokolltypen: AmbariAuditLogund AuthLog. Um beide Protokolltypen zu deaktivieren verwenden Sie folgende, korrekte Syntax:

spark HDInsightSecurityLogs: AmbariAuditLog AuthLog --disable

Syntax für mehrere Tabellen und Quelltypen

Wenn Sie zwei Tabellen und zwei Quelltypen deaktivieren wollen, verwenden Sie die folgende Syntax:

  • Spark: InteractiveHiveMetastoreLog Protokolltyp in der Tabelle HDInsightHiveAndLLAPLogs
  • Hbase: InteractiveHiveHSILog Protokolltyp in der Tabelle HDInsightHiveAndLLAPLogs
  • Hadoop: Tabelle HDInsightHiveAndLLAPMetrics
  • Hadoop: Tabelle HDInsightHiveTezAppStats

Trennen Sie die Tabellen mit einem Komma. Zur Angabe von Quellen setzen Sie nach dem Namen der Tabelle, in dem sie sich befinden, einen Doppelpunkt.

Die korrekte Parametersyntax für diese Fälle wäre:

interactivehive HDInsightHiveAndLLAPLogs: InteractiveHiveMetastoreLog, HDInsightHiveAndLLAPMetrics, HDInsightHiveTezAppStats, HDInsightHiveAndLLAPLogs: InteractiveHiveHSILog --enable 

Nächste Schritte