Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Se kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure för juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet.
Den här guiden beskriver hur du aktiverar arbetsbelastningar i Azure Monitor Application Insights för Azure Kubernetes Service (AKS) utan att ändra källkoden.
Vi går igenom hur du installerar Azure CLI-tillägget aks-preview, registrerar funktionsflaggan AzureMonitorAppMonitoringPreview, förbereder ett kluster, registrerar distributioner och startar om distributioner. De här stegen resulterar i automatisk instrumentering som matar in Azure Monitor OpenTelemetry Distro i programpoddar för att generera telemetri. Mer information om autoinstrumentation och dess fördelar finns i Vad är autoinstrumentation för Azure Monitor Application Insights?.
Förutsättningar
- Ett AKS-kluster som kör en kubernetes-distribution med java eller Node.js i det offentliga Azure-molnet
- En arbetsytebaserad Application Insights-resurs.
- Azure CLI 2.60.0 eller senare. Mer information finns i Installera Azure CLI, Vilken version av Azure CLI är installerad?, och Så här uppdaterar du Azure CLI.
Varning
- Den här funktionen är inte kompatibel med både Windows -nodpooler (valfri arkitektur) och Linux Arm64-nodpooler.
Installera Azure CLI-tillägget aks-preview
Viktigt!
AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "som är" och "som tillgängliga", och de undantas från serviceavtalen och den begränsade garantin. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:
              aks-preview Installera tillägget:
az extension add --name aks-preview
Uppdatera till den senaste versionen av tillägget:
az extension update --name aks-preview
Kontrollera att den installerade Azure CLI-versionen uppfyller kraven i avsnittet Krav :
az version
Om versionen inte uppfyller kraven följer du stegen som nämndes tidigare för att installera och uppdatera Azure CLI.
Registrera funktionsflaggan AzureMonitorAppMonitoringPreview
# Log into Azure CLI
az login
# Register the feature flag for Azure Monitor App Monitoring in preview
az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorAppMonitoringPreview"
# List the registration state of the Azure Monitor App Monitoring Preview feature
# It could take hours for the registration state to change from Registering to Registered
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AzureMonitorAppMonitoringPreview')].{Name:name,State:properties.state}"
# Once the feature shows as Registered in the prior step, re-register the Microsoft.ContainerService provider to apply the new feature settings
az provider register --namespace "Microsoft.ContainerService"
# Check the registration state of the Microsoft.ContainerService provider
az provider show --namespace "Microsoft.ContainerService" --query "registrationState"
Förbered ett kluster
Kör följande Azure CLI-kommando för att förbereda ett kluster.
az aks update --resource-group={resource_group} --name={cluster_name} --enable-azure-monitor-app-monitoring 
Tips/Råd
AKS-kluster kan förberedas för den här funktionen när klustret skapas. Mer information finns i Förbereda ett kluster under AKS-klusterskapande.
Införliva distributioner
Distributioner kan registreras på två sätt: namnområdesomfattande eller per distribution. Använd metoden namespace-wide för att registrera alla distributioner i ett namnområde. För selektiv eller variabelt konfigurerad onboarding över flera implementeringar, använd per-implementeringsmetoden.
Namnområdesomfattande registrering
Om du vill registrera alla distributioner i ett namnområde skapar du en anpassad instrumentationsresurs med namnet default i varje namnområde. Uppdatera applicationInsightsConnectionString för att ha anslutningssträngen för Application Insights-resursen.
Tips/Råd
Du kan hämta anslutningssträngen från översiktssidan för application insights-resursen.
apiVersion: monitor.azure.com/v1
kind: Instrumentation
metadata:
  name: default
  namespace: mynamespace1
spec:
  settings:
    autoInstrumentationPlatforms: []
  destination: # required
    applicationInsightsConnectionString: "InstrumentationKey=11111111-1111-1111-1111-111111111111;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/"
Minst krävs följande konfiguration:
- 
              spec.settings.autoInstrumentationPlatforms: Ett eller flera värden baserat på de språk som poddarna kör.
- 
              spec.destination.applicationInsightsConnectionString: Anslutningssträngen för en Application Insights-resurs.
Tips/Råd
- Använd anteckningar om åsidosättningar per distribution krävs. Mer information finns i anteckningar.
- Starta om distributioner för att inställningarna ska börja gälla.
Registrering per distribution
Använd onboarding per distribution för att säkerställa att distributioner instrumenteras med specifika språk eller för att dirigera telemetri till separata Application Insights-resurser.
- Skapa en unik anpassad instrumentationsresurs för varje scenario. Undvik att använda namnet - default, som används för registrering i hela namnområdet.- Skapa anpassade instrumentationsresurser för att konfigurera Application Insights i varje namnområde. Uppdatera - applicationInsightsConnectionStringför att ha anslutningssträngen för Application Insights-resursen.- Tips/Råd - Du kan hämta anslutningssträngen från översiktssidan för application insights-resursen. - apiVersion: monitor.azure.com/v1 kind: Instrumentation metadata: name: cr1 namespace: mynamespace1 spec: settings: autoInstrumentationPlatforms: [] destination: # required applicationInsightsConnectionString: "InstrumentationKey=11111111-1111-1111-1111-111111111111;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/"- Minst krävs följande konfiguration: - 
              spec.destination.applicationInsightsConnectionString: Anslutningssträngen för en Application Insights-resurs.
 
- 
              
