Wysyłanie danych z rozszerzenia diagnostyki platformy Windows Azure do Azure Event Hubs

Rozszerzenie diagnostyki platformy Azure to agent w usłudze Azure Monitor, który zbiera dane monitorowania z systemu operacyjnego gościa i obciążeń maszyn wirtualnych platformy Azure i innych zasobów obliczeniowych. W tym artykule opisano sposób wysyłania danych z rozszerzenia Diagnostyka Platformy Windows (WAD) do Azure Event Hubs, dzięki czemu można przekazywać dane do lokalizacji spoza platformy Azure.

Obsługiwane dane

Dane zebrane z systemu operacyjnego gościa, które mogą być wysyłane do usługi Event Hubs, obejmują następujące elementy. Inne źródła danych zebrane przez wad, w tym dzienniki usług IIS i zrzuty awaryjne, nie mogą być wysyłane do usługi Event Hubs.

  • Zdarzenia funkcji Śledzenie zdarzeń systemu Windows (ETW)
  • Liczniki wydajności
  • Dzienniki zdarzeń systemu Windows, w tym dzienniki aplikacji w dzienniku zdarzeń systemu Windows
  • Dzienniki infrastruktury diagnostyki Azure

Wymagania wstępne

Schemat konfiguracji

Zobacz Instalowanie i konfigurowanie rozszerzenia diagnostyki platformy Windows Azure (WAD) dla różnych opcji włączania i konfigurowania rozszerzenia diagnostyki oraz schematu konfiguracji Diagnostyka Azure, aby zapoznać się ze schematem konfiguracji. W pozostałej części tego artykułu opisano sposób używania tej konfiguracji do wysyłania danych do centrum zdarzeń.

Diagnostyka Azure zawsze wysyła dzienniki i metryki do konta usługi Azure Storage. Można skonfigurować co najmniej jeden ujścia danych , który wysyła dane do dodatkowych lokalizacji. Każde ujście jest definiowane w elemecie SinksConfig konfiguracji publicznej z poufnymi informacjami w konfiguracji prywatnej. Ta konfiguracja dla centrów zdarzeń używa wartości w poniższej tabeli.

Właściwość Opis
Nazwa Opisowa nazwa ujścia. Używana w konfiguracji do określania źródeł danych, które mają być wysyłane do ujścia.
Url Adres URL centrum zdarzeń w postaci <event-hubs-namespace.servicebus.windows.net/>< event-hub-name>.
SharedAccessKeyName Nazwa zasad dostępu współdzielonego dla centrum zdarzeń, które ma co najmniej urząd Wysyłania .
SharedAccessKey Klucz podstawowy lub pomocniczy z zasad dostępu współdzielonego dla centrum zdarzeń.

Poniżej przedstawiono przykładowe konfiguracje publiczne i prywatne. Jest to minimalna konfiguracja z pojedynczym licznikiem wydajności i dziennikiem zdarzeń, aby zilustrować sposób konfigurowania i używania ujścia danych centrum zdarzeń. Aby uzyskać bardziej złożony przykład, zobacz Diagnostyka Azure schemat konfiguracji.

Konfiguracja publiczna

{
    "WadCfg": {
        "DiagnosticMonitorConfiguration": {
            "overallQuotaInMB": 5120,
            "PerformanceCounters": {
                "scheduledTransferPeriod": "PT1M",
                "sinks": "myEventHub",
                "PerformanceCounterConfiguration": [
                    {
                        "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                        "sampleRate": "PT3M"
                    }
                ]
            },
            "WindowsEventLog": {
                "scheduledTransferPeriod": "PT1M",
                "sinks": "myEventHub",
                    "DataSource": [
                    {
                        "name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
                    }
                ]
            }
        },
        "SinksConfig": {
            "Sink": [
                {
                    "name": "myEventHub",
                    "EventHub": {
                        "Url": "https://diags-mycompany-ns.servicebus.windows.net/diageventhub",
                        "SharedAccessKeyName": "SendRule"
                    }
                }
            ]
        }
    },
    "StorageAccount": "mystorageaccount",
}

Konfiguracja prywatna

{
    "storageAccountName": "mystorageaccount",
    "storageAccountKey": "{base64 encoded key}",
    "storageAccountEndPoint": "https://core.windows.net",
    "EventHub": {
        "Url": "https://diags-mycompany-ns.servicebus.windows.net/diageventhub",
        "SharedAccessKeyName": "SendRule",
        "SharedAccessKey": "{base64 encoded key}"
    }
}

Opcje konfiguracji

Aby wysyłać dane do ujścia danych, należy określić atrybut ujścia w węźle źródła danych. Miejsce, w którym umieszczasz atrybut ujścia , określa zakres przypisania. W poniższym przykładzie atrybut ujścia jest zdefiniowany w węźle PerformanceCounters , co spowoduje wysłanie wszystkich podrzędnych liczników wydajności do centrum zdarzeń.

"PerformanceCounters": {
    "scheduledTransferPeriod": "PT1M",
    "sinks": "MyEventHub",
    "PerformanceCounterConfiguration": [
        {
            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Memory\\Available MBytes",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Web Service(_Total)\\ISAPI Extension Requests/sec",
            "sampleRate": "PT3M"
        }
    ]
}

W poniższym przykładzie atrybut ujścia jest stosowany bezpośrednio do trzech liczników, co spowoduje wysłanie tylko tych liczników wydajności do centrum zdarzeń.

"PerformanceCounters": {
    "scheduledTransferPeriod": "PT1M",
    "PerformanceCounterConfiguration": [
        {
            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        },
        {
            "counterSpecifier": "\\Memory\\Available MBytes",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Web Service(_Total)\\ISAPI Extension Requests/sec",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\ASP.NET\\Requests Rejected",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        },
        {
            "counterSpecifier": "\\ASP.NET\\Requests Queued",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        }
    ]
}

Weryfikowanie konfiguracji

Do sprawdzania, czy dane są wysyłane do centrum zdarzeń, można użyć różnych metod. Jedną z prostych metod jest użycie funkcji przechwytywania usługi Event Hubs zgodnie z opisem w temacie Przechwytywanie zdarzeń za pośrednictwem Azure Event Hubs w Azure Blob Storage lub Azure Data Lake Storage.

Rozwiązywanie problemów z ujściami usługi Event Hubs

  • Zapoznaj się z tabelą usługi Azure Storage WADDiagnosticInfrastructureLogsTable zawierającą dzienniki i błędy dotyczące samego Diagnostyka Azure. Jedną z opcji jest użycie narzędzia, takiego jak Eksplorator usługi Azure Storage, aby nawiązać połączenie z tym kontem magazynu, wyświetlić tę tabelę i dodać zapytanie dotyczące znacznika czasu w ciągu ostatnich 24 godzin. Za pomocą narzędzia możesz wyeksportować plik .csv i otworzyć go w aplikacji, takiej jak Microsoft Excel. Program Excel ułatwia wyszukiwanie ciągów karty wywołującej, takich jak EventHubs, aby zobaczyć, jaki błąd jest zgłaszany.

  • Sprawdź, czy centrum zdarzeń zostało pomyślnie aprowidowane. Wszystkie informacje o połączeniu w sekcji PrivateConfig konfiguracji muszą być zgodne z wartościami zasobu, jak pokazano w portalu. Upewnij się, że masz zdefiniowane zasady sygnatury dostępu współdzielonego (SendRule w przykładzie) w portalu i że uprawnienie Wyślij zostało przyznane.

Następne kroki