Dela via


Distribuera observerbarhetsresurser och konfigurera loggar

Viktigt!

Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc är för närvarande i förhandsversion. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.

Du måste distribuera en ny Azure IoT Operations-installation när en allmänt tillgänglig version blir tillgänglig. Du kommer inte att kunna uppgradera en förhandsgranskningsinstallation.

Juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller som ännu inte har släppts i allmän tillgänglighet finns i Kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.

Observerbarhet ger insyn i varje lager i din Azure IoT Operations-konfiguration. Det ger dig insikt i det faktiska beteendet för problem, vilket ökar effektiviteten i platstillförlitlighetstekniken. Azure IoT Operations erbjuder observerbarhet via anpassade utvalda Grafana-instrumentpaneler som finns i Azure. Dessa instrumentpaneler drivs av Azure Monitor-hanterad tjänst för Prometheus och Container Insights. Den här guiden visar hur du konfigurerar Azure Managed Prometheus och Grafana och aktiverar övervakning för ditt Azure Arc-kluster.

Slutför stegen i den här artikeln innan du distribuerar Azure IoT Operations till klustret.

Förutsättningar

Skapa resurser i Azure

  1. Registrera leverantörer med prenumerationen där klustret finns.

    Kommentar

    Det här steget behöver bara köras en gång per prenumeration. Om du vill registrera resursprovidrar behöver du behörighet att utföra åtgärden /register/action , som ingår i rollerna deltagare och ägare i prenumerationen. Mer information finns i Azure-resursprovidrar och typer.

    az account set -s <SUBSCRIPTION_ID>
    az provider register --namespace Microsoft.AlertsManagement
    az provider register --namespace Microsoft.Monitor
    az provider register --namespace Microsoft.Dashboard
    az provider register --namespace Microsoft.Insights
    az provider register --namespace Microsoft.OperationalInsights
    
  2. Installera Azure CLI-tillägg för insamling av mått för Azure Arc-aktiverade kluster och Azure Managed Grafana.

    az extension add --name k8s-extension
    az extension add --name amg
    
  3. Skapa en Azure Monitor-arbetsyta för att aktivera måttinsamling för ditt Azure Arc-aktiverade Kubernetes-kluster.

    az monitor account create --name <WORKSPACE_NAME> --resource-group <RESOURCE_GROUP> --location <LOCATION> --query id -o tsv
    

    Spara Azure Monitor-arbetsyte-ID:t från utdata från det här kommandot. Du använder ID:t när du aktiverar insamling av mått i nästa avsnitt.

  4. Skapa en Azure Managed Grafana-instans för att visualisera dina Prometheus-mått.

    az grafana create --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv
    

    Spara Grafana-ID:t från utdata från det här kommandot. Du använder ID:t när du aktiverar insamling av mått i nästa avsnitt.

  5. Skapa en Log Analytics-arbetsyta för Container Insights.

    az monitor log-analytics workspace create -g <RESOURCE_GROUP> -n <LOGS_WORKSPACE_NAME> --query id -o tsv
    

    Spara Log Analytics-arbetsytans ID från utdata från det här kommandot. Du använder ID:t när du aktiverar insamling av mått i nästa avsnitt.

Aktivera insamling av mått för klustret

Uppdatera Azure Arc-klustret för att samla in mått och skicka dem till den tidigare skapade Azure Monitor-arbetsytan. Du länkar även den här arbetsytan till Grafana-instansen.

az k8s-extension create --name azuremonitor-metrics --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<AZURE_MONITOR_WORKSPACE_ID> grafana-resource-id=<GRAFANA_ID>

Aktivera Container Insights-loggar för logginsamling.

az k8s-extension create --name azuremonitor-containers --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID=<LOG_ANALYTICS_WORKSPACE_ID>

När de här stegen har slutförts har du både Azure Monitor och Grafana konfigurerade och länkade till klustret för observerbarhet och måttinsamling.

Distribuera OpenTelemetry Collector

