Delen via


Aan de slag: waarneembaarheid configureren met een script in Azure IoT Operations Preview

Belangrijk

Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in preview. Gebruik deze preview-software niet in productieomgevingen.

U moet een nieuwe Azure IoT Operations-installatie implementeren wanneer er een algemeen beschikbare release beschikbaar wordt gesteld. U kunt geen preview-installatie upgraden.

Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.

Waarneembaarheid biedt inzicht in elke laag van uw Azure IoT Operations-configuratie. Het geeft u inzicht in het werkelijke gedrag van problemen, waardoor de effectiviteit van sitebetrouwbaarheidstechniek wordt verhoogd. Azure IoT Operations biedt waarneembaarheid via aangepaste gecureerde Grafana-dashboards die worden gehost in Azure. Deze dashboards worden mogelijk gemaakt door de beheerde Azure Monitor-service voor Prometheus en Container Insights. In dit artikel leest u hoe u de services configureert die u nodig hebt voor waarneembaarheid.

Vereisten

  • Een Kubernetes-cluster met Arc.
  • Helm is geïnstalleerd op uw ontwikkelcomputer. Zie Helm installeren voor instructies.
  • Kubectl is geïnstalleerd op uw ontwikkelcomputer. Zie Kubernetes-hulpprogramma's installeren voor instructies.
  • Azure CLI is geïnstalleerd op uw ontwikkelcomputer. Zie De Azure CLI installeren voor meer informatie.

Uw abonnement configureren

Voer de volgende code uit om providers te registreren bij het abonnement waar uw cluster zich bevindt.

Notitie

Deze stap hoeft slechts één keer per abonnement te worden uitgevoerd. Als u resourceproviders wilt registreren, moet u gemachtigd zijn om de /register/action bewerking uit te voeren, die is opgenomen in de rollen Inzender en Eigenaar van het abonnement. Zie Azure-resourceproviders en -typen voor meer informatie.

az account set -s <subscription-id>
az provider register -n "Microsoft.Insights"
az provider register -n "Microsoft.AlertsManagement"

Waarneembaarheidsonderdelen installeren

Met de stappen in deze sectie implementeert u een OTelemetry Collector (OpenTelemetry) en installeert u vervolgens gedeelde bewakingsbronnen en configureert u uw Arc-cluster om waarneembaarheidssignalen naar deze resources te verzenden. De gedeelde bewakingsbronnen omvatten Azure Managed Grafana, Azure Monitor-werkruimte, Azure Managed Prometheus, Azure Log Analytics en Container Insights.

OpenTelemetry Collector implementeren

  1. Kloon of download de Azure IoT Operations-opslagplaats naar uw lokale computer: azure-iot-operations.git.

    Notitie

    De opslagplaats bevat de implementatiedefinitie van Azure IoT-bewerkingen en voorbeelden die de voorbeelddashboards bevatten die in dit artikel worden gebruikt.

  2. Blader naar het volgende pad in uw lokale kopie van de opslagplaats:

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

  3. Maak een bestand met de naam otel-collector-values.yaml en plak de volgende code erin om een OpenTelemetry Collector te definiëren:

    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. Noteer in het otel-collector-values.yaml bestand de volgende waarden die u in de opdracht gebruikt bij het az iot ops init implementeren van Azure IoT-bewerkingen op het cluster:

    • fullnameOverride
    • grpc.endpoint
    • check_interval
  5. Sla het bestand op en sluit het bestand.

  6. Implementeer de collector door de volgende opdrachten uit te voeren:

    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
    

Waarneembaarheidsonderdelen implementeren

  • Implementeer de waarneembaarheidsonderdelen door een van de volgende opdrachten uit te voeren. Gebruik de abonnements-id en resourcegroep van het cluster met Arc dat u wilt bewaken.

    Notitie

    Als u andere optionele parameters wilt detecteren die u kunt instellen, raadpleegt u het bicep-bestand. De optionele parameters kunnen bijvoorbeeld alternatieve locaties voor clusterbronnen opgeven.

    Met de volgende opdracht verleent u beheerderstoegang voor het zojuist gemaakte Grafana-exemplaar aan de gebruiker:

    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
    

    Als deze toegang niet is wat u wilt, voert u de volgende opdracht uit die geen machtigingen configureert. Stel vervolgens handmatig machtigingen in met behulp van roltoewijzingen voordat iedereen toegang heeft tot het Grafana-exemplaar. Wijs een van de Grafana-rollen (Grafana Admin, Grafana Editor, Grafana Viewer) toe, afhankelijk van het gewenste toegangsniveau.

    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
    

    Als de implementatie slaagt, worden enkele stukjes informatie aan het einde van de opdrachtuitvoer afgedrukt. De informatie bevat de Grafana-URL en de resource-id's voor zowel de Log Analytics- als Azure Monitor-resources die zijn gemaakt. Met de Grafana-URL kunt u naar het Grafana-exemplaar gaan dat u configureert in Dashboards implementeren in Grafana. Met de twee resource-id's kunt u andere Arc-clusters configureren door de stappen in Een cluster met Arc toe te voegen aan een bestaande waarneembaarheidsinfrastructuur.

Verzameling metrische gegevens van Prometheus configureren

  1. Kopieer en plak de volgende configuratie in een nieuw bestand met de naam ama-metrics-prometheus-config.yamlen sla het bestand op:

    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. Pas het configuratiebestand toe door de volgende opdracht uit te voeren:

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

Dashboards implementeren in Grafana

Azure IoT Operations biedt een verzameling dashboards die zijn ontworpen om u veel van de visualisaties te bieden die u nodig hebt om inzicht te hebben in de status en prestaties van uw Azure IoT Operations-implementatie.

Voer de volgende stappen uit om de gecureerde Grafana-dashboards van Azure IoT Operations te installeren.

  1. Meld u aan bij de Grafana-console en selecteer vervolgens in de rechterbovenhoek van de Grafana-toepassing het + pictogram

  2. Selecteer Dashboard importeren, volg de aanwijzingen om naar het pad samples\grafana-dashboards in uw lokale gekloonde kopie van de opslagplaats te bladeren en selecteer een JSON-dashboardbestand

  3. Wanneer de toepassing hierom wordt gevraagd, selecteert u de beheerde Prometheus-gegevensbron

  4. Selecteer Importeren