Freigeben über


Erste Schritte: Konfigurieren der Einblicke mit einem Skript in Azure IoT Einsatz (Preview)

Wichtig

Die von Azure Arc unterstützte Vorschauversion von „Azure IoT Einsatz“ befindet sich derzeit in der Vorschauphase. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.

Sie müssen eine neue Installation von „Azure IoT Einsatz“ bereitstellen, wenn ein allgemein verfügbares Release verfügbar wird. Sie werden kein Upgrade für eine Preview-Installation durchführen können.

Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

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 diesem Artikel erfahren Sie, wie Sie die Dienste konfigurieren, die Sie für den Einblick benötigen.

Voraussetzungen

Konfigurieren Ihres Abonnements

Führen Sie den folgenden Code aus, um Anbieter für das Abonnement zu registrieren, 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 -n "Microsoft.Insights"
az provider register -n "Microsoft.AlertsManagement"

Observability-Komponenten installieren

Mit den Schritten in diesem Abschnitt wird ein OpenTelemetry (OTel) Collector bereitgestellt. Dann werden freigegebene Überwachungsressourcen installiert, und Ihr Arc-fähiger Cluster wird konfiguriert, um Einblicksignale an diese Ressourcen zu senden. Zu den freigegebenen Überwachungsressourcen gehören Azure Managed Grafana, Azure Monitor Workspace, Azure Managed Prometheus, Azure Log Analytics und Container Insights.

Bereitstellen eines OpenTelemetry Collector

  1. Klonen Sie das Repository von „Azure IoT Einsatz“, oder laden Sie es auf Ihren lokalen Computer herunter: azure-iot-operations.git.

    Hinweis

    Das Repository enthält die Bereitstellungsdefinition von Azure IoT Operations und Beispiele, die die in diesem Artikel verwendeten Beispieldashboards enthalten.

  2. Browsen Sie in Ihrer lokalen Kopie des Repositorys zum folgenden Pfad:

    azure-iot-operations\tools\setup-3p-obs-infra

  3. Erstellen Sie eine Datei namens otel-collector-values.yaml, und fügen Sie den folgenden Code in die Datei 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
      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
    
  4. Notieren Sie sich in der otel-collector-values.yaml-Datei die folgenden Werte, die Sie im az iot ops init-Befehl verwenden, wenn Sie „Azure IoT Einsatz“ im Cluster bereitstellen:

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

  6. 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
    

Bereitstellen von Einblickkomponenten

  • Führen Sie einen der folgenden Befehle aus, um die Einblickkomponenten bereitzustellen. Verwenden Sie die Abonnement-ID und Ressourcengruppe des Arc-fähigen Clusters, den Sie überwachen möchten.

    Hinweis

    Weitere optionale Parameter, die Sie festlegen können, finden Sie in der Bicep-Datei. Die optionalen Parameter können Elemente wie alternative Speicherorte für Clusterressourcen angeben.

    Der folgende Befehl gewährt dem Benutzer Administratorzugriff auf die neu erstellte Grafana-Instanz:

    az deployment group create \
         --subscription <subscription-id> \
         --resource-group <cluster-resource-group> \
         --template-file observability-full.bicep \
         --parameters grafanaAdminId=$(az ad user show --id $(az account show --query user.name --output tsv) --query=id --output tsv) \
                      clusterName=<cluster-name> \
                      sharedResourceGroup=<shared-resource-group> \
                      sharedResourceLocation=<shared-resource-location> \
         --query=properties.outputs
    

    Wenn dieser Zugriff nicht Ihren Vorstellungen entspricht, verwenden Sie den folgenden Befehl, der keine Berechtigungen konfiguriert. Richten Sie die Berechtigungen dann manuell mithilfe von Rollenzuweisungen ein, bevor andere Personen auf die Grafana-Instanz zugreifen können. Weisen Sie je nach gewünschter Zugriffsebene eine der Grafana-Rollen (Grafana Admin, Grafana Editor, Grafana Viewer) zu.

    az deployment group create \
         --subscription <subscription-id> \
         --resource-group <cluster-resource-group> \
         --template-file observability-full.bicep \
         --parameters clusterName=<cluster-name> \
                      sharedResourceGroup=<shared-resource-group> \
                      sharedResourceLocation=<shared-resource-location> \
          --query=properties.outputs
    

    Wenn die Bereitstellung erfolgreich ist, werden am Ende der Befehlsausgabe einige Informationen gedruckt. Die Informationen umfassen die Grafana-URL und die Ressourcen-IDs für die erstellten Log Analytics- und Azure Monitor-Ressourcen. Mit der Grafana-URL können Sie zu der Grafana-Instanz gehen, die Sie in Bereitstellen von Dashboards für Grafana konfigurieren. Mit den beiden Ressourcen-IDs können Sie andere Arc-aktivierte Cluster konfigurieren, indem Sie die Schritte unter Hinzufügen eines Arc-fähigen Clusters zu einer vorhandenen Observability-Infrastrukturausführen.

Konfigurieren der Prometheus-Metriksammlung

  1. Kopieren Sie die folgende Konfiguration, und fügen Sie sie in eine neue Datei mit dem Namen ama-metrics-prometheus-config.yaml ein, und speichern Sie die Datei:

    apiVersion: v1
    data:
      prometheus-config: |2-
        scrape_configs:
          - job_name: e4k
            scrape_interval: 1m
            static_configs:
              - targets:
                - aio-internal-diagnostics-service.azure-iot-operations.svc.cluster.local:9600
              - job_name: nats
                scrape_interval: 1m
                static_configs:
                - targets:
                  - aio-dp-msg-store-0.aio-dp-msg-store-headless.azure-iot-operations.svc.cluster.local:7777
              - 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 eine Sammlung von Dashboards, die Ihnen viele der Visualisierungen bieten, die Sie benötigen, um die Integrität und Leistung Ihrer Azure IoT Operations-Bereitstellung zu verstehen.

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

  1. Melden Sie sich bei der Grafana-Konsole an, und wählen Sie dann im oberen rechten Bereich der Grafana-Anwendung das + Symbol aus.

  2. Wählen Sie Dashboard importieren aus, und folgen Sie den Anweisungen, um zu dem samples\grafana-dashboards -Pfad in Ihrer lokalen geklonten Kopie des Repositorys zu navigieren, und wählen Sie eine JSON-Dashboarddatei aus

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

  4. Wählen Sie Importieren aus