Definiera och distribuera en OpenTelemetry-insamlare (OTel) till ditt Arc-aktiverade Kubernetes-kluster.

  1. Skapa en fil med namnet otel-collector-values.yaml och klistra in följande kod i den för att definiera en OpenTelemetry-insamlare:

    mode: deployment
    fullnameOverride: aio-otel-collector
    image:
      repository: otel/opentelemetry-collector
      tag: 0.107.0
    config:
      processors:
        memory_limiter:
          limit_percentage: 80
          spike_limit_percentage: 10
          check_interval: '60s'
      receivers:
        jaeger: null
        prometheus: null
        zipkin: null
        otlp:
          protocols:
            grpc:
              endpoint: ':4317'
            http:
              endpoint: ':4318'
      exporters:
        prometheus:
          endpoint: ':8889'
          resource_to_telemetry_conversion:
            enabled: true
          add_metric_suffixes: false
      service:
        extensions:
          - health_check
        pipelines:
          metrics:
            receivers:
              - otlp
            exporters:
              - prometheus
          logs: null
          traces: null
        telemetry: null
      extensions:
        memory_ballast:
          size_mib: 0
    resources:
      limits:
        cpu: '100m'
        memory: '512Mi'
    ports:
      metrics:
        enabled: true
        containerPort: 8889
        servicePort: 8889
        protocol: 'TCP'
      jaeger-compact:
        enabled: false
      jaeger-grpc:
        enabled: false
      jaeger-thrift:
        enabled: false
      zipkin:
        enabled: false
    
  2. otel-collector-values.yaml Anteckna följande värden i filen som du använder i az iot ops create kommandot när du distribuerar Azure IoT Operations i klustret:

    • fullnameOverride
    • grpc.endpoint
    • check_interval
  3. Spara och stäng filen.

  4. Distribuera insamlaren genom att köra följande kommandon:

    kubectl get namespace azure-iot-operations || kubectl create namespace azure-iot-operations
    helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
    
    helm repo update
    helm upgrade --install aio-observability open-telemetry/opentelemetry-collector -f otel-collector-values.yaml --namespace azure-iot-operations
    

Konfigurera Prometheus-måttsamling

Konfigurera Prometheus-måttsamling i klustret.

  1. Skapa en fil med namnet ama-metrics-prometheus-config.yaml och klistra in följande konfiguration:

    apiVersion: v1
    data:
      prometheus-config: |2-
        scrape_configs:
          - job_name: otel
            scrape_interval: 1m
            static_configs:
              - targets:
                - aio-otel-collector.azure-iot-operations.svc.cluster.local:8889
          - job_name: aio-annotated-pod-metrics
            kubernetes_sd_configs:
              - role: pod
            relabel_configs:
              - action: drop
                regex: true
                source_labels:
                  - __meta_kubernetes_pod_container_init
              - action: keep
                regex: true
                source_labels:
                  - __meta_kubernetes_pod_annotation_prometheus_io_scrape
              - action: replace
                regex: ([^:]+)(?::\\d+)?;(\\d+)
                replacement: $1:$2
                source_labels:
                  - __address__
                  - __meta_kubernetes_pod_annotation_prometheus_io_port
                target_label: __address__
              - action: replace
                source_labels:
                  - __meta_kubernetes_namespace
                target_label: kubernetes_namespace
              - action: keep
                regex: 'azure-iot-operations'
                source_labels:
                  - kubernetes_namespace
            scrape_interval: 1m
    kind: ConfigMap
    metadata:
      name: ama-metrics-prometheus-config
      namespace: kube-system
    
  2. Använd konfigurationsfilen genom att köra följande kommando:

    kubectl apply -f ama-metrics-prometheus-config.yaml
    

Distribuera instrumentpaneler till Grafana

Azure IoT Operations innehåller en exempelinstrumentpanel som är utformad för att ge dig många av de visualiseringar som du behöver för att förstå hälsotillståndet och prestandan för din Azure IoT Operations-distribution.

Utför följande steg för att installera Azure IoT Operations-kurerade Grafana-instrumentpaneler.

  1. Klona eller ladda ned lagringsplatsen azure-iot-operations för att hämta grafana-instrumentpanelens exempel-json-fil lokalt: https://github.com/Azure/azure-iot-operations.

  2. Logga in på Grafana-konsolen. Du kan komma åt konsolen via Azure Portal eller använda az grafana show kommandot för att hämta URL:en.

    az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
    
  3. I Grafana-programmet väljer du + ikonen.

  4. Välj Importera instrumentpanel.

  5. Bläddra till exempelkatalogen för instrumentpanelen i din lokala kopia av Azure IoT Operations-lagringsplatsen, azure-iot-operations>samples>grafana-dashboard och välj sedan instrumentpanelsfilen.aio.sample.json

  6. När programmet frågar väljer du din hanterade Prometheus-datakälla.

  7. Välj Importera.