Überwachen von veröffentlichten APIsMonitor published APIs

Mit Azure Monitor können Sie Metriken oder Protokolle aus Azure-Ressourcen visualisieren, abfragen, weiterleiten und archivieren und ggf. notwendige Maßnahmen ergreifen.With Azure Monitor, you can visualize, query, route, archive, and take actions on the metrics or logs coming from Azure resources.

In diesem Tutorial lernen Sie Folgendes:In this tutorial, you learn how to:

  • Anzeigen von AktivitätsprotokollenView activity logs
  • Anzeigen von DiagnoseprotokollenView diagnostic logs
  • Anzeigen von Metriken Ihrer APIView metrics of your API
  • Einrichten einer Warnungsregel, wenn Ihre API nicht autorisierte Aufrufe empfängtSet up an alert rule when your API gets unauthorized calls

Im folgenden Video wird die Überwachung von API Management mithilfe von Azure Monitor veranschaulicht.The following video shows how to monitor API Management using Azure Monitor.

VoraussetzungenPrerequisites

VerfügbarkeitAvailability

Wichtig

Diese Funktion ist auf den Ebenen Premium und Standard, Basic und Entwickler von API Management verfügbar.This feature is available in the Premium, Standard, Basic and Developer tiers of API Management.

Anzeigen von Metriken Ihrer APIView metrics of your APIs

Von API Management werden jede Minute Metriken ausgegeben, sodass Sie einen Überblick über den Zustand und die Integrität Ihrer APIs nahezu in Echtzeit erhalten.API Management emits metrics every minute, giving you near real-time visibility into the state and health of your APIs. Hier sehen Sie eine Übersicht über einige der verfügbaren Metriken:Following is a summary of some of the available metrics:

  • Kapazität: Unterstützt Sie beim Treffen von Entscheidungen in Bezug auf Upgrades/Downgrades Ihrer APIM-Dienste.Capacity: helps you make decisions about upgrading/downgrading your APIM services. Die Metrik wird minütlich ausgegeben und spiegelt die Gatewaykapazität zum Zeitpunkt der Meldung wider.The metric is emitted per minute and reflects the gateway capacity at the time of reporting. Der Wert der Metrik kann zwischen 0 und 100 liegen und wird basierend auf Gatewayressourcen wie CPU und Speicherauslastung berechnet.The metric ranges from 0-100 calculated based on gateway resources such as CPU and memory utilization.
  • Gatewayanforderungen gesamt: Anzahl der API-Anforderungen innerhalb des Zeitraums.Total Gateway Requests: the number of API requests in the period.
  • Erfolgreiche Gatewayanforderungen: Anzahl der API-Anforderungen, die erfolgreiche HTTP-Antwortcodes einschließlich 304, 307 und alle unter 301 (z.B. 200) erhalten haben.Successful Gateway Requests: the number of API requests that received successful HTTP response codes including 304, 307, and anything smaller than 301 (for example, 200).
  • Fehlerhafte Gatewayanforderungen: Anzahl der API-Anforderungen, die fehlerhafte HTTP-Antwortcodes einschließlich 400 und alle über 500 erhalten haben.Failed Gateway Requests: the number of API requests that received erroneous HTTP response codes including 400, and anything larger than 500.
  • Nicht autorisierte Gatewayanforderungen: Anzahl der API-Anforderungen, die HTTP-Antwortcodes einschließlich 401, 403 und 429 erhalten haben.Unauthorized Gateway Requests: the number of API requests that received HTTP response codes including 401, 403, and 429.
  • Andere Gateway-Anforderungen: Anzahl der API-Anforderungen, die HTTP-Antwortcodes erhalten haben, die keiner der oben genannten Kategorien angehören (z.B. 418).Other Gateway Requests: the number of API requests that received HTTP response codes that do not belong to any of the preceding categories (for example, 418).

Metrikdiagramm

