Udostępnij za pośrednictwem


Przekazywanie dzienników diagnostycznych usługi Azure Automation do usługi Azure Monitor

Usługa Azure Automation może wysyłać stan zadania elementu Runbook i strumienie zadań do obszaru roboczego usługi Log Analytics. Ten proces nie obejmuje łączenia obszarów roboczych i jest całkowicie niezależny i umożliwia wykonywanie prostych badań. Dzienniki zadań i strumienie zadań są widoczne w witrynie Azure Portal lub przy użyciu programu PowerShell dla poszczególnych zadań. Dzienniki usługi Azure Monitor dla konta usługi Automation umożliwiają:

  • Uzyskaj wgląd w stan zadań usługi Automation.
  • Wyzwalanie wiadomości e-mail lub alertu na podstawie stanu zadania elementu Runbook (na przykład niepowodzenie lub wstrzymanie).
  • Pisanie zaawansowanych zapytań obejmujących wiele strumieni zadań.
  • Korelowanie zadań z wielu kont usługi Automation.
  • Użyj dostosowanych widoków i zapytań wyszukiwania, aby wizualizować wyniki elementu Runbook, stan zadania elementu Runbook i inne powiązane kluczowe wskaźniki lub metryki za pośrednictwem pulpitu nawigacyjnego platformy Azure.
  • Pobierz dzienniki inspekcji związane z kontami usługi Automation, elementami Runbook i innymi operacjami tworzenia, modyfikowania i usuwania zasobów.

Za pomocą dzienników usługi Azure Monitor można konsolidować dzienniki z różnych zasobów w tym samym obszarze roboczym, w którym można je analizować za pomocą zapytań , aby szybko pobierać, konsolidować i analizować zebrane dane. Zapytania można tworzyć i testować przy użyciu usługi Log Analytics w witrynie Azure Portal, a następnie bezpośrednio analizować dane przy użyciu tych narzędzi lub zapisywać zapytania do użycia z wizualizacjami lub regułami alertów.

Usługa Azure Monitor używa wersji języka zapytań Kusto (KQL) używanego przez usługę Azure Data Explorer, która jest odpowiednia dla prostych zapytań dzienników. Obejmuje również zaawansowane funkcje, takie jak agregacje, sprzężenia i inteligentna analiza. Język zapytań można szybko nauczyć się, korzystając z wielu lekcji.

Ustawienia diagnostyczne usługi Azure Automation

Możesz przekazywać następujące dzienniki platformy i dane metryk przy użyciu obsługi ustawień diagnostycznych usługi Automation:

Typy danych opis
Dzienniki zadań Stan zadania elementu Runbook na koncie usługi Automation.
Strumienie zadań Stan strumieni zadań w elemecie Runbook zdefiniowanym na koncie usługi Automation.
DSCNodeStatus Stan węzła DSC.
AuditEvent Wszystkie dzienniki zasobów rejestrujące interakcje klientów z danymi lub ustawieniami usługi Azure Automation.
Metryki Łączna liczba zadań, aktualizacja całkowita, przebiegi maszyny wdrożenia, łączna liczba przebiegów wdrożenia aktualizacji.

Konfigurowanie ustawień diagnostycznych w witrynie Azure Portal

