Vidarebefordra Diagnostikloggar för Azure Automation till Azure Monitor

Azure Automation kan skicka runbook-jobbstatus och jobbströmmar till din Log Analytics-arbetsyta. Den här processen omfattar inte länkning av arbetsytor och är helt oberoende och gör att du kan utföra enkla undersökningar. Jobbloggar och jobbströmmar visas i Azure-portalen eller med PowerShell för enskilda jobb. Med Azure Monitor-loggar för ditt Automation-konto kan du:

  • Få insikter om status för dina Automation-jobb.
  • Utlös ett e-postmeddelande eller en avisering baserat på din runbook-jobbstatus (till exempel misslyckad eller pausad).
  • Skriv avancerade frågor för dina jobbströmmar.
  • Korrelera jobb för olika Automation-konton.
  • Använd anpassade vyer och sökfrågor för att visualisera dina runbook-resultat, runbook-jobbstatus och andra relaterade nyckelindikatorer eller mått via en Azure-instrumentpanel.
  • Hämta granskningsloggarna relaterade till Automation-konton, runbooks och andra åtgärder för att skapa, ändra och ta bort tillgångar.

Med Hjälp av Azure Monitor-loggar kan du konsolidera loggar från olika resurser på samma arbetsyta där det kan analyseras med frågor för att snabbt hämta, konsolidera och analysera insamlade data. Du kan skapa och testa frågor med Log Analytics i Azure-portalen och sedan antingen direkt analysera data med hjälp av dessa verktyg eller spara frågor för användning med visualisering eller aviseringsregler.

Azure Monitor använder en version av Kusto-frågespråket (KQL) som används av Azure Data Explorer och som är lämplig för enkla loggfrågor. Den innehåller även avancerade funktioner som aggregeringar, kopplingar och smart analys. Du kan snabbt lära dig frågespråket med hjälp av flera lektioner.

Diagnostikinställningar för Azure Automation

Du kan vidarebefordra följande plattformsloggar och måttdata med stöd för automationsdiagnostikinställningar:

Datatyper beskrivning
Jobbloggar Status för runbook-jobbet i Automation-kontot.
Jobb Flöden Status för jobbströmmarna i runbooken som definierats i Automation-kontot.
DSCNodeStatus Status för DSC-noden.
AuditEvent Alla resursloggar som registrerar kundinteraktioner med data eller inställningarna för Azure Automation-tjänsten.
Mått Totalt antal jobb, total uppdatering, distributionsdatorkörningar, totalt antal uppdateringsdistributionskörningar.

Konfigurera diagnostikinställningar i Azure-portalen

Du kan konfigurera diagnostikinställningar i Azure-portalen från menyn för Automation-kontoresursen.

  1. I menyn Automation-konto går du till Övervakning och väljer Diagnostikinställningar.

    Screenshot showing selection of diagnostic setting option.

  2. Klicka på Lägg till diagnostikinställning.

    Screenshot showing selection of add diagnostic setting.

  3. Ange ett inställningsnamn i namnet på diagnostikinställningen om den inte redan har ett.

    Du kan också visa alla kategorier av loggar och mått.

    Screenshot showing all categories of logs and metrics.

    • Loggar och mått som ska dirigeras : För loggar väljer du en kategorigrupp eller markerar de enskilda kryssrutorna för varje kategori av data som du vill skicka till de angivna målen. Välj AllMetrics om du vill lagra mått i Azure Monitor-loggar.

    • Målinformation : Markera kryssrutan för varje mål. Enligt valet av varje ruta visas alternativen så att du kan lägga till ytterligare information.

      Screenshot showing selections in destination details section.

      • Log Analytics : Ange prenumerations-ID och arbetsytenamn. Om du inte har någon arbetsyta måste du skapa en innan du fortsätter.

      • Event Hubs: Ange följande villkor:

        • Prenumeration: Samma prenumeration som för händelsehubben.
        • Event Hub-namnrymd: Skapa händelsehubb om du inte har någon ännu.
        • Event Hub-namn (valfritt): Om du inte anger något namn skapas en händelsehubb för varje loggkategori. Om du skickar flera kategorier anger du ett namn för att begränsa antalet skapade händelsehubbar. Mer information finns i kvoter och gränser för Azure Event Hubs.
        • Event Hub-princip (valfritt): En princip definierar de behörigheter som strömningsmekanismen har. Se Event Hubs-funktionen.
      • Lagring: Välj prenumeration, lagringskonto och kvarhållningsprincip. Screenshot showing the storage account.

      • Partnerintegrering: Du måste först installera en partnerintegrering i din prenumeration. Konfigurationsalternativen varierar beroende på partner. Mer information finns i Azure Monitor-integrering.

  4. Klicka på Spara.

