Logboekquery's uitvoeren in Azure Monitor werkruimten en apps

Azure Monitor logboeken bieden ondersteuning voor het uitvoeren van query's in meerdere Log Analytics-werkruimten en Application Insights-apps in dezelfde resourcegroep, een andere resourcegroep of een ander abonnement. Dit biedt u een systeembreed overzicht van uw gegevens.

Als u abonnementen in andere Azure Active Directory (Azure AD)-tenants beheert via Azure Lighthouse,kunt u Log Analytics-werkruimten die in die klantten tenants zijn gemaakt, opnemen in uw query's.

Er zijn twee methoden om query's uit te voeren op gegevens die zijn opgeslagen in meerdere werkruimten en apps:

  1. Expliciet door de details van de werkruimte en app op te geven. Deze techniek wordt beschreven in dit artikel.
  2. Impliciet met behulp van query's voor resourcecontext. Wanneer u een query uitvoert in de context van een specifieke resource, resourcegroep of abonnement, worden de relevante gegevens opgehaald uit alle werkruimten die gegevens voor deze resources bevatten. Toepassingsgegevens Insights die zijn opgeslagen in apps, worden niet opgehaald.

Belangrijk

Als u een Application Insights-resource op basis van een werkruimte gebruikt, wordt telemetrie opgeslagen in een Log Analytics-werkruimtemet alle andere logboekgegevens. Gebruik de workspace()-expressie om een query te schrijven die toepassingen in meerdere werkruimten bevat. Voor meerdere toepassingen in dezelfde werkruimte hebt u geen query voor meerdere werkruimten nodig.

Querylimieten voor resource-overschrijdende resources

  • Het aantal Application Insights-resources en Log Analytics-werkruimten dat u in één query kunt opnemen, is beperkt tot 100.
  • Query's voor meerdere resources worden niet ondersteund in View Designer. U kunt een query maken in Log Analytics en deze vastmaken aan het Azure-dashboard om een logboekquery te visualiseren of op te nemen in Workbooks.
  • Query's tussen resources in logboekwaarschuwingen worden alleen ondersteund in de huidige api scheduledQueryRules. Als u de verouderde Api voor Log Analytics-waarschuwingen gebruikt, moet u overschakelen naar de huidige API.

Query's uitvoeren in Log Analytics-werkruimten en vanuit Application Insights

Als u wilt verwijzen naar een andere werkruimte in uw query, gebruikt u de werkruimte-id en gebruikt u voor een app uit Application Insights de app-id.

Werkruimte-resources identificeren

In de volgende voorbeelden ziet u query's in Log Analytics-werkruimten om samengevatte tellingen van logboeken uit de tabel Update te retourneren in een werkruimte met de naam contosoretail-it.

Het identificeren van een werkruimte kan op een van de volgende manieren worden bereikt:

  • Resourcenaam: is een voor mensen leesbare naam van de werkruimte, ook wel de onderdeelnaam genoemd.

    Belangrijk

    Omdat namen van apps en werkruimten niet uniek zijn, kan deze id ambigu zijn. Het wordt aanbevolen dat de verwijzing wordt uitgevoerd op Gekwalificeerde naam, Werkruimte-id of Azure-resource-id.

    workspace("contosoretail-it").Update | count

  • Gekwalificeerde naam: is de volledige naam van de werkruimte, bestaande uit de abonnementsnaam, resourcegroep en onderdeelnaam in deze indeling: subscriptionName/resourceGroup/componentName.

    workspace('contoso/contosoretail/contosoretail-it').Update | count

    Notitie

    Omdat de namen van Azure-abonnementen niet uniek zijn, kan deze id ambigu zijn.

  • Werkruimte-id: een werkruimte-id is de unieke, onveranderbare id die wordt toegewezen aan elke werkruimte die wordt weergegeven als een GUID (Globally Unique Identifier).

    workspace("b459b4u5-912x-46d5-9cb1-p43069212nb4").Update | count

  • Azure-resource-id: de door Azure gedefinieerde unieke identiteit van de werkruimte. U gebruikt de resource-id wanneer de resourcenaam ambigu is. Voor werkruimten is de indeling: /subscriptions/subscriptionId/resourcegroups/resourceGroup/providers/microsoft. OperationalInsights/workspaces/componentName.

    Bijvoorbeeld:

    workspace("/subscriptions/e427519-5645-8x4e-1v67-3b84b59a1985/resourcegroups/ContosoAzureHQ/providers/Microsoft.OperationalInsights/workspaces/contosoretail-it").Update | count
    

Een toepassing identificeren

In de volgende voorbeelden wordt een samengevat aantal aanvragen voor een app met de naam fabrikamapp in Application Insights.

