Udostępnij za pomocą


Wdrażanie zasobów z obserwacją i konfigurowanie dzienników

Możliwość obserwowania operacji usługi Azure IoT zapewnia wgląd w każdą warstwę konfiguracji i zapewnia wgląd w rzeczywiste zachowanie problemów, co zwiększa skuteczność inżynierii niezawodności lokacji. Operacje usługi Azure IoT oferują wgląd w niestandardowe nadzorowane pulpity nawigacyjne Grafana hostowane na platformie Azure, obsługiwane przez usługę zarządzaną Azure Monitor dla rozwiązań Prometheus i Container Insights.

W tym artykule pokazano, jak wdrożyć zasoby umożliwiające obserwowanie operacji usługi Azure IoT, skonfigurować usługę Azure Managed Prometheus i Grafana oraz włączyć kompleksowe monitorowanie klastra usługi Azure Arc.

Wymagania wstępne

Tworzenie zasobów na platformie Azure

  1. Zarejestruj dostawców w subskrypcji, w której znajduje się klaster.

    Uwaga

    Uruchom ten krok tylko raz na subskrypcję. Aby zarejestrować dostawców zasobów, musisz mieć uprawnienia do wykonania /register/action operacji, która jest uwzględniona w rolach subskrypcji Współpracownik i Właściciel. Aby uzyskać więcej informacji, zobacz Dostawcy zasobów i typy platformy 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. Zainstaluj rozszerzenia CLI Azure do zbierania metryk dla klastrów obsługiwanych przez Azure Arc oraz Managed Grafana Azure.

    az extension add --upgrade --name k8s-extension
    az extension add --upgrade --name amg
    
  3. Utwórz obszar roboczy usługi Azure Monitor, aby włączyć zbieranie metryk dla klastra Kubernetes z obsługą usługi Azure Arc:

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

    Zapisz identyfikator obszaru roboczego usługi Azure Monitor z danych wyjściowych tego polecenia. Identyfikator jest używany podczas włączania kolekcji metryk w następnej sekcji.

  4. Utwórz wystąpienie usługi Azure Managed Grafana, aby zwizualizować metryki rozwiązania Prometheus:

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

    Zapisz identyfikator narzędzia Grafana z danych wyjściowych tego polecenia. Identyfikator jest używany podczas włączania kolekcji metryk w następnej sekcji.

  5. Utwórz obszar roboczy usługi Log Analytics dla usługi Container Insights:

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

    Zapisz identyfikator obszaru roboczego usługi Log Analytics z danych wyjściowych tego polecenia. Identyfikator jest używany podczas włączania kolekcji metryk w następnej sekcji.

Włączanie zbierania metryk dla klastra

Zaktualizuj klaster usługi Azure Arc, aby zebrać metryki i wysłać je do utworzonego obszaru roboczego usługi Azure Monitor. Możesz również połączyć ten obszar roboczy z instancją Grafana.

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>

Włącz dzienniki usługi Container Insights dla zbierania dzienników:

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 wykonaniu tych kroków zarówno usługa Azure Monitor, jak i narzędzie Grafana zostały skonfigurowane i połączone z klastrem w celu obserwowania i zbierania metryk.

Wdrażanie modułu zbierającego OpenTelemetry

Zdefiniuj i wdróż moduł zbierający OpenTelemetry (OTel) w klastrze Kubernetes z obsługą usługi Arc.

  1. Utwórz plik o nazwie otel-collector-values.yaml i wklej do niego następujący kod, aby zdefiniować moduł zbierający 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 W pliku zanotuj następujące wartości, które są używane w poleceniu podczas az iot ops create wdrażania operacji usługi Azure IoT w klastrze:

    • fullnameOverride
    • grpc.endpoint
    • check_interval
  3. Zapisz i zamknij plik.

  4. Wdróż moduł zbierający, uruchamiając następujące polecenia:

    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
    

Konfigurowanie kolekcji metryk rozwiązania Prometheus

Skonfiguruj kolekcję metryk rozwiązania Prometheus w klastrze.

  1. Utwórz plik o nazwie ama-metrics-prometheus-config.yaml i wklej następującą konfigurację:

    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. Zastosuj plik konfiguracji, uruchamiając następujące polecenie:

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

Ustawienie konfiguracji obserwowalności

W dowolnym momencie możesz skonfigurować konfigurację obserwacji wdrożenia operacji usługi Azure IoT. Po skonfigurowaniu zasobów do obserwowania można uaktualnić konfigurację obserwacji, uruchamiając az iot ops upgrade polecenie z parametrem --ops-config , aby określić nowe wartości konfiguracji:

az iot ops upgrade --resource-group <rg name> -n <instance name> --ops-config observability.metrics.openTelemetryCollectorAddress=<>
Parameter Wartość Opis
--ops-config observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT> Podaj adres modułu zbierającego OpenTelemetry (OTel) skonfigurowany w pliku otel-collector-values.yaml.

Instrukcje w tym artykule korzystają z przykładowych wartości fullnameOverride=aio-otel-collector i grpc.endpoint=4317.
--ops-config observability.metrics.exportInternalSeconds=<CHECK_INTERVAL> check_interval Podaj wartość skonfigurowaną w pliku otel-collector-values.yaml.

Instrukcje w tym artykule używają przykładowej wartości check_interval=60.

Uwaga

W wersjach zapoznawczych az iot ops upgrade polecenie nie działa przy uaktualnianiu do wersji zapoznawczej, ale działa do skonfigurowania operacji Azure IoT na potrzeby obserwacji.

Wdrażanie pulpitów nawigacyjnych w usłudze Grafana

Operacje usługi Azure IoT udostępnia przykładowy pulpit nawigacyjny zaprojektowany w celu zapewnienia wielu wizualizacji potrzebnych do zrozumienia kondycji i wydajności wdrożenia operacji usługi Azure IoT.

Wykonaj następujące kroki, aby zainstalować wyselekcjonowane dashboardy Grafana dla operacji Azure IoT:

  1. Sklonuj lub pobierz repozytorium azure-iot-operations , aby pobrać przykładowy plik json pulpitu nawigacyjnego narzędzia Grafana lokalnie: https://github.com/Azure/azure-iot-operations.

  2. Zaloguj się do konsoli narzędzia Grafana. Dostęp do konsoli można uzyskać za pośrednictwem witryny Azure Portal lub użyć az grafana show polecenia , aby pobrać adres URL.

    az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
    
  3. Na stronie docelowej narzędzia Grafana wybierz kafelek Utwórz pierwszy pulpit nawigacyjny .

  4. Wybierz Importuj pulpit nawigacyjny.

  5. Przejdź do katalogu z przykładowym pulpitem nawigacyjnym w lokalnej kopii repozytorium Azure IoT Operations, azure-iot-operations > samples > grafana-dashboard, a następnie wybierz plik pulpitu nawigacyjnego aio.sample.json.

  6. Po wyświetleniu monitu przez aplikację wybierz zarządzane źródło danych Prometheus.

  7. Wybierz Importuj.

Dalsze kroki