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
Gehen Sie in Ihrem Cluster zu Skriptaktionen und wählen Sie Neu senden aus, um mit dem Erstellen einer Skriptaktion zu beginnen.
Der Aktionsbereich Skript senden wird angezeigt.
Wählen Sie als Skripttyp Benutzerdefiniert aus.
Nennen Sie das Skript. Beispiel: Zwei Tabellen und zwei Quellen deaktivieren.
Der URI des Bash-Skripts muss ein Link zu selectedLoggingScript.sh sein.
Wählen Sie alle geltenden Knotentypen aus, die für den Cluster gelten. Die Optionen sind Head-Knoten, Worker-Knoten und ZooKeeper-Knoten.
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.
- Spark:
Klicken Sie auf Erstellen.
Nach einigen Minuten wird neben Ihrem Skriptaktionsverlauf ein grünes Häkchen angezeigt. Dies bedeutet, dass das Skript erfolgreich ausgeführt wurde.
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:
Wählen Sie unter Dashboards die Ambari-Startseite aus, um die Debug-Informationen zu überprüfen.
Wählen Sie die Schaltfläche Einstellungen aus.
Wählen Sie Ihre letzte Skriptausführung oben in der Liste der Hintergrundvorgänge aus.
Überprüfen Sie den Status der Skriptausführung in allen Knoten einzeln.
Überprüfen Sie, ob die Parametersyntax aus dem Abschnitt Parametersyntax korrekt ist.
Stellen Sie sicher, dass der Log Analytics-Arbeitsbereich mit dem Cluster verbunden und die Log Analytics-Überwachung aktiviert ist.
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.
Ü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.
Stellen Sie sicher, dass Sie alle gewünschten Knotentypen für die Skriptaktion ausgewählt haben.
Die Skriptaktion ist fehlgeschlagen
Wenn die Skriptaktion einen Fehlerstatus im Skriptaktionsverlauf anzeigt:
- Überprüfen Sie, ob die Parametersyntax aus dem Abschnitt Parametersyntax korrekt ist.
- Ü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.
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: AmbariAuditLog
und 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 TabelleHDInsightHiveAndLLAPLogs
- Hbase:
InteractiveHiveHSILog
Protokolltyp in der TabelleHDInsightHiveAndLLAPLogs
- 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