Aracılığıyla paylaş


Gözlemlenebilirlik kaynaklarını dağıtma ve günlükleri ayarlama

Gözlemlenebilirlik, Azure IoT İşlemleri yapılandırmanızın her katmanında görünürlük sağlar. Sorunların gerçek davranışı hakkında içgörü sağlar ve bu da site güvenilirliği mühendisliğinin verimliliğini artırır. Azure IoT İşlemleri, Azure'da barındırılan özel seçilmiş Grafana panoları aracılığıyla gözlemlenebilirlik sunar. Bu panolar Prometheus için Azure İzleyici yönetilen hizmeti ve Container Insights tarafından desteklenir. Bu kılavuzda Azure Yönetilen Prometheus ve Grafana'yı ayarlama ve Azure Arc kümeniz için izlemeyi etkinleştirme adımları gösterilmektedir.

Azure IoT İşlemlerini kümenize dağıtmadan önce bu makaledeki adımları tamamlayın.

Önkoşullar

  • Arc özellikli kubernetes kümesi.
  • Azure CLI, küme makinenizde yüklüdür. Yönergeler için bkz . Azure CLI'yı yükleme.
  • Helm, küme makinenize yüklendi. Yönergeler için bkz . Helm'i yükleme.
  • Küme makinenizde yüklü Kubectl. Yönergeler için bkz . Kubernetes araçlarını yükleme.

Azure'da kaynak oluşturma

  1. Sağlayıcıları kümenizin bulunduğu aboneliğe kaydedin.

    Not

    Bu adımın abonelik başına yalnızca bir kez çalıştırılması gerekir. Kaynak sağlayıcılarını kaydetmek için, abonelik Katkıda Bulunanı ve Sahip rollerine dahil edilen işlemi gerçekleştirme /register/action izniniz olmalıdır. Daha fazla bilgi için bkz . Azure kaynak sağlayıcıları ve türleri.

    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. Azure Arc özellikli kümeler ve Azure Yönetilen Grafana için Ölçümler için Azure CLI uzantılarını yükleyin.

    az extension add --name k8s-extension
    az extension add --name amg
    
  3. Azure Arc özellikli Kubernetes kümeniz için ölçüm toplamayı etkinleştirmek için bir Azure İzleyici çalışma alanı oluşturun.

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

    Bu komutun çıktısından Azure İzleyici çalışma alanı kimliğini kaydedin. Sonraki bölümde ölçüm toplamayı etkinleştirirken kimliği kullanacaksınız.

  4. Prometheus ölçümlerinizi görselleştirmek için bir Azure Yönetilen Grafana örneği oluşturun.

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

    Bu komutun çıktısından Grafana Kimliğini kaydedin. Sonraki bölümde ölçüm toplamayı etkinleştirirken kimliği kullanacaksınız.

  5. Container Insights için log analytics çalışma alanı oluşturun.

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

    Bu komutun çıktısından Log Analytics çalışma alanı kimliğini kaydedin. Sonraki bölümde ölçüm toplamayı etkinleştirirken kimliği kullanacaksınız.

Küme için ölçüm toplamayı etkinleştirme

Ölçümleri toplamak ve bunları daha önce oluşturulan Azure İzleyici çalışma alanına göndermek için Azure Arc kümesini güncelleştirin. Ayrıca bu çalışma alanını Grafana örneğine bağlarsınız.

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>

Günlük koleksiyonu için Container Insights günlüklerini etkinleştirin.

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>

Bu adımlar tamamlandıktan sonra, gözlemlenebilirlik ve ölçüm toplama için hem Azure İzleyici'yi hem de Grafana'yı ayarlar ve kümenize bağlanırsınız.

OpenTelemetry Toplayıcısı Dağıtma

Arc özellikli Kubernetes kümenize OpenTelemetry (OTel) Toplayıcısı tanımlayın ve dağıtın.

  1. adlı otel-collector-values.yaml bir dosya oluşturun ve bir OpenTelemetry Toplayıcısı tanımlamak için içine aşağıdaki kodu yapıştırın:

    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 dosyasında, kümeye Azure IoT İşlemleri dağıtırken komutta az iot ops create kullandığınız aşağıdaki değerleri not edin:

    • fullnameOverride
    • grpc.endpoint
    • check_interval
  3. Dosyayı kaydedip kapatın

  4. Aşağıdaki komutları çalıştırarak toplayıcıyı dağıtın:

    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
    

Prometheus ölçüm koleksiyonunu yapılandırma

Kümenizde Prometheus ölçüm koleksiyonunu yapılandırın.

  1. adlı ama-metrics-prometheus-config.yaml bir dosya oluşturun ve aşağıdaki yapılandırmayı yapıştırın:

    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. Aşağıdaki komutu çalıştırarak yapılandırma dosyasını uygulayın:

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

Grafana'ya pano dağıtma

Azure IoT İşlemleri, Azure IoT İşlemleri dağıtımınızın sistem durumunu ve performansını anlamanız için ihtiyacınız olan görselleştirmelerin birçoğunu size sunmak için tasarlanmış örnek bir pano sağlar.

Azure IoT İşlemleri tarafından seçilmiş Grafana panolarını yüklemek için aşağıdaki adımları tamamlayın.

  1. Örnek Grafana Dashboard json dosyasını yerel olarak almak için azure-iot-operations deposunu kopyalayın veya indirin: https://github.com/Azure/azure-iot-operations.

  2. Grafana konsolunda oturum açın. Konsola Azure portalı üzerinden erişebilir veya komutunu kullanarak az grafana show URL'yi alabilirsiniz.

    az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
    
  3. Grafana uygulamasında simgeyi + seçin.

  4. Panoyu içeri aktar'ı seçin.

  5. Azure IoT İşlemleri deponuzun yerel kopyasındaki örnek pano dizinine göz atın, azure-iot-operations>samples>grafana-dashboard ve ardından pano dosyasını seçin.aio.sample.json

  6. Uygulama sorulduğunda yönetilen Prometheus veri kaynağınızı seçin.

  7. İçe aktar'ı seçin.