Efter en liten stund visas den nya inställningen i listan med inställningar för den här resursen och loggarna strömmas till de angivna destinationerna när nya händelsedata genereras. Det kan finnas en tidsskillnad på 15 minuter mellan händelsen som genereras och dess utseende på Log Analytics-arbetsytan.

Fråga loggarna

Så här frågar du de genererade loggarna:

  1. I ditt Automation-konto går du till Övervakning och väljer Loggar.

  2. Under Alla frågor väljer du Automation-jobb.

    Screenshot showing how to navigate to select Automation jobs.

  3. Välj en av de frågor som du vill köra och klicka på Kör.

  4. Om du vill köra en anpassad fråga stänger du fönstret Frågor och klistrar in din anpassade fråga i det nya frågefönstret och klickar på Kör.

    Utdata för frågan visas i fönstret Resultat .

  5. Klicka på Ny aviseringsregel för att konfigurera en Azure Monitor-avisering för den här frågan.

    Screenshot showing how to query logs.

Azure Monitor-loggposter

Azure Automation-diagnostik skapar följande typer av poster i Azure Monitor-loggar, taggade som AzureDiagnostics. Tabellerna i avsnitten nedan är exempel på poster som Azure Automation genererar och de datatyper som visas i loggsökningsresultaten.

Jobbloggar

Property beskrivning
TimeGenerated Datum och tid då runbook-jobbet körs.
RunbookName_s Namn/namn på runbooken.
Caller_s Anropare som initierade åtgärden. Möjliga värden är antingen en e-postadress eller ett system för schemalagda jobb.
Tenant_g GUID (globalt unik identifierare) som identifierar klienten för anroparen.
JobId_g GUID som identifierar runbook-jobbet.
ResultType Status för runbook-jobbet. Möjliga värden är:
- Ny
-Skapad
- Startad
- Stoppad
-Pausad
- Misslyckades
-Avslutade
Kategori Klassificering av typ av data. För Automation är värdet JobLogs.
OperationName Typ av åtgärd som utförs i Azure. För Automation är värdet Jobb.
Resurs Namnet på Automation-kontot
SourceSystem System som Azure Monitor-loggar använder för att samla in data. Värdet är alltid Azure för Azure-diagnostik.
ResultDescription Resultattillstånd för Runbook-jobb. Möjliga värden är:
-Jobbet har startats
-Jobbet misslyckades
-Jobbet slutfördes
CorrelationId Korrelations-GUID för runbook-jobbet.
ResourceId Azure Automation-kontoresurs-ID för runbooken.
SubscriptionId Azure-prenumerations-GUID för Automation-kontot.
ResourceGroup Namnet på resursgruppen för Automation-kontot.
ResourceProvider Namnet på resursprovidern. Värdet är MICROSOFT. AUTOMATION.
ResourceType Resurstyp. Värdet är AUTOMATIONACCOUNTS.

Arbetsflöden

Property beskrivning
TimeGenerated Datum och tid då runbook-jobbet kördes.
RunbookName_s Namnet på runbooken.
Caller_s Anropare som initierade åtgärden. Möjliga värden är antingen en e-postadress eller ett system för schemalagda jobb.
StreamType_s Typ av jobbström. Möjliga värden är:
- Status
- Utdata
- Varning
- Fel
- Felsökning
- Verbose
Tenant_g GUID som identifierar klientorganisationen för anroparen.
JobId_g GUID som identifierar runbook-jobbet.
ResultType Status för runbookjobbet. Möjliga värden är:
- Pågår
Kategori Klassificering av typ av data. För Automation är värdet JobStreams.
OperationName Typ av åtgärd som utförs i Azure. För Automation är värdet Jobb.
Resurs Namnet på Automation-kontot.
SourceSystem System som Azure Monitor-loggar använder för att samla in data. Värdet är alltid Azure för Azure-diagnostik.
ResultDescription Beskrivning som innehåller utdataströmmen från runbooken.
CorrelationId Korrelations-GUID för runbook-jobbet.
ResourceId Azure Automation-kontoresurs-ID för runbooken.
SubscriptionId Azure-prenumerations-GUID för Automation-kontot.
ResourceGroup Namnet på resursgruppen för Automation-kontot.
ResourceProvider Resursprovider. Värdet är MICROSOFT. AUTOMATION.
ResourceType Resurstyp. Värdet är AUTOMATIONACCOUNTS.