Ustawienia diagnostyczne można skonfigurować w witrynie Azure Portal z menu dla zasobu konta usługi Automation.

  1. W menu Konto usługi Automation w obszarze Monitorowanie wybierz pozycję Ustawienia diagnostyczne.

    Zrzut ekranu przedstawiający wybór opcji ustawienia diagnostycznego.

  2. Kliknij pozycję Dodaj ustawienie diagnostyczne.

    Zrzut ekranu przedstawiający wybór ustawienia dodawania diagnostyki.

  3. Wprowadź nazwę ustawienia w nazwie ustawienia diagnostycznego, jeśli jeszcze go nie ma.

    Możesz również wyświetlić wszystkie kategorie dzienników i metryk.

    Zrzut ekranu przedstawiający wszystkie kategorie dzienników i metryk.

    • Dzienniki i metryki do kierowania : w przypadku dzienników wybierz grupę kategorii lub zaznacz poszczególne pola wyboru dla każdej kategorii danych, które chcesz wysłać do określonych miejsc docelowych. Wybierz pozycję Wszystkie metryki , jeśli chcesz przechowywać metryki w dziennikach usługi Azure Monitor.

    • Szczegóły miejsca docelowego: zaznacz pole wyboru dla każdego miejsca docelowego. Zgodnie z wyborem każdego pola opcje są wyświetlane, aby umożliwić dodawanie dodatkowych informacji.

      Zrzut ekranu przedstawiający opcje w sekcji szczegółów miejsca docelowego.

      • Log Analytics : wprowadź identyfikator subskrypcji i nazwę obszaru roboczego. Jeśli nie masz obszaru roboczego, musisz go utworzyć przed kontynuowaniem.

      • Event Hubs: określ następujące kryteria:

        • Subskrypcja: ta sama subskrypcja co centrum zdarzeń.
        • Przestrzeń nazw centrum zdarzeń: utwórz centrum zdarzeń, jeśli jeszcze go nie masz.
        • Nazwa centrum zdarzeń (opcjonalnie): jeśli nie określisz nazwy, dla każdej kategorii dziennika zostanie utworzone centrum zdarzeń. Jeśli wysyłasz wiele kategorii, określ nazwę, aby ograniczyć liczbę utworzonych usług Event Hubs. Aby uzyskać szczegółowe informacje, zobacz Limity przydziału i limity usługi Azure Event Hubs.
        • Zasady centrum zdarzeń (opcjonalnie): zasady definiują uprawnienia, które ma mechanizm przesyłania strumieniowego. Zobacz Funkcję usługi Event Hubs.
      • Magazyn: wybierz zasady subskrypcji, konta magazynu i przechowywania. Zrzut ekranu przedstawiający konto magazynu.

      • Integracja z partnerami: musisz najpierw zainstalować integrację partnerów z subskrypcją. Opcje konfiguracji będą się różnić w zależności od partnera. Aby uzyskać więcej informacji, zobacz Integracja z usługą Azure Monitor.

  4. Kliknij przycisk Zapisz.

Po kilku chwilach nowe ustawienie zostanie wyświetlone na liście ustawień tego zasobu, a dzienniki są przesyłane strumieniowo do określonych miejsc docelowych w miarę generowania nowych danych zdarzeń. Może istnieć 15-minutowa różnica czasu między zdarzeniem emitowanych i jego wyglądem w obszarze roboczym usługi Log Analytics.

Wykonywanie zapytań dotyczących dzienników

Aby wysłać zapytanie do wygenerowanych dzienników:

  1. Na koncie usługi Automation w obszarze Monitorowanie wybierz pozycję Dzienniki.

  2. W obszarze Wszystkie zapytania wybierz pozycję Zadania automatyzacji.

    Zrzut ekranu przedstawiający sposób przechodzenia do pozycji Zadania automatyzacji.

  3. Wybierz jedno z zapytań, które chcesz wykonać, a następnie kliknij przycisk Uruchom.

  4. Aby wykonać zapytanie niestandardowe, zamknij okno Zapytania i wklej zapytanie niestandardowe w nowym oknie zapytania, a następnie kliknij przycisk Uruchom.

    Dane wyjściowe zapytania są wyświetlane w okienku Wyniki .

  5. Kliknij pozycję Nowa reguła alertu, aby skonfigurować alert usługi Azure Monitor dla tego zapytania.

    Zrzut ekranu przedstawiający sposób wykonywania zapytań dotyczących dzienników.

Rekordy dziennika usługi Azure Monitor

Diagnostyka usługi Azure Automation tworzy następujące typy rekordów w dziennikach usługi Azure Monitor oznaczone jako AzureDiagnostics. Tabele w poniższych sekcjach to przykłady rekordów generowanych przez usługę Azure Automation i typów danych wyświetlanych w wynikach wyszukiwania dzienników.

Dzienniki zadań