So greifen Sie auf Metriken zu:To access metrics:

  1. Klicken Sie im Menü am unteren Seitenrand auf Metriken.Select Metrics from the menu near the bottom of the page.

    metrics

  2. Wählen Sie im Dropdownmenü die gewünschten Metriken aus.From the drop-down, select metrics you are interested in. Beispiel: Anforderungen.For example, Requests.

  3. Im Diagramm ist die Gesamtanzahl von API-Aufrufen gezeigt.The chart shows the total number of API calls.

  4. Das Diagramm kann anhand der Dimensionen der Metrik Anforderungen gefiltert werden.The chart can be filtered using the dimensions of the Requests metric. Klicken Sie beispielsweise auf Filter hinzufügen, wählen Sie Backend Response Code (Antwortcode des Back-Ends) aus, und geben Sie als Wert 500 ein.For example, click on Add filter, choose Backend Response Code, enter 500 as the value. Das Diagramm zeigt nun die Anzahl von Anforderungen an, für die im API-Back-End ein Fehler auftrat.Now the chart shows the number of requests that were failed in the API backend.

Einrichten einer Warnungsregel für nicht autorisierte AnforderungenSet up an alert rule for unauthorized request

Sie können die Konfiguration so durchführen, dass Warnungen basierend auf Metriken und Aktivitätsprotokollen empfangen werden.You can configure to receive alerts based on metrics and activity logs. Mit Azure Monitor können Sie eine Warnung so konfigurieren, dass Folgendes erfolgt, wenn sie ausgelöst wird:Azure Monitor allows you to configure an alert to do the following when it triggers:

  • Senden einer E-Mail-BenachrichtigungSend an email notification
  • Aufrufen eines WebhooksCall a webhook
  • Aufrufen einer Azure-Logik-AppInvoke an Azure Logic App

So konfigurieren Sie Warnungen:To configure alerts:

  1. Klicken Sie im unteren Seitenbereich auf der Menüleiste auf Warnungen.Select Alerts from the menu bar near the bottom of the page.

    alerts

  2. Klicken Sie für diese Warnung auf Neue Warnungsregel.Click on a New alert rule for this alert.

  3. Klicken Sie auf Bedingung hinzufügen.Click on Add condition.

  4. Wählen Sie in der Dropdownliste für den Signaltyp die Option Metriken aus.Select Metrics in the Signal type drop down.

  5. Wählen Sie Unauthorized Gateway Request (Nicht autorisierte Gatewayanforderung) als zu überwachendes Signal aus.Select Unauthorized Gateway Request as the signal to monitor.

    alerts

  6. Geben Sie in der Ansicht Signallogik konfigurieren einen Schwellenwert an, nach dem die Warnung ausgelöst werden soll, und klicken Sie anschließend auf Fertig.In the Configure signal logic view, specify a threshold after which the alert should be triggered and click Done.

    alerts

  7. Wählen Sie eine vorhandene Aktionsgruppe aus, oder erstellen Sie eine neue Aktionsgruppe.Select an existing Action Group or create a new one. Im folgenden Beispiel wird eine E-Mail an die Administratoren gesendet.In the example below, an email will be sent to the admins.

    alerts

  8. Geben Sie einen Namen und eine Beschreibung für die Warnungsregel an, und wählen Sie den Schweregrad aus.Provide a name, description of the alert rule and choose the severity level.

  9. Klicken Sie auf Warnungsregel erstellen.Press Create alert rule.

  10. Versuchen Sie nun, die Konferenz-API ohne API-Schlüssel aufzurufen.Now, try to call the Conference API without an API key. Die Warnung wird ausgelöst, und eine E-Mail wird an die Administratoren gesendet.The alert will be triggered and email will be sent to the admins.

AktivitätsprotokolleActivity Logs

