Sdílet prostřednictvím


Nasazení prostředků pozorovatelnosti a nastavení protokolů

Důležité

Azure IoT Operations Preview – Služba Azure Arc je aktuálně ve verzi Preview. Tento software ve verzi Preview byste neměli používat v produkčních prostředích.

Až bude dostupná obecně dostupná verze, budete muset nasadit novou instalaci operací Azure IoT. Nebudete moct upgradovat instalaci verze Preview.

Právní podmínky, které se vztahují na funkce Azure, které jsou ve verzi beta, ve verzi Preview nebo které ještě nejsou vydány v obecné dostupnosti, najdete v dodatečných podmínkách použití pro verze Microsoft Azure Preview.

Pozorovatelnost poskytuje přehled o každé vrstvě konfigurace provozu Azure IoT. Poskytuje přehled o skutečném chování problémů, což zvyšuje efektivitu techniky spolehlivosti lokality. Operace Azure IoT nabízí pozorovatelnost prostřednictvím vlastních kurátorovaných řídicích panelů Grafana hostovaných v Azure. Tyto řídicí panely využívají spravovanou službu Azure Monitor pro Prometheus a Container Insights. V této příručce se dozvíte, jak nastavit Spravované prometheus Azure a Grafana a povolit monitorování clusteru Azure Arc.

Před nasazením operací Azure IoT do clusteru proveďte kroky v tomto článku.

Požadavky

  • Cluster Kubernetes s podporou arc.
  • Azure CLI nainstalované na vývojovém počítači. Pokyny najdete v tématu Postup instalace Azure CLI.
  • Helm je nainstalovaný na vývojovém počítači. Pokyny najdete v tématu Instalace Nástroje Helm.
  • Kubectl nainstalovaný na vašem vývojovém počítači. Pokyny najdete v tématu Instalace nástrojů Kubernetes.

Vytvoření prostředků v Azure

  1. Zaregistrujte poskytovatele v předplatném, ve kterém se nachází váš cluster.

    Poznámka:

    Tento krok stačí spustit jenom jednou pro každé předplatné. K registraci poskytovatelů prostředků potřebujete oprávnění k provedení /register/action operace, která je součástí rolí Přispěvatel předplatného a Vlastník. Další informace najdete v tématu Poskytovatelé a typy prostředků Azure.

    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. Nainstalujte rozšíření Azure CLI pro shromažďování metrik pro clustery s podporou Azure Arc a Azure Managed Grafana.

    az extension add --name k8s-extension
    az extension add --name amg
    
  3. Vytvořte pracovní prostor služby Azure Monitor, který povolí shromažďování metrik pro cluster Kubernetes s podporou Azure Arc.

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

    Uložte ID pracovního prostoru služby Azure Monitor z výstupu tohoto příkazu. ID použijete, když povolíte shromažďování metrik v další části.

  4. Vytvořte instanci Azure Managed Grafana, která vizualizuje metriky Prometheus.

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

    Uložte ID Grafany z výstupu tohoto příkazu. ID použijete, když povolíte shromažďování metrik v další části.

  5. Vytvořte pracovní prostor služby Log Analytics pro Container Insights.

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

    Uložte ID pracovního prostoru služby Log Analytics z výstupu tohoto příkazu. ID použijete, když povolíte shromažďování metrik v další části.

Povolení shromažďování metrik pro cluster

Aktualizujte cluster Azure Arc tak, aby shromažďoval metriky a odesílal je do dříve vytvořeného pracovního prostoru služby Azure Monitor. Tento pracovní prostor také propošte s instancí Grafany.

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>

Povolte protokoly Container Insights pro shromažďování protokolů.

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>

Po dokončení těchto kroků máte azure Monitor i Grafana nastavené a propojené s clusterem pro pozorovatelnost a shromažďování metrik.

Nasazení kolekce OpenTelemetry

Definujte a nasaďte kolektor OpenTelemetry (OTel) do clusteru Kubernetes s podporou Arc.

  1. Vytvořte volaný otel-collector-values.yaml soubor a vložte do něj následující kód, který definuje kolekci OpenTelemetry:

    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. otel-collector-values.yaml V souboru si poznamenejte následující hodnoty, které použijete v az iot ops create příkazu při nasazování operací Azure IoT v clusteru:

    • fullnameOverride
    • grpc.endpoint
    • check_interval
  3. Soubor uložte a zavřete.

  4. Nasaďte kolektor spuštěním následujících příkazů:

    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
    

Konfigurace kolekce metrik Prometheus

Nakonfigurujte shromažďování metrik Prometheus ve vašem clusteru.

  1. Vytvořte soubor s názvem ama-metrics-prometheus-config.yaml a vložte následující konfiguraci:

    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. Použijte konfigurační soubor spuštěním následujícího příkazu:

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

Nasazení řídicích panelů do Grafany

Operace Azure IoT poskytují ukázkový řídicí panel navržený tak, aby vám poskytl mnoho vizualizací, které potřebujete k pochopení stavu a výkonu nasazení operací Azure IoT.

Provedením následujících kroků nainstalujte řídicí panely Grafana s kurátorovanými operacemi Azure IoT.

  1. Naklonujte nebo stáhněte úložiště azure-iot-operations a získejte ukázkový soubor JSON řídicího panelu Grafana místně: https://github.com/Azure/azure-iot-operations.

  2. Přihlaste se ke konzole Grafana. Ke konzole se dostanete prostřednictvím webu Azure Portal nebo pomocí az grafana show příkazu načtete adresu URL.

    az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
    
  3. V aplikaci Grafana vyberte + ikonu.

  4. Vyberte Importovat řídicí panel.

  5. Přejděte do adresáře ukázkového řídicího panelu v místní kopii úložiště Azure IoT Operations, ukázek>grafana-operations azure-iot-operations> a pak vyberte soubor řídicího panelu.aio.sample.json

  6. Po zobrazení výzvy aplikace vyberte spravovaný zdroj dat Prometheus.

  7. Vyberte Importovat.