Überwachen von Azure Service Bus

Wenn Sie über unternehmenskritische Anwendungen und Geschäftsprozesse verfügen, die auf Azure-Ressourcen beruhen, sollten Sie Verfügbarkeit, Leistung und Betrieb dieser Ressourcen überwachen. In diesem Artikel wird das Überwachen von Daten beschrieben, die von Azure Service Bus generiert werden. Außerdem erfahren Sie, wie Sie diese Daten mit Azure Monitor analysieren und Warnungen für sie erstellen.

Was ist Azure Monitor?

Azure Service Bus protokolliert Überwachungsdaten mit Azure Monitor, einem Azure-Dienst zur vollständigen Stapelüberwachung. Azure Monitor bietet einen vollständigen Satz von Funktionen zum Überwachen Ihrer Azure-Ressourcen. Mit Azure Monitor können außerdem Ressourcen in anderen Clouds und lokal überwacht werden.

Beginnen Sie mit dem Artikel Überwachen von Azure-Ressourcen mit Azure Monitor, in dem die folgenden Konzepte beschrieben werden:

  • Was ist Azure Monitor?
  • Kosten für die Überwachung
  • In Azure gesammelte Überwachungsdaten
  • Konfigurieren der Datensammlung
  • Standardtools in Azure zum Analysieren von Überwachungsdaten sowie zum Generieren von Warnungen

Die folgenden Abschnitte bauen auf diesem Artikel auf, indem die spezifischen Daten beschrieben werden, die für Azure Service Bus erfasst werden. In diesen Abschnitten finden Sie außerdem Beispiele für die Konfiguration der Datensammlung und die Analyse der Daten mit Azure-Tools.

Tipp

Um die mit Azure Monitor verbundenen Kosten zu verstehen, lesen Sie Azure Monitor-Kosten und -Verbrauch. Informationen hinsichtlich der Zeit, die benötigt wird, bis Ihre Daten in Azure Monitor angezeigt werden, finden Sie unter Protokolldatenerfassungszeit in Azure Monitor.

Überwachen von Daten von Azure Service Bus

Azure Service Bus erfasst dieselben Arten von Überwachungsdaten wie andere Azure-Ressourcen, die unter Überwachen von Daten von Azure-Ressourcen beschrieben werden.

Eine ausführliche Referenz zu den Protokollen und Metriken, die von Azure Service Bus erstellt werden, finden Sie unter Referenz zur Azure Service Bus-Überwachung von Daten.

Sammlung und Routing

Plattformmetriken und das Aktivitätsprotokoll werden erfasst und gespeichert, können aber mithilfe einer Diagnoseeinstellung an andere Speicherorte weitergeleitet werden.

Ressourcenprotokolle werden erst erfasst und gespeichert, nachdem Sie eine Diagnoseeinstellung erstellt und die Protokolle an mindestens einen Speicherort weitergeleitet haben.

Ausführliche Informationen zum Erstellen einer Diagnoseeinstellung über das Azure-Portal, die Befehlszeilenschnittstelle oder PowerShell finden Sie unter Erstellen einer Diagnoseeinstellung zum Sammeln von Plattformprotokollen und Metriken in Azure. Wenn Sie eine Diagnoseeinstellung erstellen, legen Sie fest, welche Kategorien von Protokollen gesammelt werden sollen. Die Kategorien für Azure Service Bus werden in unter Referenz zur Azure Service Bus-Überwachung von Daten aufgeführt.

Hinweis

Azure Monitor schließt keine Dimensionen in die exportierten Metrikdaten ein, die an ein Ziel wie Azure Storage, Azure Event Hubs oder Log Analytics gesendet werden.

Azure Storage

Die Diagnoseprotokollinformationen werden in Containern namens insights-logs-operationlogs und insights-metrics-pt1m gespeichert.