Het identificeren van een toepassing in Application Insights kan worden bereikt met de app(Identifier)-expressie. Het argument Id geeft de app aan met behulp van een van de volgende opties:

  • Resourcenaam: is een voor mensen leesbare naam van de app, ook wel de onderdeelnaam genoemd.

    app("fabrikamapp")

    Notitie

    Bij het identificeren van een toepassing op naam wordt uitgenomen dat alle toegankelijke abonnementen uniek zijn. Als u meerdere toepassingen met de opgegeven naam hebt, mislukt de query vanwege de dubbelzinnigheid. In dit geval moet u een van de andere id's gebruiken.

  • Gekwalificeerde naam: is de volledige naam van de app, bestaande uit de naam van het abonnement, de resourcegroep en de onderdeelnaam in deze indeling: subscriptionName/resourceGroup/componentName.

    app("AI-Prototype/Fabrikam/fabrikamapp").requests | count

    Notitie

    Omdat de namen van Azure-abonnementen niet uniek zijn, kan deze id ambigu zijn.

  • Id: de app-GUID van de toepassing.

    app("b459b4f6-912x-46d5-9cb1-b43069212ab4").requests | count

  • Azure-resource-id: de door Azure gedefinieerde unieke identiteit van de app. U gebruikt de resource-id wanneer de resourcenaam ambigu is. De indeling is: /subscriptions/subscriptionId/resourcegroups/resourceGroup/providers/microsoft. OperationalInsights/components/componentName.

    Bijvoorbeeld:

    app("/subscriptions/b459b4f6-912x-46d5-9cb1-b43069212ab4/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp").requests | count
    

Een query uitvoeren op meerdere resources

U kunt query's uitvoeren op meerdere resources van uw resource-exemplaren. Dit kunnen werkruimten en apps zijn gecombineerd.

Voorbeeld voor query's in twee werkruimten:

union Update, workspace("contosoretail-it").Update, workspace("b459b4u5-912x-46d5-9cb1-p43069212nb4").Update
| where TimeGenerated >= ago(1h)
| where UpdateState == "Needed"
| summarize dcount(Computer) by Classification

Query's op meerdere resources gebruiken voor meerdere resources

Wanneer u query's op meerdere resources gebruikt om gegevens uit meerdere Log Analytics-werkruimten en Application Insights-resources te correleren, kan de query complex en moeilijk te onderhouden zijn. U moet gebruikmaken van functies in Azure Monitor logboekquery's om de querylogica te scheiden van het bereik van de querybronnen, waardoor de querystructuur wordt vereenvoudigd. In het volgende voorbeeld ziet u hoe u meerdere Application Insights-resources kunt bewaken en het aantal mislukte aanvragen kunt visualiseren op toepassingsnaam.

Maak een query zoals hieronder die verwijst naar het bereik van Application Insights resources. Met withsource= SourceApp de opdracht wordt een kolom toegevoegd die de toepassingsnaam aanwijzen die het logboek heeft verzonden. Sla de query op als functie met de aliastoepassingenScoping.

// crossResource function that scopes my Application Insights resources
union withsource= SourceApp
app('Contoso-app1').requests, 
app('Contoso-app2').requests,
app('Contoso-app3').requests,
app('Contoso-app4').requests,
app('Contoso-app5').requests

U kunt deze functie nu gebruiken in een query op andere resources, zoals de volgende. De functiealias applicationsScoping retourneert de union van de tabel requests van alle gedefinieerde toepassingen. De query filtert vervolgens op mislukte aanvragen en visualiseert de trends per toepassing. De parse-operator is in dit voorbeeld optioneel. De toepassingsnaam wordt geëxtraheert uit de eigenschap SourceApp.

applicationsScoping 
| where timestamp > ago(12h)
| where success == 'False'
| parse SourceApp with * '(' applicationName ')' * 
| summarize count() by applicationName, bin(timestamp, 1h) 
| render timechart

Notitie

Deze methode kan niet worden gebruikt met logboekwaarschuwingen omdat de toegangsvalidatie van de waarschuwingsregelbronnen, inclusief werkruimten en toepassingen, wordt uitgevoerd tijdens het maken van waarschuwingen. Het toevoegen van nieuwe resources aan de functie nadat de waarschuwing is gemaakt, wordt niet ondersteund. Als u de functie liever gebruikt voor het bereik van resources in logboekwaarschuwingen, moet u de waarschuwingsregel bewerken in de portal of met een Resource Manager-sjabloon om de resources binnen het bereik bij te werken. U kunt ook de lijst met resources opnemen in de logboekwaarschuwingsquery.

Tijdsdiagram

Volgende stappen