Właściwości opis
TimeGenerated Data i godzina dla wykonania zadania elementu Runbook.
RunbookName_s Nazwa/nazwy elementu Runbook.
Caller_s Obiekt wywołujący, który zainicjował operację. Możliwe wartości to adres e-mail lub system w przypadku zaplanowanych zadań.
Tenant_g Identyfikator GUID (globalnie unikatowy identyfikator), który identyfikuje dzierżawę elementu wywołującego.
JobId_g Identyfikator GUID identyfikujący zadanie elementu Runbook.
ResultType Stan zadania elementu Runbook. Dopuszczalne wartości:
- Nowy
-Utworzono
— Uruchomione
— Zatrzymane
— Wstrzymane
— Nie powiodło się
-Zakończone
Kategoria Klasyfikacja typu danych. W przypadku usługi Automation wartością jest JobLogs.
OperationName Typ operacji wykonywanej na platformie Azure. W przypadku usługi Automation wartość to Zadanie.
Zasób Nazwa konta usługi Automation
SourceSystem System używany przez dzienniki usługi Azure Monitor do zbierania danych. Wartość to zawsze platforma Azure do diagnostyki platformy Azure.
ResultDescription Stan wyniku zadania elementu Runbook. Dopuszczalne wartości:
— Zadanie jest uruchomione
— Zadanie nie powiodło się
— Zadanie zostało ukończone
CorrelationId Identyfikator GUID korelacji zadania elementu Runbook.
ResourceId Identyfikator zasobu konta usługi Azure Automation elementu Runbook.
SubscriptionId Identyfikator GUID subskrypcji platformy Azure dla konta usługi Automation.
ResourceGroup Nazwa grupy zasobów dla konta usługi Automation.
ResourceProvider Nazwa dostawcy zasobów. Wartość to MICROSOFT. AUTOMATYZACJA.
ResourceType Typ zasobu. Wartość to AUTOMATIONACCOUNTS.

Strumienie zadania

Właściwości opis
TimeGenerated Data i godzina wykonania zadania elementu Runbook.
RunbookName_s Nazwa elementu Runbook.
Caller_s Obiekt wywołujący, który zainicjował operację. Możliwe wartości to adres e-mail lub system w przypadku zaplanowanych zadań.
StreamType_s Typ strumienia zadań. Dopuszczalne wartości:
— Postęp
— Dane wyjściowe
- Ostrzeżenie
— Błąd
— Debugowanie
— Pełne
Tenant_g Identyfikator GUID identyfikujący dzierżawę elementu wywołującego.
JobId_g Identyfikator GUID identyfikujący zadanie elementu Runbook.
ResultType Stan zadania elementu Runbook. Dopuszczalne wartości:
-W toku
Kategoria Klasyfikacja typu danych. W przypadku usługi Automation wartością jest JobStreams.
OperationName Typ operacji wykonywanej na platformie Azure. W przypadku usługi Automation wartość to Zadanie.
Zasób Nazwa konta usługi Automation.
SourceSystem System używany przez dzienniki usługi Azure Monitor do zbierania danych. Wartość to zawsze platforma Azure do diagnostyki platformy Azure.
ResultDescription Opis zawierający strumień wyjściowy z elementu Runbook.
CorrelationId Identyfikator GUID korelacji zadania elementu Runbook.
ResourceId Identyfikator zasobu konta usługi Azure Automation elementu Runbook.
SubscriptionId Identyfikator GUID subskrypcji platformy Azure dla konta usługi Automation.
ResourceGroup Nazwa grupy zasobów dla konta usługi Automation.
ResourceProvider Dostawca zasobów. Wartość to MICROSOFT. AUTOMATYZACJA.
ResourceType Typ zasobu. Wartość to AUTOMATIONACCOUNTS.

Uwaga

Upewnij się, że poświadczenia nie są wysyłane do strumieni zadań. Usługa usuwa poświadczenia przed wyświetleniem strumieni zadań w dziennikach diagnostycznych.

Inspekcja zdarzeń

Właściwości opis
TenantID Identyfikator GUID identyfikujący dzierżawę elementu wywołującego.
TimeGenerated [UTC] Data i godzina wykonania zadania elementu Runbook.
Kategoria AuditEvent
ResourceGroup Nazwa grupy zasobów konta usługi Automation.
Identyfikator subskrypcji Identyfikator GUID subskrypcji platformy Azure dla konta usługi Automation.
ResourceProvider MICROSOFT. AUTOMATYZACJA
Zasób Nazwa konta usługi Automation
ResourceType AUTOMATIONACCOUNTS
OperationName Możliwe wartości to Update, Create, Delete.
ResultType Stan zadania elementu Runbook. Możliwa wartość to: Ukończono.
CorrelationId Identyfikator GUID korelacji zadania elementu Runbook.
ResultDescription Stan wyniku zadania elementu Runbook. Możliwe wartości to Update, Create, Delete.
Tenant_g Identyfikator GUID identyfikujący dzierżawę elementu wywołującego.
SourceSystem System używany przez dzienniki usługi Azure Monitor do zbierania danych. Wartość to zawsze platforma Azure do diagnostyki platformy Azure.
clientInfo_IpAddress_s {szorowane}
clientInfo_PrincipalName_s {szorowane}
clientInfo_TenantId_g Identyfikator dzierżawy klienta.
clientInfo_Issuer_s
clientInfo_ObjectId_g Identyfikator obiektu klienta.
clientInfo_AppId_g AppID klienta.
clientInfo_ClientRequestId_g RequestID klienta
targetResources_Resource_s Konto, zadanie, poświadczenia, połączenia, zmienne, element Runbook.
Typ AzureDiagnostics
_ResourceId Identyfikator zasobu konta usługi Azure Automation elementu Runbook.

Wyświetlanie dzienników usługi Automation w dziennikach usługi Azure Monitor

Po rozpoczęciu wysyłania strumieni zadań i dzienników usługi Automation do dzienników usługi Azure Monitor zobaczmy, co można zrobić z tymi dziennikami w dziennikach usługi Azure Monitor.

Aby wyświetlić dzienniki, uruchom następujące zapytanie: kusto AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION"

Przykładowe zapytania dotyczące dzienników zadań i strumieni zadań

Znajdź wszystkie zadania, które zostały ukończone z błędem

Oprócz scenariuszy, takich jak alerty dotyczące błędów, można znaleźć, gdy zadanie elementu Runbook ma błąd niepowodujący zakończenia. W takich przypadkach program PowerShell generuje strumień błędów, ale błędy niepowodujące zakończenia nie powodują wstrzymania lub niepowodzenia zadania.

  1. W obszarze roboczym usługi Log Analytics kliknij pozycję Dzienniki.
  2. W polu zapytania wpisz:
    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" | summarize AggregatedValue = count () by JobId_g. 
    
  3. Kliknij przycisk Wyszukaj.

Wyświetlanie strumieni zadań dla zadania

Podczas debugowania zadania warto również przyjrzeć się strumieniom zadań. Następujące zapytanie przedstawia wszystkie strumienie dla pojedynczego zadania z identyfikatorem 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

Wyświetlanie stanu zadania historycznego

Na koniec możesz zwizualizować historię zadań w czasie. To zapytanie umożliwia wyszukiwanie stanu zadań w czasie.

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

Wykres stanu zadania historycznego usługi Log Analytics

Znajdź dzienniki raportowania błędów w zadaniach automatyzacji.

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

Znajdowanie ukończonych zadań usługi Azure Automation

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

Znajdowanie zadań usługi Azure Automation, które zakończyły się niepowodzeniem, wstrzymano lub zatrzymano

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 

Wyświetl listę wszystkich elementów Runbook i zadań zakończonych pomyślnie z błędami

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

Wysyłanie wiadomości e-mail w przypadku niepowodzenia lub zawieszenia zadania elementu Runbook

W poniższych krokach wyjaśniono, jak skonfigurować alerty e-mail w usłudze Azure Monitor w celu powiadamiania, gdy coś pójdzie nie tak z zadaniem elementu Runbook.

Aby utworzyć regułę alertu, utwórz dziennik wyszukiwania rekordów zadań elementu Runbook, które powinny wywołać alert zgodnie z opisem w artykule Wykonywanie zapytań dotyczących dzienników. Kliknij pozycję +Nowa reguła alertu, aby skonfigurować regułę alertu.

  1. Na koncie usługi Automation w obszarze Monitorowanie wybierz pozycję Dzienniki.

  2. Utwórz zapytanie wyszukiwania dzienników dla alertu, wprowadzając kryteria wyszukiwania w polu zapytania.

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

    Możesz również grupować według nazwy elementu Runbook przy użyciu:

    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and     Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended") | summarize AggregatedValue = count() by RunbookName_s 
    
  3. Aby otworzyć ekran Tworzenie reguły alertu, kliknij pozycję +Nowa reguła alertu w górnej części strony. Aby uzyskać więcej informacji na temat opcji konfigurowania alertów, zobacz Rejestrowanie alertów na platformie Azure

Dzienniki inspekcji diagnostycznej usługi Azure Automation

Teraz możesz wysyłać dzienniki inspekcji również do obszaru roboczego usługi Azure Monitor. Dzięki temu przedsiębiorstwa mogą monitorować kluczowe działania kont automatyzacji pod kątem zabezpieczeń i zgodności. Po włączeniu za pomocą ustawień Diagnostyka Azure można zbierać dane telemetryczne dotyczące operacji tworzenia, aktualizowania i usuwania elementów Runbook usługi Automation, zadań i zasobów automatyzacji, takich jak połączenie, poświadczenia, zmienna i certyfikat. Alerty dotyczące warunków dziennika inspekcji można również skonfigurować w ramach wymagań dotyczących monitorowania zabezpieczeń.

Różnica między dziennikami aktywności a dziennikami inspekcji

Dziennik aktywności to dziennikplatformy Azure, który zapewnia wgląd w zdarzenia na poziomie subskrypcji. Dziennik aktywności dla konta usługi Automation zawiera informacje o tym, kiedy zasób automatyzacji jest modyfikowany lub tworzony lub usuwany. Nie przechwytuje jednak nazwy ani identyfikatora zasobu.

Dzienniki inspekcji dla kont usługi Automation przechwytują nazwę i identyfikator zasobu, takie jak zmienna automatyzacji, poświadczenia, połączenie itd., wraz z typem operacji wykonanej dla zasobu, a usługa Azure Automation wyczyści niektóre szczegóły, takie jak dane ip klienta zgodne ze zgodnością z RODO.

Dzienniki aktywności zawierają szczegółowe informacje, takie jak adres IP klienta, ponieważ dziennik aktywności jest dziennikiem platformy, który zawiera szczegółowe informacje diagnostyczne i inspekcji dla zasobów platformy Azure. Są one generowane automatycznie dla działań występujących w usłudze ARM i są wypychane do dostawcy zasobów dziennika aktywności. Ponieważ dzienniki aktywności są częścią monitorowania platformy Azure, zostaną wyświetlone pewne dane klienta w celu zapewnienia wglądu w aktywność klienta.  

Przykładowe zapytania dotyczące dzienników inspekcji

Zapytanie dotyczące wyświetlania dzienników inspekcji zasobów usługi Automation

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

Wykonywanie zapytania w celu monitorowania dowolnej operacji aktualizacji zmiennej, tworzenia lub usuwania

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

Wykonywanie zapytań dotyczących monitorowania dowolnej operacji elementu Runbook, takiej jak tworzenie, wersja robocza lub aktualizacja

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

Wykonywanie zapytań dotyczących monitorowania tworzenia certyfikatu, aktualizowania lub usuwania

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

Wykonywanie zapytania w celu monitorowania tworzenia, aktualizowania lub usuwania poświadczeń

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

Filtrowanie danych wyjściowych stanu zadania przekonwertowanych na obiekt JSON

Ostatnio zmieniliśmy zachowanie sposobu zapisywania danych dziennika usługi Automation w AzureDiagnostics tabeli w usłudze Log Analytics, gdzie nie dzieli już właściwości JSON na oddzielne pola. Jeśli element Runbook został skonfigurowany do formatowania obiektów w strumieniu wyjściowym w formacie JSON jako oddzielnych kolumn, należy ponownie skonfigurować zapytania, aby przeanalizować to pole do obiektu JSON w celu uzyskania dostępu do tych właściwości. Jest to realizowane przy użyciu analizowania kodu json w celu uzyskania dostępu do określonego elementu JSON w znanej ścieżce.

Na przykład element Runbook formatuje właściwość ResultDescription w strumieniu wyjściowym w formacie JSON z wieloma polami. Aby wyszukać stan zadań, które są w stanie niepowodzenia określonym w polu o nazwie Stan, użyj tego przykładowego zapytania, aby wyszukać wynikDescription ze stanem Niepowodzenie:

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

Format JSON strumienia zadań historycznych usługi Log Analytics

Następne kroki