Använda selektiv loggning med en skriptåtgärd för Azure Monitor Agent (AMA) i Azure HDInsight
Azure Monitor-loggar är en Azure Monitor-tjänst som övervakar dina molnmiljöer och lokala miljöer. Övervakningen hjälper till att upprätthålla deras tillgänglighet och prestanda.
Azure Monitor-loggar samlar in data som genereras av resurser i molnet, resurser i lokala miljöer och andra övervakningsverktyg. Den använder data för att tillhandahålla analys över flera källor. För att få analysen aktiverar du funktionen selektiv loggning med hjälp av en skriptåtgärd för HDInsight i Azure Portal.
Om selektiv loggning
Selektiv loggning är en del av det övergripande övervakningssystemet i Azure. När du har anslutit klustret till en Log Analytics-arbetsyta och aktiverat selektiv loggning kan du se loggar och mått som HDInsight-säkerhetsloggar, Yarn Resource Manager och systemmått. Du kan övervaka arbetsbelastningar och se hur de påverkar klusterstabiliteten.
Med selektiv loggning kan du aktivera eller inaktivera alla tabeller, eller aktivera valda tabeller, på Log Analytics-arbetsytan. Du kan justera källtypen för varje tabell.
Kommentar
Om Log Analytics installeras om i ett kluster måste du inaktivera alla tabeller och loggtyper igen. Ominstallationen återställer alla konfigurationsfiler till sitt ursprungliga tillstånd.
Överväganden för skriptåtgärder
- Övervakningssystemet använder Metadata Server Daemon (en övervakningsagent) och Fluentd för att samla in loggar med hjälp av ett enhetligt loggningslager.
- Selektiv loggning använder en skriptåtgärd för att inaktivera eller aktivera tabeller och deras loggtyper. Eftersom selektiv loggning inte öppnar några nya portar eller ändrar befintliga säkerhetsinställningar finns det inga säkerhetsändringar.
- Skriptåtgärden körs parallellt på alla angivna noder och ändrar konfigurationsfilerna för att inaktivera eller aktivera tabeller och deras loggtyper.
Förutsättningar
- En Log Analytics-arbetsyta. Du kan se den här arbetsytan som en unik Azure Monitor-loggmiljö med en egen datalagringsplats, datakällor och lösningar. Anvisningar finns i Skapa en Log Analytics-arbetsyta.
- Ett Azure HDInsight-kluster. För närvarande kan du använda funktionen selektiv loggning med följande HDInsight-klustertyper:
- Hadoop
- HBase
- Interaktiv fråga
- Spark
Anvisningar om hur du skapar ett HDInsight-kluster finns i Kom igång med Azure HDInsight.
Aktivera eller inaktivera loggar med hjälp av en skriptåtgärd för flera tabeller och loggtyper
Gå till Skriptåtgärder i klustret och välj Skicka nytt för att starta processen med att skapa en skriptåtgärd.
Åtgärdsfönstret Skicka skript visas.
Som skripttyp väljer du Anpassad.
Namnge skriptet. Till exempel: Inaktivera två tabeller och två källor.
Bash-skript-URI:n måste vara en länk till selectiveLoggingScript.sh.
Välj alla nodtyper som gäller för klustret. Alternativen är huvudnod, arbetsnod och ZooKeeper-nod.
Definiera parametrarna. Till exempel:
- Gnista:
spark HDInsightSparkLogs:SparkExecutorLog --disable
- Interaktiv fråga:
interactivehive HDInsightHadoopAndYarnLogs:NodeManager --enable
- Hadoop:
hadoop HDInsightHiveAndLLAPLogs:HiveServer2Log --disable
- HBase:
hbase HDInsightHBaseLogs:HBaseRegionServerLog --enable
Mer information finns i avsnittet Parametersyntax .
- Gnista:
Välj Skapa.
Efter några minuter visas en grön bock bredvid skriptåtgärdshistoriken. Det innebär att skriptet har körts.
Du ser dina ändringar på Log Analytics-arbetsytan.
Felsökning
Inga ändringar visas på Log Analytics-arbetsytan
Om du skickar skriptåtgärden men det inte finns några ändringar på Log Analytics-arbetsytan:
Under Instrumentpaneler väljer du Ambari home för att kontrollera felsökningsinformationen.
Välj knappen Inställningar.
Välj den senaste skriptkörningen överst i listan över bakgrundsåtgärder.
Kontrollera skriptkörningsstatusen i alla noder individuellt.
Kontrollera att parametersyntaxen från avsnittet parametersyntax är korrekt.
Kontrollera att Log Analytics-arbetsytan är ansluten till klustret och att Log Analytics-övervakning är aktiverat.
Kontrollera att du har valt åtgärden Spara det här skriptet för att köra igen när nya noder läggs till i kluster-kryssrutan för den skriptåtgärd som du körde.
Se om en ny nod har lagts till i klustret nyligen.
Kommentar
Skriptet måste finnas kvar för att skriptet ska kunna köras i det senaste klustret.
Kontrollera att du har valt alla nodtyper som du ville använda för skriptåtgärden.
Skriptåtgärden misslyckades
Om skriptåtgärden visar felstatus i skriptets åtgärdshistorik:
- Kontrollera att parametersyntaxen från avsnittet parametersyntax är korrekt.
- Kontrollera att skriptlänken är korrekt. Det bör vara:
https://hdiconfigactions.blob.core.windows.net/log-analytics-patch/selectiveLoggingScriptsAma/selectiveLoggingScript.sh
.
Tabellnamn
En fullständig lista över tabellnamn för olika loggtyper (källor) finns i Tabeller för Azure Monitor-loggar.
Parametersyntax
Parametrar definierar klustertyp, tabellnamn, källnamn och åtgärd.
En parameter innehåller tre delar:
- Klustertyp
- Tabeller och loggtyper
- Åtgärd (antingen
--disable
eller--enable
)
Syntax för flera tabeller
När du har flera tabeller avgränsas de med kommatecken. Till exempel:
spark HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --disable
hbase HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --enable
Syntax för flera källtyper eller loggtyper
När du har flera källtyper eller loggtyper separeras de med ett blanksteg.
Om du vill inaktivera en källa skriver du tabellnamnet som innehåller loggtyperna, följt av ett kolon och sedan namnet på den riktiga loggtypen:
TableName : LogTypeName
Anta till exempel att det spark HDInsightSecurityLogs
är en tabell som har två loggtyper: AmbariAuditLog
och AuthLog
. Om du vill inaktivera båda loggtyperna skulle rätt syntax vara:
spark HDInsightSecurityLogs: AmbariAuditLog AuthLog --disable
Syntax för flera tabeller och källtyper
Om du behöver inaktivera två tabeller och två källtyper använder du följande syntax:
- Spark:
InteractiveHiveMetastoreLog
loggtyp iHDInsightHiveAndLLAPLogs
tabellen - Hbase:
InteractiveHiveHSILog
loggtyp iHDInsightHiveAndLLAPLogs
tabellen - Hadoop:
HDInsightHiveAndLLAPMetrics
table - Hadoop:
HDInsightHiveTezAppStats
table
Avgränsa tabellerna med kommatecken. Ange källor med hjälp av ett kolon efter tabellnamnet där de finns.
Rätt parametersyntax för dessa fall är:
interactivehive HDInsightHiveAndLLAPLogs: InteractiveHiveMetastoreLog, HDInsightHiveAndLLAPMetrics, HDInsightHiveTezAppStats, HDInsightHiveAndLLAPLogs: InteractiveHiveHSILog --enable