Freigeben über


Bereitstellen von Einblickressourcen und Einrichten von Protokollen

Observability bietet Einblick in jede Ebene Ihrer Azure IoT Operations-Konfiguration. Sie erhalten Einblicke in das tatsächliche Verhalten von Problemen, wodurch die Effektivität des Zuverlässigkeits-Engineerings von Standorten erhöht wird. Azure IoT Operations bietet Observability über benutzerdefinierte kuratierte Grafana-Dashboards, die in Azure gehostet werden. Diese Dashboards werden von dem Azure Monitor verwalteter Dienst für Prometheus und von Container Insights unterstützt. In dieser Anleitung erfahren Sie, wie Sie Azure Managed Prometheus und Grafana einrichten und die Überwachung für Ihren Azure Arc-Cluster aktivieren.

Führen Sie die Schritte in diesem Artikel aus, bevor Sie Azure IoT Einsatz in Ihrem Cluster bereitstellen.

Voraussetzungen

Erstellen von Ressourcen in Azure

  1. Registrieren Sie Anbieter für das Abonnement, in dem sich Ihr Cluster befindet.

    Hinweis

    Dieser Schritt muss nur einmal pro Abonnement durchgeführt werden. Zum Registrieren von Ressourcenanbietern benötigen Sie die Berechtigung zum Ausführen des /register/action-Vorgangs, welche in den Rollen „Mitwirkender“ und „Besitzer“ des Abonnements enthalten ist. Weitere Informationen finden Sie unter Azure-Ressourcenanbieter und -typen.

    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. Installieren Sie Azure CLI-Erweiterungen für die Metriksammlung für Azure Arc-fähige Cluster und Azure Managed Grafana.

    az extension add --name k8s-extension
    az extension add --name amg
    
  3. Erstellen Sie einen Azure Monitor-Arbeitsbereich, um die Metrikerfassung für Ihren Azure Arc-fähigen Kubernetes-Cluster zu aktivieren.

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

    Speichern Sie die Azure Monitor-Arbeitsbereich-ID aus der Ausgabe dieses Befehls. Sie verwenden die ID, wenn Sie im nächsten Abschnitt die Metrikerfassung aktivieren.

  4. Erstellen Sie eine Azure Managed Grafana-Instanz, um Ihre Prometheus-Metriken zu visualisieren.

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

    Speichern Sie die Grafana-ID aus der Ausgabe dieses Befehls. Sie verwenden die ID, wenn Sie im nächsten Abschnitt die Metrikerfassung aktivieren.

  5. Erstellen Sie einen Log Analytics-Arbeitsbereich für Container Insights.

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

    Speichern Sie die Log Analytics-Arbeitsbereichs-ID aus der Ausgabe dieses Befehls. Sie verwenden die ID, wenn Sie im nächsten Abschnitt die Metrikerfassung aktivieren.

Aktivieren Sie die Metrikerfassung für den Cluster

Aktualisieren Sie den Azure Arc-Cluster, um Metriken zu sammeln und sie an den zuvor erstellten Azure Monitor-Arbeitsbereich zu senden. Sie verknüpfen diesen Arbeitsbereich auch mit der Grafana-Instanz.

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>

Aktivieren Sie die Container-Insights-Protokolle für die Protokollsammlung.

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>

Sobald diese Schritte abgeschlossen sind, haben Sie sowohl Azure Monitor als auch Grafana eingerichtet und mit Ihrem Cluster für Einblicke und Metrikerfassung verknüpft.

Bereitstellen eines OpenTelemetry Collector

Definieren und implementieren Sie einen OpenTelemetry (OTel)-Collector in Ihrem Arc-fähigen Kubernetes-Cluster.

  1. Erstellen Sie eine Datei namens otel-collector-values.yaml, und fügen Sie den folgenden Code ein, um einen OpenTelemetry Collector zu definieren:

    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. Notieren Sie sich die folgenden Werte der Datei otel-collector-values.yaml, die Sie im Befehl az iot ops create beim Bereitstellen von Azure IoT Einsatz im Cluster verwenden:

    • fullnameOverride
    • grpc.endpoint
    • check_interval
  3. Speichern und schließen Sie die Datei.

  4. Stellen Sie den Collector bereit, indem Sie die folgenden Befehle ausführen:

    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
    

Konfigurieren der Prometheus-Metriksammlung

Konfigurieren Sie die Prometheus-Metriksammlung auf Ihrem Cluster.

  1. Erstellen Sie eine Datei namens ama-metrics-prometheus-config.yaml, und fügen Sie die folgende Konfiguration ein:

    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. Wenden Sie die Konfigurationsdatei an, indem Sie den folgenden Befehl ausführen:

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

Bereitstellen von Dashboards in Grafana

Azure IoT Operations bietet ein Beispiel-Dashboard, das Ihnen viele der Visualisierungen bietet, die Sie benötigen, um den Zustand und die Leistung Ihrer Azure IoT Einsatz-Bereitstellung zu verstehen.

Führen Sie die folgenden Schritte aus, um die von Azure IoT Operations kuratierten Grafana-Dashboards zu installieren.

  1. Klonen oder downloaden Sie das azure-iot-operations-Repository, um die Grafana-Dashboard-JSON-Beispieldatei lokal zu erhalten: https://github.com/Azure/azure-iot-operations.

  2. Melden Sie sich bei der Grafana-Konsole an. Sie können über das Azure-Portal auf die Konsole zugreifen oder den Befehl az grafana show verwenden, um die URL abzurufen.

    az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
    
  3. Wählen Sie in der Grafana-Anwendung das Symbol + aus.

  4. Wählen Sie Dashboard importieren aus.

  5. Navigieren Sie zum Beispieldashboardverzeichnis in Ihrer lokalen Kopie des Azure IoT Einsatz-Repositories: azure-iot-operations>samples>grafana-dashboard, und wählen Sie dann die Dashboarddatei aio.sample.json aus.

  6. Wenn die Anwendung dazu auffordert, wählen Sie Ihre verwaltete Prometheus-Datenquelle aus.

  7. Klicken Sie auf Importieren.