Granska händelser

Property beskrivning
TenantID GUID som identifierar klientorganisationen för anroparen.
TimeGenerated (UTC) Datum och tid när runbook-jobbet körs.
Kategori AuditEvent
ResourceGroup Resursgruppens namn på Automation-kontot.
Prenumerations-ID Azure-prenumerations-GUID för Automation-kontot.
ResourceProvider MICROSOFT. AUTOMATION
Resurs Namn på Automation-konto
ResourceType AUTOMATIONACCOUNTS
OperationName Möjliga värden är Uppdatera, Skapa, Ta bort.
ResultType Status för runbook-jobbet. Möjligt värde är: Slutfört.
CorrelationId Korrelations-GUID för runbook-jobbet.
ResultDescription Resultattillstånd för Runbook-jobb. Möjliga värden är Uppdatera, Skapa, Ta bort.
Tenant_g GUID som identifierar klientorganisationen för anroparen.
SourceSystem System som Azures Monitor-loggar använder för att samla in data. Värdet är alltid Azure för Azure-diagnostik.
clientInfo_IpAddress_s {skrubbad}
clientInfo_PrincipalName_s {skrubbad}
clientInfo_TenantId_g Klientorganisations-ID för klienten.
clientInfo_Issuer_s
clientInfo_ObjectId_g Objekt-ID för klienten.
clientInfo_AppId_g AppID för klienten.
clientInfo_ClientRequestId_g RequestID för klienten
targetResources_Resource_s Account, Job, Credential, Anslut ions, Variables, Runbook.
Typ AzureDiagnostics
_ResourceId Azure Automation-kontoresurs-ID för runbooken.

Visa Automation-loggar i Azure Monitor-loggar

Nu när du har börjat skicka dina Automation-jobbströmmar och loggar till Azure Monitor-loggar ska vi se vad du kan göra med loggarna i Azure Monitor-loggarna.

Om du vill se loggarna kör du följande fråga: kusto AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION"

Exempelfrågor för jobbloggar och jobbströmmar

Hitta alla jobb som har slutförts med fel

Förutom scenarier som aviseringar om fel kan du se när ett runbook-jobb har ett icke-avslutande fel. I dessa fall skapar PowerShell en felström, men de icke-avslutande felen gör inte att jobbet pausas eller misslyckas.

  1. Klicka på LoggarLog Analytics-arbetsytan.
  2. I frågefältet skriver du:
    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" | summarize AggregatedValue = count () by JobId_g. 
    
  3. Klicka på Sök.

Visa jobbströmmar för ett jobb

När du felsöker ett jobb kanske du också vill titta på jobbströmmarna. Följande fråga visar alla strömmar för ett enda jobb med GUID 2ebd22ea-e05e-4eb9-9d76-d73cbd4356e0:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and JobId_g == "2ebd22ea-e05e-4eb9-9d76-d73cbd4356e0"
| sort by TimeGenerated asc
| project ResultDescription

Visa status för historiska jobb

Slutligen kanske du vill visualisera din jobbhistorik över tid. Du kan använda den här frågan för att söka efter status för dina jobb över tid.

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and ResultType != "started"
| summarize AggregatedValue = count() by ResultType, bin(TimeGenerated, 1h)

Log Analytics Historical Job Status Chart

Hitta loggar som rapporterar fel i automationsjobben.

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" 
| where StreamType_s == "Error" 
| project TimeGenerated, Category, JobId_g, OperationName, RunbookName_s, ResultDescription, _ResourceId 

Hitta Azure Automation-jobb som har slutförts

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and ResultType == "Completed" 
| project TimeGenerated, RunbookName_s, ResultType, _ResourceId, JobId_g

Hitta Azure Automation-jobb som har misslyckats, pausats eller stoppats

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Stopped" or ResultType == "Suspended") 
| project TimeGenerated, RunbookName_s, ResultType, _ResourceId, JobId_g 

Visa en lista över alla runbooks och jobb som har slutförts med fel

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" 
| project TimeGenerated, RunbookName_s, StreamType_s, _ResourceId, ResultDescription, JobId_g 

Skicka ett e-postmeddelande när ett runbook-jobb misslyckas eller pausas