Aktivitätsprotokolle geben Einblick in die Vorgänge, die für Ihre API Management-Dienste ausgeführt wurden.Activity logs provide insight into the operations that were performed on your API Management services. Mit dem Aktivitätsprotokoll können Sie die Antworten auf die Fragen „Was“, „Wer“ und „Wann“ für alle Schreibvorgänge (PUT, POST, DELETE) ermitteln, die für Ihre API Management-Dienste durchgeführt wurden.Using activity logs, you can determine the "what, who, and when" for any write operations (PUT, POST, DELETE) taken on your API Management services.

Hinweis

Aktivitätsprotokolle enthalten keine Lesevorgänge (GET) oder Vorgänge, die im Azure-Portal oder mithilfe der ursprünglichen Management-APIs durchgeführt wurden.Activity logs do not include read (GET) operations or operations performed in the Azure portal or using the original Management APIs.

Sie können in Ihrem API Management-Dienst auf Aktivitätsprotokolle oder in Azure Monitor auf Protokolle all Ihrer Azure-Ressourcen zugreifen.You can access activity logs in your API Management service, or access logs of all your Azure resources in Azure Monitor.

Aktivitätsprotokolle

So zeigen Sie Aktivitätsprotokolle an:To view activity logs:

  1. Wählen Sie Ihre APIM-Dienstinstanz aus.Select your APIM service instance.

  2. Klicken Sie auf Aktivitätsprotokoll.Click Activity log.

    Aktivitätsprotokoll

  3. Wählen Sie den gewünschten Filterungsbereich, und klicken Sie auf Anwenden.Select desired filtering scope and click Apply.

DiagnoseprotokolleDiagnostic Logs

Diagnoseprotokolle bieten umfassende Informationen zu Vorgängen und Fehlern, die zur Überwachung und Problembehandlung relevant sind.Diagnostic logs provide rich information about operations and errors that are important for auditing as well as troubleshooting purposes. Diagnoseprotokolle unterscheiden sich von Aktivitätsprotokollen.Diagnostics logs differ from activity logs. Aktivitätsprotokolle geben Einblick in die Vorgänge, die für Ihre Azure-Ressourcen ausgeführt wurden.Activity logs provide insights into the operations that were performed on your Azure resources. Diagnoseprotokolle bieten Einblick in Vorgänge, die Ihre Ressource selbst ausgeführt hat.Diagnostics logs provide insight into operations that your resource performed.

So konfigurieren Sie Diagnoseprotokolle:To configure diagnostic logs:

  1. Wählen Sie Ihre APIM-Dienstinstanz aus.Select your APIM service instance.

  2. Klicken Sie auf Diagnoseeinstellungen.Click Diagnostic settings.

    Diagnoseprotokolle

  3. Klicken Sie auf Diagnose aktivieren.Click Turn on diagnostics. Sie können Diagnoseprotokolle zusammen mit Metriken in einem Speicherkonto archivieren, an einen Event Hub streamen oder an Azure Monitor-Protokolle senden.You can archive diagnostic logs along with metrics to a storage account, stream them to an Event Hub, or send them to Azure Monitor logs.

API Management bietet derzeit Diagnoseprotokolle (stündlich erfasst) zu einzelnen API-Anforderungen, bei denen jeder Eintrag das folgende Schema aufweist:API Management currently provides diagnostics logs (batched hourly) about individual API request with each entry having the following schema:

{  
    "isRequestSuccess" : "",
    "time": "",
    "operationName": "",
    "category": "",
    "durationMs": ,
    "callerIpAddress": "",
    "correlationId": "",
    "location": "",
    "httpStatusCodeCategory": "",
    "resourceId": "",
    "properties": {   
        "method": "", 
        "url": "", 
        "clientProtocol": "", 
        "responseCode": , 
        "backendMethod": "", 
        "backendUrl": "", 
        "backendResponseCode": ,
        "backendProtocol": "",  
        "requestSize": , 
        "responseSize": , 
        "cache": "", 
        "cacheTime": "", 
        "backendTime": , 
        "clientTime": , 
        "apiId": "",
        "operationId": "", 
        "productId": "", 
        "userId": "", 
        "apimSubscriptionId": "", 
        "backendId": "",
        "lastError": { 
            "elapsed" : "", 
            "source" : "", 
            "scope" : "", 
            "section" : "" ,
            "reason" : "", 
            "message" : ""
        } 
    }      
}  
EigenschaftProperty typeType BeschreibungDescription
isRequestSuccessisRequestSuccess booleanboolean „True“, wenn die HTTP-Anforderung mit einem Antwortstatuscode im Bereich 2xx oder 3xx abgeschlossen wirdTrue if the HTTP request completed with response status code within 2xx or 3xx range
timetime date-timedate-time Der Zeitstempel des Zeitpunkts, zu dem das Gateway mit dem Verarbeiten der Anforderung beginntTimestamp of when the gateway starts process the request
operationNameoperationName stringstring Konstanter Wert „Microsoft.ApiManagement/GatewayLogs“Constant value 'Microsoft.ApiManagement/GatewayLogs'
categorycategory stringstring Konstanter Wert „GatewayLogs“Constant value 'GatewayLogs'
durationMsdurationMs integerinteger Anzahl von Millisekunden zwischen dem Zeitpunkt, zu dem das Gateway die Anforderung empfangen hat, und dem Zeitpunkt, zu dem die Antwort vollständig gesendet wurde.Number of milliseconds from the moment gateway received request until the moment response sent in full. Dies beinhalt clientTime, cacheTime und backendTime.It includes clienTime, cacheTime, and backendTime.
callerIpAddresscallerIpAddress stringstring IP-Adresse des unmittelbaren Gateway-Aufrufers (kann auch ein Zwischenaufrufer sein)IP address of immediate Gateway caller (can be an intermediary)
correlationIdcorrelationId stringstring Von API Management zugewiesene eindeutige HTTP-Anforderungs-IDUnique http request identifier assigned by API Management
locationlocation stringstring Name der Azure-Region, in der sich das Gateway befindet, das die Anforderung verarbeitet hatName of the Azure region where the Gateway that processed the request was located
httpStatusCodeCategoryhttpStatusCodeCategory stringstring Kategorie des HTTP-Antwortstatuscodes: Erfolgreich (301 oder darunter, 304 oder 307), Nicht autorisiert (401, 403, 429), Erroneous (Fehler) (400, zwischen 500 und 600), Other (Sonstiges)Category of http response status code: Successful (301 or less or 304 or 307), Unauthorized (401, 403, 429), Erroneous (400, between 500 and 600), Other
resourceIdresourceId stringstring ID der API Management-Ressource: /SUBSCRIPTIONS/<Abonnement>/RESOURCEGROUPS/<Ressourcengruppe>/PROVIDERS/MICROSOFT.APIMANAGEMENT/SERVICE/<Name>ID of the API Management resource /SUBSCRIPTIONS/<subscription>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.APIMANAGEMENT/SERVICE/<name>
propertiesproperties Objekt (object)object Eigenschaften der aktuellen AnforderungProperties of the current request
methodmethod stringstring HTTP-Methode der eingehenden AnforderungHTTP method of the incoming request
urlurl stringstring URL der eingehenden AnforderungURL of the incoming request
clientProtocolclientProtocol stringstring HTTP-Protokollversion der eingehenden AnforderungHTTP protocol version of the incoming request
responseCoderesponseCode integerinteger Statuscode der an einen Client gesendeten HTTP-AntwortStatus code of the HTTP response sent to a client
backendMethodbackendMethod stringstring HTTP-Methode der an ein Back-End gesendeten AnforderungHTTP method of the request sent to a backend
backendUrlbackendUrl stringstring URL der an ein Back-End gesendeten AnforderungURL of the request sent to a backend
backendResponseCodebackendResponseCode integerinteger Code der von einem Back-End empfangenen HTTP-AntwortCode of the HTTP response received from a backend
backendProtocolbackendProtocol stringstring HTTP-Protokollversion der an ein Back-End gesendeten AnforderungHTTP protocol version of the request sent to a backend
requestSizerequestSize integerinteger Anzahl der Bytes, die von einem Client während der Anforderungsverarbeitung empfangen werdenNumber of bytes received from a client during request processing
responseSizeresponseSize integerinteger Anzahl der Bytes, die während der Anforderungsverarbeitung an einen Client gesendet werdenNumber of bytes sent to a client during request processing
cachecache stringstring Status der API Management-Cachenutzung bei der Anforderungsverarbeitung (d.h. Treffer, Fehler, Keiner)Status of API Management cache involvement in request processing (i.e., hit, miss, none)
cacheTimecacheTime integerinteger Anzahl von Millisekunden für alle API Management-Cache-E/A-Vorgänge (Verbindungsherstellung, Senden und Empfangen von Bytes)Number of milliseconds spent on overall API Management cache IO (connecting, sending, and receiving bytes)
backendTimebackendTime integerinteger Anzahl von Millisekunden für alle Back-End-E/A-Vorgänge (Verbindungsherstellung, Senden und Empfangen von Bytes)Number of milliseconds spent on overall backend IO (connecting, sending and receiving bytes)
clientTimeclientTime integerinteger Anzahl von Millisekunden für alle Client-E/A-Vorgänge (Verbindungsherstellung, Senden und Empfangen von Bytes)Number of milliseconds spent on overall client IO (connecting, sending and receiving bytes)
apiIdapiId stringstring API-Entitätsbezeichner für die aktuelle AnforderungAPI entity identifier for current request
operationIdoperationId stringstring Vorgangsentitätsbezeichner für die aktuelle AnforderungOperation entity identifier for current request
productIdproductId stringstring Produktentitätsbezeichner für die aktuelle AnforderungProduct entity identifier for current request
userIduserId stringstring Benutzerentitätsbezeichner für die aktuelle AnforderungUser entity identifier for current request
apimSubscriptionIdapimSubscriptionId stringstring Abonnemententitätsbezeichner für die aktuelle AnforderungSubscription entity identifier for current request
backendIdbackendId stringstring Back-End-Entitätsbezeichner für die aktuelle AnforderungBackend entity identifier for current request
lastErrorLastError Objekt (object)object Letzter AnforderungsverarbeitungsfehlerLast request processing error
elapsedelapsed integerinteger Anzahl von Millisekunden, die zwischen dem Eingehen der Anforderung beim Gateway und dem Auftreten des Fehlers vergangen sindNumber of milliseconds elapsed between when the gateway received the request and the moment the error occurred
sourcesource stringstring Der Fehler wurde durch den Namen der Richtlinie oder die Verarbeitung des internen Handlers verursacht.Name of the policy or processing internal handler caused the error
scopescope stringstring Der Fehler wurde durch den Bereich des Richtliniendokuments verursacht, das die Richtlinie enthält.Scope of the policy document containing the policy that caused the error
sectionsection stringstring Der Fehler wurde durch den Abschnitt des Richtliniendokuments verursacht, der die Richtlinie enthält.Section of the policy document containing the policy that caused the error
reasonreason stringstring FehlerursacheError reason
messagemessage stringstring FehlermeldungError message

Nächste SchritteNext steps

In diesem Tutorial haben Sie Folgendes gelernt:In this tutorial, you learned how to:

  • Anzeigen von AktivitätsprotokollenView activity logs
  • Anzeigen von DiagnoseprotokollenView diagnostic logs
  • Anzeigen von Metriken Ihrer APIView metrics of your API
  • Einrichten einer Warnungsregel, wenn Ihre API nicht autorisierte Aufrufe empfängtSet up an alert rule when your API gets unauthorized calls

Fahren Sie mit dem nächsten Tutorial fort:Advance to the next tutorial: