Share via


Waarneembaarheidsbronnen implementeren en logboeken instellen

Azure IoT Operations waarneembaarheid biedt inzicht in elke laag van uw configuratie en 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, mogelijk gemaakt door beheerde Azure Monitor-service voor Prometheus en Container Insights.

In dit artikel wordt beschreven hoe u waarneembaarheidsresources voor Azure IoT Operations implementeert, Azure Managed Prometheus en Grafana instelt en uitgebreide bewaking voor uw Azure Arc-cluster inschakelt.

Vereisten

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

Resources maken in Azure

  1. Registreer providers bij het abonnement waar uw cluster zich bevindt.

    Notitie

    Voer deze stap slechts één keer per abonnement uit. 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 --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. Installeer Azure CLI-extensies voor metrische gegevensverzameling voor clusters met Azure Arc en Azure Managed Grafana.

    az extension add --upgrade --name k8s-extension
    az extension add --upgrade --name amg
    
  3. Maak een Azure Monitor-werkruimte om metrische verzameling in te schakelen voor uw Kubernetes-cluster met Azure Arc.

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

    Sla de Azure Monitor-werkruimte-id op uit de uitvoer van deze opdracht. U gebruikt de id wanneer u verzameling metrische gegevens inschakelt in de volgende sectie.

  4. Maak een Azure Managed Grafana-exemplaar om uw prometheus-metrische gegevens te visualiseren.

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

    Sla de Grafana-id op uit de uitvoer van deze opdracht. U gebruikt de id wanneer u verzameling metrische gegevens inschakelt in de volgende sectie.

  5. Maak een Log Analytics-werkruimte voor Container Insights.

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

    Sla de Log Analytics-werkruimte-id op uit de uitvoer van deze opdracht. U gebruikt de id wanneer u verzameling metrische gegevens inschakelt in de volgende sectie.

Verzameling metrische gegevens inschakelen voor het cluster

Werk het Azure Arc-cluster bij om metrische gegevens te verzamelen en naar de Azure Monitor-werkruimte te verzenden die u hebt gemaakt. U koppelt deze werkruimte ook aan het Grafana-exemplaar.

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>

Schakel Container Insights-logboeken in voor logboekverzameling.

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>

Nadat u deze stappen hebt voltooid, hebt u zowel Azure Monitor als Grafana ingesteld en gekoppeld aan uw cluster voor waarneembaarheid en metrische gegevensverzameling.

OpenTelemetry Collector implementeren

Definieer en implementeer een OTel-collector (OpenTelemetry) in uw Kubernetes-cluster met Arc.

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

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

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

Verzameling metrische gegevens van Prometheus configureren

Configureer de verzameling metrische gegevens van Prometheus in uw cluster.

  1. Maak een bestand met de naam ama-metrics-prometheus-config.yaml en plak de volgende configuratie:

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

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

Waarneembaarheidsconfiguratie instellen

U kunt de waarneembaarheidsconfiguratie van uw Azure IoT Operations-implementatie op elk gewenst moment instellen. Zodra waarneembaarheidsresources zijn geconfigureerd, kunt u de configuratie voor waarneembaarheid bijwerken door de az iot ops upgrade opdracht uit te voeren met de --ops-config parameter om de nieuwe configuratiewaarden op te geven.

az iot ops upgrade --resource-group <rg name> -n <instance name> --ops-config observability.metrics.openTelemetryCollectorAddress=<>
Kenmerk Waarde Beschrijving
--ops-config observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT> Geef het adres van de OTel-collector (OpenTelemetry) op dat u hebt geconfigureerd in het bestand otel-collector-values.yaml.

In de instructies in dit artikel worden de voorbeeldwaarden fullnameOverride=aio-otel-collector en grpc.endpoint=4317 gebruikt.
--ops-config observability.metrics.exportInternalSeconds=<CHECK_INTERVAL> Geef de check_interval waarde op die u hebt geconfigureerd in het bestand otel-collector-values.yaml.

In de instructies in dit artikel wordt de voorbeeldwaarde check_interval=60 gebruikt.

Notitie

In preview-versies werkt de opdracht niet voor het az iot ops upgrade upgraden naar een preview-versie, maar het werkt voor het configureren van de Azure IoT-bewerkingen voor waarneembaarheid.

Dashboards implementeren in Grafana

Azure IoT Operations biedt een voorbeelddashboard dat is ontworpen voor een groot aantal visualisaties 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. Kloon of download de opslagplaats azure-iot-operations om het JSON-voorbeeldbestand Grafana Dashboard lokaal op te halen: https://github.com/Azure/azure-iot-operations

  2. Meld u aan bij de Grafana-console. U kunt de console openen via Azure Portal of de az grafana show opdracht gebruiken om de URL op te halen.

    az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
    
  3. Selecteer op de landingspagina van Grafana de tegel Uw eerste dashboard maken .

  4. Selecteer Dashboard importeren.

  5. Blader naar de voorbeelddashboardmap in uw lokale kopie van de Azure IoT Operations-opslagplaats, azure-iot-operations>samples>grafana-dashboard en selecteer vervolgens het aio.sample.json dashboardbestand.

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

  7. Selecteer Importeren.