Följande steg förklarar hur du konfigurerar e-postaviseringar i Azure Monitor för att meddela när något går fel med ett runbook-jobb.

Skapa en aviseringsregel genom att skapa en loggsökning efter de runbook-jobbposter som ska anropa aviseringen enligt beskrivningen i Fråga efter loggarna. Klicka på +Ny aviseringsregel för att konfigurera aviseringsregeln.

  1. I ditt Automation-konto går du till Övervakning och väljer Loggar.

  2. Skapa en loggsökningsfråga för aviseringen genom att ange ett sökvillkor i frågefältet.

    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended")   
    

    Du kan också gruppera efter runbook-namnet med hjälp av:

    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and     Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended") | summarize AggregatedValue = count() by RunbookName_s 
    
  3. Öppna skärmen Skapa aviseringsregel genom att klicka på +Ny aviseringsregel överst på sidan. Mer information om alternativen för att konfigurera aviseringarna finns i Logga aviseringar i Azure

Diagnostikgranskningsloggar för Azure Automation

Nu kan du skicka granskningsloggar även till Azure Monitor-arbetsytan. På så sätt kan företag övervaka viktiga automationskontoaktiviteter för säkerhet och efterlevnad. När det är aktiverat via Azure Diagnostics-inställningarna kan du samla in telemetri om att skapa, uppdatera och ta bort åtgärder för Automation-runbooks, jobb och automationstillgångar som anslutning, autentiseringsuppgifter, variabel och certifikat. Du kan också konfigurera aviseringarna för granskningsloggvillkor som en del av dina krav på säkerhetsövervakning.

Skillnad mellan aktivitetsloggar och granskningsloggar

Aktivitetsloggen är en plattformsloggi Azure som ger insikter om händelser på prenumerationsnivå. Aktivitetsloggen för Automation-kontot innehåller information om när en automationsresurs ändras eller skapas eller tas bort. Den samlar dock inte in resursens namn eller ID.

Granskningsloggar för Automation-konton samlar in namnet och ID:t för resursen, till exempel automationsvariabel, autentiseringsuppgifter, anslutning och så vidare, tillsammans med typen av åtgärd som utförs för resursen och Azure Automation rensar lite information som klient-IP-data som överensstämmer med GDPR-efterlevnaden.

Aktivitetsloggar visar information som klient-IP eftersom en aktivitetslogg är en plattformslogg som innehåller detaljerad diagnostik- och granskningsinformation för Azure-resurser. De genereras automatiskt för aktiviteter som inträffar i ARM och skickas till resursprovidern för aktivitetsloggen. Eftersom aktivitetsloggar är en del av Azure-övervakningen skulle det visa vissa klientdata för att ge insikter om klientaktiviteten.  

Exempelfrågor för granskningsloggar

Fråga för att visa Automation-resursgranskningsloggar

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" 

Fråga om du vill övervaka eventuella åtgärder för att uppdatera, skapa eller ta bort variabler

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s == "Variable" 

Fråga för att övervaka alla runbook-åtgärder som att skapa, utkasta eller uppdatera

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Runbook" 

Fråga för att övervaka skapande, uppdatering eller borttagning av certifikat

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Certificate" 

Fråga för att övervaka skapande, uppdatering eller borttagning av autentiseringsuppgifter

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Credential" 

Filtrera jobbstatusutdata som konverterats till ett JSON-objekt

Nyligen ändrade vi beteendet för hur Automation-loggdata skrivs till AzureDiagnostics tabellen i Log Analytics-tjänsten, där de inte längre delar upp JSON-egenskaperna i separata fält. Om du har konfigurerat din runbook för att formatera objekt i utdataströmmen i JSON-format som separata kolumner, är det nödvändigt att konfigurera om dina frågor för att parsa fältet till ett JSON-objekt för att få åtkomst till dessa egenskaper. Detta görs med hjälp av parsa json för att komma åt ett specifikt JSON-element i en känd sökväg.

Till exempel formaterar en runbook egenskapen ResultDescription i utdataströmmen i JSON-format med flera fält. Om du vill söka efter statusen för dina jobb som är i ett feltillstånd som anges i ett fält med namnet Status använder du den här exempelfrågan för att söka i ResultDescription med statusen Failed:

AzureDiagnostics
| where Category == 'JobStreams'
| extend jsonResourceDescription = parse_json(ResultDescription)
| where jsonResourceDescription.Status == 'Failed'

Log Analytics Historical Job Stream JSON format

Nästa steg