Beispiel-URL für ein Vorgangsprotokoll: https://<Azure Storage account>.blob.core.windows.net/insights-logs-operationallogs/resourceId=/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/<Resource group name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<Namespace name>/y=<YEAR>/m=<MONTH-NUMBER>/d=<DAY-NUMBER>/h=<HOUR>/m=<MINUTE>/PT1H.json. Die URL für ein Metrikprotokoll ist ähnlich.

Azure Event Hubs

Die Diagnoseprotokollierungsinformationen werden in Event Hubs namens insights-logs-operationlogs und insights-metrics-pt1m gespeichert. Sie können auch Ihren eigenen Event Hub auswählen.

Log Analytics

Die Diagnoseprotokollierungsinformationen werden in Tabellen namens AzureDiagnostics und AzureMetrics gespeichert.

Beispielausgabe des Betriebsprotokolls (formatiert)

{
	"Environment": "PROD",
	"Region": "East US",
	"ScaleUnit": "PROD-BL2-002",
	"ActivityId": "a097a88a-33e5-4c9c-9c64-20f506ec1375",
	"EventName": "Retrieve Namespace",
	"resourceId": "/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/SPSBUS0213RG/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/SPSBUS0213NS",
	"SubscriptionId": "<Azure subscription ID>",
	"EventTimeString": "5/18/2021 3:25:55 AM +00:00",
	"EventProperties": "{\"SubscriptionId\":\"<Azure subscription ID>\",\"Namespace\":\"spsbus0213ns\",\"Via\":\"https://spsbus0213ns.servicebus.windows.net/$Resources/topics?api-version=2017-04&$skip=0&$top=100\",\"TrackingId\":\"a097a88a-33e5-4c9c-9c64-20f506ec1375_M8CH3_M8CH3_G8\"}",
	"Status": "Succeeded",
	"Caller": "rpfrontdoor",
	"category": "OperationalLogs"
}

Beispielausgabe des Metrikprotokolls (formatiert)

{
	"count": 1,
	"total": 4,
	"minimum": 4,
	"maximum": 4,
	"average": 4,
	"resourceId": "/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/SPSBUS0213RG/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/SPSBUS0213NS",
	"time": "2021-05-18T03:27:00.0000000Z",
	"metricName": "IncomingMessages",
	"timeGrain": "PT1M"
}

Wichtig

Ein Aktivieren dieser Einstellungen erfordert zusätzliche Azure-Dienste (Speicherkonto, Event Hub oder Log Analytics). Dadurch können sich Ihre Kosten erhöhen. Um geschätzte Kosten zu berechnen, wechseln Sie zum Azure-Preisrechner.

Hinweis

Wenn Sie Metriken in einer Diagnoseeinstellung aktivieren, sind Dimensionsinformationen derzeit nicht in den Informationen enthalten, die an ein Speicherkonto, an einen Event Hub oder an Log Analytics gesendet werden.

In den folgenden Abschnitten werden die Metriken und Protokolle behandelt, die Sie erfassen können.

Analysieren von Metriken

Sie können Metriken für Azure Service Bus zusammen mit Metriken aus anderen Azure-Diensten analysieren, indem Sie auf der Startseite für Ihren Service Bus-Namespace Metriken im Abschnitt Azure Monitor auswählen. Ausführliche Informationen zur Verwendung dieses Tools finden Sie unter Analysieren von Metriken mit Azure Metrik-Explorer. Eine Liste der erfassten Plattformmetriken finden Sie unter Referenz zur Azure Service Bus-Überwachung von Daten.

Metrik-Explorer mit ausgewähltem Service Bus-Namespace

Sie können zur Referenz auf eine Liste aller in Azure Monitor unterstützter Ressourcenmetriken anzeigen.

Tipp

Metrikdaten stehen in Azure Monitor 90 Tage zur Verfügung. Beim Erstellen von Diagrammen können jedoch nur 30 Tage visualisiert werden. Wenn Sie z. B. einen 90-tägigen Zeitraum visualisieren möchten, müssen Sie ihn in drei Diagramme mit jeweils 30 Tagen in diesem 90-Tage-Zeitraum aufteilen.

Filtern und Teilen