- Associera varje distribution med lämplig anpassad resurs med hjälp av anteckningar. Anteckningen åsidosätter språket som angetts i den anpassade resursen. - Viktigt! - För att undvika att lägga till dem i distributionens anteckningar av misstag lägger du till anteckningar på - spec.template.metadata.annotationsdistributionsnivån.- Exempel: - Java: instrumentation.opentelemetry.io/inject-java: "cr1"
- Node.js: instrumentation.opentelemetry.io/inject-nodejs: "cr1"
 - Anteckningsplacering bör se ut så här. - apiVersion: apps/v1 kind: Deployment ... spec: template: metadata: annotations: instrumentation.opentelemetry.io/inject-nodejs: "cr1"
- Java: 
Tips/Råd
Starta om distributioner för att inställningarna ska börja gälla.
Introduktion i blandat läge
Använd blandat läge när de flesta distributioner använder en standardkonfiguration och några distributioner måste använda olika konfigurationer.
- Implementera namnområdesomfattande registrering för att definiera standardkonfigurationen.
- Skapa onboarding-konfigurationer per distribution , vilket åsidosätter standardkonfigurationen för specifika resurser.
Starta om distributionen
Kör följande kommando efter att alla anpassade resurser har skapats och distributioner eventuellt har kommenterats.
kubectl rollout restart deployment <deployment-name> -n mynamespace1
Det här kommandot gör att autoinstrumentation börjar gälla, vilket aktiverar Application Insights. Du kan kontrollera att Application Insights är aktiverat genom att generera trafik och navigera till resursen. Din app representeras som en molnroll i Application Insights-upplevelser. Du kan använda alla Application Insights-upplevelser förutom livemått och application insights-funktioner för kodanalys. Läs mer om tillgängliga Application Insights-upplevelser här.
Ta bort autoinstrumentation i AKS
Se till att du inte har några instrumenterade utplaceringar. För att avinstrumentera en instrumenterad distribution, ta bort den anpassade instrumentationsresursen och kör kubectl rollout restart på distributionen. Kör sedan följande kommando.
az aks update --resource-group={resource_group} --name={cluster_name} --disable-azure-monitor-app-monitoring 
Anmärkning
Om instrumenterade distributioner kvarstår när funktionen har inaktiverats fortsätter de att instrumenteras tills de distribueras om till sitt ursprungliga oinstrumenterade tillstånd eller tas bort.
Anteckningar
Inaktivera automatisk instrumentering
Följande anteckningar inaktiverar autoinstrumentation för det angivna språket.
- Java: - instrumentation.opentelemetry.io/inject-java
- Node.js: - instrumentation.opentelemetry.io/inject-nodejs- instrumentation.opentelemetry.io/inject-java: "false"
Aktivera automatisk instrumentering igen efter inaktivering.
instrumentation.opentelemetry.io/inject-java: "true"
Anteckningsplacering bör se ut så här.
apiVersion: apps/v1
kind: Deployment
...
spec:
  template:
    metadata:
      annotations:
        instrumentation.opentelemetry.io/inject-java: "false"
Aktivera loggar i Application Insights
Du kan välja att samla in loggar i Application Insights som ett tillägg till eller ersättning för Container Insights-loggar.
Aktivering av loggar i Application Insights ger korrelerade loggar så att användarna enkelt kan visa distribuerade spårningar tillsammans med sina relaterade loggar. Dessutom skriver vissa mikrotjänster inte loggar till konsolen så Container Insights kan inte samla in dem och endast Application Insights-instrumentation samlar in dessa loggar.
Application Insights kanske inte kan instrumentera alla mikrotjänster. Till exempel de som använder NGINX eller språk som inte stöds. Användare kanske föredrar att endast förlita sig på containerloggar för sådana mikrotjänster.
Du kan också välja att aktivera båda källorna för loggar om du har flera team för observerbarhet, till exempel infrastrukturtekniker som använder Container Insights och utvecklare som använder Application Insights.
Granska konfigurationerna för konsolloggning i programmets kod för att avgöra om du vill aktivera Application Insights-loggar, containerloggar eller båda. Om du inaktiverar insamling av containerloggar kan du se Filtrera insamling av containerloggar med ConfigMap.
Viktigt!
För att undvika onödig duplicering och ökade kostnader aktiverar du loggar i Application Insights så att funktionen kan samla in programloggar från standardloggningsramverk och skicka dem till Application Insights.
Använd följande kommentar för att aktivera loggar i Application Insights
- monitor.azure.com/enable-application-logs
Viktigt!
För att undvika att lägga till dem i distributionens anteckningar av misstag lägger du till anteckningar på spec.template.metadata.annotations distributionsnivån.
monitor.azure.com/enable-application-logs: "true"
Förbereda ett kluster när AKS-kluster skapas
AKS-kluster kan förberedas för den här funktionen när klustret skapas. Kör följande Azure CLI-kommando om du föredrar att ha klustret förberett när du skapar det. Programövervakning är inte aktiverat bara för att klustret är förberett. Du måste distribuera ett program och registrera programmet för den här funktionen.
az aks create --resource-group={resource_group} --name={cluster_name} --enable-azure-monitor-app-monitoring --generate-ssh-keys
Nästa steg
- Mer information om vanliga frågor och svar finns i Autoinstrumentation for Azure Kubernetes Service FAQ (Autoinstrumentation för Azure Kubernetes Service)
- Mer information om vår dedikerade felsökningsguide finns i Felsöka automatisk instrumentering för Azure Kubernetes Service.
- Läs mer om Azure Monitor och Application Insights.
- Se vad programkarta kan göra för ditt företag.