Compartir a través de


Implementación manual de recursos de observabilidad

Importante

Versión preliminar de operaciones de Azure IoT: habilitada por Azure Arc está actualmente en versión preliminar. No se debería usar este software en versión preliminar en entornos de producción.

Deberá implementar una nueva instalación de Azure IoT Operations cuando esté disponible una versión general. No podrá actualizar una instalación de versión preliminar.

Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

En este artículo se muestra cómo instalar y configurar manualmente los componentes de observabilidad de operaciones de Azure IoT. Este enfoque proporciona más opciones y control sobre su entorno. Para obtener un proceso de instalación simplificado que instale todos los componentes que necesita para empezar, vea Implementación de recursos de observabilidad con un script.

Configuración de su suscripción

Ejecute el código siguiente para registrar proveedores con la suscripción donde se encuentra el clúster.

Nota:

Este paso solo debe ejecutarse una vez por suscripción. Para registrar proveedores de recursos, necesita permiso para realizar la operación de /register/action, que se incluye en los roles Colaborador y Propietario de la suscripción. Para más información, vea Tipos y proveedores de recursos de Azure.

az account set -s <subscription-id>
az provider register -n "Microsoft.Insights"
az provider register -n "Microsoft.AlertsManagement"

Instalación del servicio administrado para Prometheus de Azure Monitor

El servicio administrado Azure Monitor para Prometheus es un componente de Azure Monitor Metrics. Este servicio administrado proporciona flexibilidad a los tipos de datos métricos que puede recopilar y analizar con Azure Monitor. Las métricas de Prometheus comparten algunas características con métricas personalizadas y de plataforma. Las métricas de Prometheus también usan algunas características diferentes para admitir mejor herramientas de código abierto, como PromQL y Grafana.

El servicio administrado de Azure Monitor para Prometheus permite recopilar y analizar métricas a gran escala mediante una solución de supervisión compatible con Prometheus. Este servicio totalmente administrado se basa en el proyecto Prometheus de Cloud Native Computing Foundation (CNCF). El servicio permite usar el lenguaje de consulta Prometheus (PromQL) para analizar el rendimiento de la infraestructura y las cargas de trabajo supervisadas y alertar sobre ellas sin tener que operar la infraestructura subyacente.

Para configurar la recopilación de métricas de Prometheus para el nuevo clúster habilitado para Arc, siga los pasos descritos en Configuración de la recopilación de métricas de Prometheus.

Instalación de Container Insights

Container Insights supervisa el rendimiento de las cargas de trabajo de contenedor implementadas en la nube. Proporciona información sobre el rendimiento recopilando métricas del procesador y de la memoria procedentes de los controladores, los nodos y los contenedores disponibles en Kubernetes mediante Metrics API. Una vez habilitada la supervisión de clústeres de Kubernetes, se recopilan métricas y registros de contenedor automáticamente mediante una versión contenedorizada del agente de Log Analytics para Linux. Las métricas se envían a la base de datos de métricas en Azure Monitor. Los datos de registro se envían al área de trabajo de Log Analytics.

Para supervisar el rendimiento de la carga de trabajo de contenedor, complete los pasos para habilitar la información de los contenedores.

Instalación de Grafana

Azure Managed Grafana es una plataforma de visualización de datos creada con el software de Grafana por Grafana Labs. Azure Managed Grafana es un servicio de Azure totalmente administrado que Microsoft admite y opera. Grafana le ayuda a reunir métricas, registros y seguimientos en una única interfaz de usuario. Con su amplia compatibilidad con orígenes de datos y funcionalidades de grafos, puede ver y analizar los datos de telemetría de la infraestructura y la aplicación en tiempo real.

Operaciones de IoT de Azure ofrece una colección de paneles diseñados para proporcionarle muchas de las visualizaciones que necesita para comprender el estado y el rendimiento de la implementación de Operaciones de IoT de Azure.

Para instalar Azure Managed Grafana, siga estos pasos:

  1. Use Azure Portal para crear una instancia de Azure Managed Grafana.

  2. Configure un servicio administrado para Prometheus de Azure Monitor como origen de datos de Azure Managed Grafana.

  3. Configure los paneles siguiendo los pasos descritos en Implementación de paneles en Grafana.

Instalación del recopilador de OpenTelemetry (OTel)

OpenTelemetry Collector es un componente clave en el proyecto OpenTelemetry, que es un marco de observabilidad de código abierto destinado a proporcionar seguimiento unificado, métricas y registro para sistemas distribuidos. El recopilador está diseñado para recibir, procesar y exportar datos de telemetría de varios orígenes, como aplicaciones e infraestructura, y enviarlos a un back-end de supervisión. Este recopilador de OTel recopila métricas de Azure IoT Operations y hace que esté disponible para su uso con otras herramientas de observabilidad, como el servicio administrado de Azure Monitor para Prometheus, Container Insights y Grafana.

Para instalar el recopilador de OTel, complete los pasos siguientes:

  1. Clone o descargue el repositorio de operaciones de Azure IoT en la máquina local: azure-iot-operations.git.

    Nota:

    El repositorio contiene la definición de implementación de Operaciones de IoT de Azure y ejemplos que incluyen los paneles de ejemplo usados en este artículo.

  2. Vaya a la siguiente ruta de acceso en la copia local del repositorio:

    azure-iot-operations\tools\setup-3p-obs-infra

  3. Cree un archivo denominado otel-collector-values.yaml y pegue el código siguiente en él para definir un recopilador de 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
      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
    
  4. En el archivo otel-collector-values.yaml, anote los siguientes valores que se usan en el comando az iot ops init al implementar operaciones de Azure IoT en el clúster:

    • fullnameOverride
    • grpc.endpoint
    • check_interval
  5. Guarde y cierre el archivo.

  6. Implemente el recopilador mediante la ejecución de los siguientes 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