Udostępnij za pośrednictwem


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

Widoczność zapewnia wgląd w każdą warstwę konfiguracji operacji usługi Azure IoT. Zapewnia wgląd w rzeczywiste zachowanie problemów, co zwiększa efektywność inżynierii niezawodności lokacji. Operacje usługi Azure IoT oferują możliwość obserwowania za pośrednictwem niestandardowych wyselekcjonowanych pulpitów nawigacyjnych Grafana hostowanych na platformie Azure. Te pulpity nawigacyjne są obsługiwane przez usługę zarządzaną Azure Monitor dla rozwiązania Prometheus i usługi Container Insights. W tym przewodniku pokazano, jak skonfigurować usługę Azure Managed Prometheus i Grafana oraz włączyć monitorowanie klastra usługi Azure Arc.

Przed wdrożeniem operacji usługi Azure IoT w klastrze wykonaj kroki opisane w tym artykule.

Wymagania wstępne

Tworzenie zasobów na platformie Azure

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

    Uwaga

    Ten krok musi być uruchamiany 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 Współautor subskrypcji 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 interfejsu wiersza polecenia platformy Azure dla kolekcji metryk dla klastrów z obsługą usługi Azure Arc i zarządzanej platformy Azure Grafana.

    az extension add --name k8s-extension
    az extension add --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 zbierał metryki i wysyłał je do wcześniej utworzonego obszaru roboczego usługi Azure Monitor. Możesz również połączyć ten obszar roboczy z wystąpieniem narzędzia 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
    

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 poniższe kroki, aby zainstalować wyselekcjonowane pulpity nawigacyjne narzędzia Grafana dla operacji usługi 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. W aplikacji Grafana wybierz ikonę + .

  4. Wybierz pozycję Importuj pulpit nawigacyjny.

  5. Przejdź do przykładowego katalogu pulpitu nawigacyjnego w lokalnej kopii repozytorium Operacje usługi Azure IoT, przykładów>azure-iot-operations>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.