Bagikan melalui


Menyebarkan sumber daya observabilitas dan menyiapkan log

Penting

Pratinjau Operasi Azure IoT – diaktifkan oleh Azure Arc saat ini dalam pratinjau. Anda tidak boleh menggunakan perangkat lunak pratinjau ini di lingkungan produksi.

Anda harus menyebarkan penginstalan Azure IoT Operations baru saat rilis yang tersedia secara umum tersedia. Anda tidak akan dapat memutakhirkan penginstalan pratinjau.

Untuk persyaratan hukum yang berlaku untuk fitur Azure yang beta, dalam pratinjau, atau belum dirilis ke ketersediaan umum, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Pengamatan memberikan visibilitas ke setiap lapisan konfigurasi Azure IoT Operations Anda. Ini memberi Anda wawasan tentang perilaku aktual masalah, yang meningkatkan efektivitas rekayasa keandalan situs. Operasi Azure IoT menawarkan pengamatan melalui dasbor Grafana yang dikurasi kustom yang dihosting di Azure. Dasbor ini didukung oleh layanan terkelola Azure Monitor untuk Prometheus dan oleh Container Insights. Panduan ini menunjukkan kepada Anda cara menyiapkan Azure Managed Prometheus dan Grafana dan mengaktifkan pemantauan untuk kluster Azure Arc Anda.

Selesaikan langkah-langkah dalam artikel ini sebelum menyebarkan Operasi Azure IoT ke kluster Anda.

Prasyarat

  • Kluster Kubernetes dengan dukungan Arc.
  • Azure CLI diinstal pada komputer pengembangan Anda. Untuk petunjuknya, lihat Cara menginstal Azure CLI.
  • Helm diinstal pada mesin pengembangan Anda. Untuk petunjuknya, lihat Menginstal Helm.
  • Kubectl diinstal pada komputer pengembangan Anda. Untuk petunjuknya, lihat Menginstal alat Kubernetes.

Buat sumber daya di Azure

  1. Daftarkan penyedia dengan langganan tempat kluster Anda berada.

    Catatan

    Langkah ini hanya perlu dijalankan sekali per langganan. Untuk mendaftarkan penyedia sumber daya, Anda memerlukan izin untuk melakukan /register/action operasi, yang disertakan dalam peran Kontributor langganan dan Pemilik. Untuk informasi selengkapnya, lihat Penyedia dan jenis sumber daya 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. Instal ekstensi Azure CLI untuk koleksi Metrik untuk kluster dengan dukungan Azure Arc dan Azure Managed Grafana.

    az extension add --name k8s-extension
    az extension add --name amg
    
  3. Buat ruang kerja Azure Monitor untuk mengaktifkan pengumpulan metrik untuk kluster Kubernetes dengan dukungan Azure Arc.

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

    Simpan ID ruang kerja Azure Monitor dari output perintah ini. Anda menggunakan ID saat mengaktifkan koleksi metrik di bagian berikutnya.

  4. Buat instans Azure Managed Grafana untuk memvisualisasikan metrik Prometheus Anda.

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

    Simpan ID Grafana dari output perintah ini. Anda menggunakan ID saat mengaktifkan koleksi metrik di bagian berikutnya.

  5. Buat ruang kerja Analitik Log untuk Container Insights.

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

    Simpan ID ruang kerja Analitik Log dari output perintah ini. Anda menggunakan ID saat mengaktifkan koleksi metrik di bagian berikutnya.

Mengaktifkan pengumpulan metrik untuk kluster

Perbarui kluster Azure Arc untuk mengumpulkan metrik dan mengirimkannya ke ruang kerja Azure Monitor yang dibuat sebelumnya. Anda juga menautkan ruang kerja ini dengan instans 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>

Aktifkan log Container Insights untuk pengumpulan log.

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>

Setelah langkah-langkah ini selesai, Anda memiliki Azure Monitor dan Grafana yang disiapkan dan ditautkan ke kluster Anda untuk pengamatan dan pengumpulan metrik.

Menyebarkan Pengumpul OpenTelemetry

Tentukan dan sebarkan Pengumpul OpenTelemetry (OTel) ke kluster Kubernetes yang didukung Arc.

  1. Buat file yang disebut otel-collector-values.yaml dan tempelkan kode berikut ke dalamnya untuk menentukan Pengumpul 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 Dalam file, catat nilai berikut yang Anda gunakan dalam az iot ops create perintah saat Anda menyebarkan Operasi Azure IoT pada kluster:

    • fullnameOverride
    • grpc.endpoint
    • check_interval
  3. Simpan dan tutup file.

  4. Sebarkan kolektor dengan menjalankan perintah berikut:

    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
    

Mengonfigurasi koleksi metrik Prometheus

Konfigurasikan pengumpulan metrik Prometheus di kluster Anda.

  1. Buat file bernama ama-metrics-prometheus-config.yaml dan tempel konfigurasi berikut:

    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. Terapkan file konfigurasi dengan menjalankan perintah berikut:

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

Menyebarkan dasbor ke Grafana

Operasi Azure IoT menyediakan dasbor sampel yang dirancang untuk memberi Anda banyak visualisasi yang Anda butuhkan untuk memahami kesehatan dan performa penyebaran Operasi Azure IoT Anda.

Selesaikan langkah-langkah berikut untuk menginstal dasbor Grafana yang dikumpulkan Azure IoT Operations.

  1. Kloning atau unduh repositori azure-iot-operations untuk mendapatkan sampel file json Dasbor Grafana secara lokal: https://github.com/Azure/azure-iot-operations.

  2. Masuk ke konsol Grafana. Anda dapat mengakses konsol melalui portal Azure atau menggunakan az grafana show perintah untuk mengambil URL.

    az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
    
  3. Di aplikasi Grafana, pilih + ikon .

  4. Pilih Impor dasbor.

  5. Telusuri ke direktori dasbor sampel di salinan lokal repositori Azure IoT Operations, sampel azure-iot-operations>>grafana-dashboard, lalu pilih aio.sample.json file dasbor.

  6. Saat aplikasi meminta, pilih sumber data Prometheus terkelola Anda.

  7. Pilih impor.