Partilhar via


Implantar recursos de observabilidade e configurar logs

A observabilidade fornece visibilidade em cada camada da sua configuração de Operações do Azure IoT. Ele fornece informações sobre o comportamento real dos problemas, o que aumenta a eficácia da engenharia de confiabilidade do site. O Azure IoT Operations oferece observabilidade por meio de painéis Grafana personalizados e selecionados que são hospedados no Azure. Esses painéis são alimentados pelo serviço gerenciado do Azure Monitor para Prometheus e pelo Container Insights. Este guia mostra como configurar o Azure Managed Prometheus e o Grafana e habilitar o monitoramento para seu cluster do Azure Arc.

Conclua as etapas neste artigo antes de implantar o Azure IoT Operations em seu cluster.

Pré-requisitos

  • Um cluster Kubernetes habilitado para Arc.
  • CLI do Azure instalada em sua máquina de cluster. Para obter instruções, consulte Como instalar a CLI do Azure.
  • Leme instalado em sua máquina de cluster. Para obter instruções, consulte Instalar leme.
  • Kubectl instalado em sua máquina de cluster. Para obter instruções, consulte Instalar ferramentas do Kubernetes.

Criar recursos no Azure

  1. Registe fornecedores com a subscrição onde o cluster está localizado.

    Nota

    Esta etapa só precisa ser executada uma vez por assinatura. Para registrar provedores de recursos, você precisa de permissão para fazer a /register/action operação, que está incluída nas funções de Colaborador e Proprietário da assinatura. Para obter mais informações, consulte Tipos e provedores de recursos do 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. Instale as extensões da CLI do Azure para coleta de métricas para clusters habilitados para Azure Arc e Azure Managed Grafana.

    az extension add --name k8s-extension
    az extension add --name amg
    
  3. Crie um espaço de trabalho do Azure Monitor para habilitar a coleta de métricas para seu cluster Kubernetes habilitado para Azure Arc.

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

    Salve a ID do espaço de trabalho do Azure Monitor na saída deste comando. Você usa o ID quando habilita a coleta de métricas na próxima seção.

  4. Crie uma instância do Azure Managed Grafana para visualizar suas métricas do Prometheus.

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

    Salve o ID do Grafana na saída deste comando. Você usa o ID quando habilita a coleta de métricas na próxima seção.

  5. Crie um espaço de trabalho do Log Analytics para o Container Insights.

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

    Salve o ID do espaço de trabalho do Log Analytics na saída deste comando. Você usa o ID quando habilita a coleta de métricas na próxima seção.

Habilitar a coleta de métricas para o cluster

Atualize o cluster do Azure Arc para coletar métricas e enviá-las para o espaço de trabalho do Azure Monitor criado anteriormente. Você também vincula esse espaço de trabalho à instância do 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>

Habilite os logs do Container Insights para a coleta de logs.

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>

Quando essas etapas forem concluídas, você terá o Azure Monitor e o Grafana configurados e vinculados ao cluster para observabilidade e coleta de métricas.

Implantar o OpenTelemetry Collector

Defina e implante um coletor OpenTelemetry (OTel) em seu cluster Kubernetes habilitado para Arc.

  1. Crie um arquivo chamado otel-collector-values.yaml e cole o seguinte código nele para definir um OpenTelemetry Collector:

    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 No arquivo, anote os seguintes valores que você usa no comando ao implantar o az iot ops create Azure IoT Operations no cluster:

    • fullnameOverride
    • grpc.ponto final
    • check_interval
  3. Guarde e feche o ficheiro.

  4. Implante o coletor executando os seguintes comandos:

    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
    

Configurar a coleção de métricas do Prometheus

Configure a coleção de métricas do Prometheus em seu cluster.

  1. Crie um arquivo chamado ama-metrics-prometheus-config.yaml e cole a seguinte configuração:

    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. Aplique o arquivo de configuração executando o seguinte comando:

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

Implantar painéis no Grafana

O Azure IoT Operations fornece um painel de exemplo projetado para fornecer muitas das visualizações necessárias para entender a integridade e o desempenho de sua implantação do Azure IoT Operations.

Conclua as etapas a seguir para instalar os painéis Grafana com curadoria de Operações do Azure IoT.

  1. Clone ou baixe o repositório azure-iot-operations para obter o arquivo json do Grafana Dashboard de exemplo localmente: https://github.com/Azure/azure-iot-operations.

  2. Inicie sessão na consola do Grafana. Você pode acessar o console por meio do portal do Azure ou usar o az grafana show comando para recuperar a URL.

    az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
    
  3. No aplicativo Grafana, selecione o + ícone.

  4. Selecione Importar painel.

  5. Navegue até o diretório de exemplo do painel em sua cópia local do repositório de Operações do Azure IoT, azure-iot-operations>samples>grafana-dashboard e selecione o arquivo do aio.sample.json painel.

  6. Quando o aplicativo solicitar, selecione sua fonte de dados Prometheus gerenciada.

  7. Selecione Importar.