Für Metriken, die Dimensionen unterstützen, können Sie Filter mit einem Dimensionswert anwenden. Fügen Sie beispielsweise einen Filter hinzu, bei dem EntityName auf den Namen einer Warteschlange oder eines Themas festgelegt ist. Sie können eine Metrik auch nach Dimension teilen, um visuell darzustellen, wie verschiedene Segmente der Metrik miteinander zu vergleichen sind. Weitere Informationen zum Filtern und Teilen finden Sie unter Erweiterte Funktionen von Azure Metrik-Explorer.

Analysieren von Protokollen

Um Azure Monitor Log Analytics verwenden zu können, müssen Sie eine Diagnosekonfiguration erstellen und Send information to Log Analytics (Informationen an Log Analytics senden) aktivieren. Weitere Informationen finden Sie im Abschnitt Erfassung und Weiterleitung. Daten in Azure Monitor-Protokollen werden in Tabellen gespeichert, wobei jede Tabelle über einen eigenen Satz eindeutiger Eigenschaften verfügt. Azure Service Bus verfügt über die Möglichkeit, Protokolle an eine von zwei Zieltabellen zu verteilen - Azure-Diagnose- oder ressourcenspezifische Tabellen in Log Analytics. Eine ausführliche Referenz zu den Protokollen und Metriken finden Sie unter Referenz zur Azure Service Bus-Überwachung von Daten.

Wichtig

Wenn Sie Protokolle im Menü von Azure Service Bus auswählen, wird Log Analytics geöffnet, wobei der Abfragebereich auf den aktuellen Arbeitsbereich festgelegt ist. Dies bedeutet, dass Protokollabfragen nur Daten aus dieser Ressource umfassen. Wenn Sie eine Abfrage ausführen möchten, die Daten aus anderen Datenbanken oder Daten aus anderen Azure-Diensten enthält, wählen Sie im Menü Azure Monitor die Option Protokolle aus. Ausführliche Informationen finden Sie unter Protokollabfragebereich und Zeitbereich in Azure Monitor Log Analytics.

Weitere Kusto-Abfragen

Die folgenden Beispielabfragen können Sie zur Überwachung Ihrer Azure Service Bus-Ressourcen verwenden:

  • Abrufen der Verwaltungsvorgänge während der letzten 7 Tage.

    AzureDiagnostics
    | where TimeGenerated > ago(7d)
    | where ResourceProvider =="MICROSOFT.SERVICEBUS"
    | where Category == "OperationalLogs"
    | summarize count() by EventName_s, _ResourceId
    
  • Abrufen von Laufzeitüberwachungsprotokollen, die in der letzten Stunde generiert wurden.

    AzureDiagnostics
    | where TimeGenerated > ago(1h)
    | where ResourceProvider =="MICROSOFT.SERVICEBUS"
    | where Category == "RuntimeAuditLogs"    
    
  • Abrufen von Zugriffsversuchen auf einen Schlüsseltresor, die zum Fehler „Schlüssel nicht gefunden“ geführt haben.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.SERVICEBUS" 
    | where Category == "Error" and OperationName == "wrapkey"
    | project Message, _ResourceId
    
  • Abrufen von Fehlern aus den letzten 7 Tagen.

    AzureDiagnostics
    | where TimeGenerated > ago(7d)
    | where ResourceProvider =="MICROSOFT.SERVICEBUS"
    | where Category == "Error" 
    | summarize count() by EventName_s, _ResourceId
    
  • Abrufen von Vorgängen, die mit einem Schlüsseltresor ausgeführt wurden, um den Schlüssel zu deaktivieren oder wiederherzustellen.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.SERVICEBUS"
    | where (Category == "info" and (OperationName == "disable" or OperationName == "restore"))
    | project Message, _ResourceId
    
  • Abrufen aller Entitäten, die automatisch gelöscht wurden.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.SERVICEBUS"
    | where Category == "OperationalLogs"
    | where EventName_s startswith "AutoDelete"
    | summarize count() by EventName_s, _ResourceId