Delen via


Waarneembaarheidsbronnen implementeren en logboeken instellen

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. Deze handleiding laat zien hoe u Azure Managed Prometheus en Grafana instelt en bewaking inschakelt voor uw Azure Arc-cluster.

Voer de stappen in dit artikel uit voordat u Azure IoT-bewerkingen implementeert in uw cluster.

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

    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 --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 --name k8s-extension
    az extension add --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 eerder gemaakte Azure Monitor-werkruimte te verzenden. 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>

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

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
    

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 het + pictogram in de Grafana-toepassing.

  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.