Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'osservabilità delle operazioni di Azure IoT offre visibilità su ogni livello della configurazione e offre informazioni dettagliate sul comportamento effettivo dei problemi, aumentando così l'efficacia della progettazione dell'affidabilità del sito. Operazioni di Azure IoT offre l'osservabilità tramite dashboard Grafana curati, ospitati in Azure, basati sul servizio gestito per Prometheus di Azure Monitor e Dati analitici sui Contenitori.
Questo articolo illustra come distribuire le risorse di osservabilità delle operazioni IoT di Azure, configurare Prometheus e Grafana gestito di Azure e abilitare il monitoraggio completo per il cluster Azure Arc.
Prerequisiti
- Cluster Kubernetes con abilitazione di Arc.
- Interfaccia della riga di comando di Azure installata nel computer del cluster. Per le istruzioni, vedere Come installare l'interfaccia della riga di comando di Azure.
- Helm installato nel computer del cluster. Per le istruzioni, vedere Installare Helm.
- Kubectl installato nel computer del cluster. Per le istruzioni, vedere Installare gli strumenti Kubernetes.
Creare risorse in Azure
Registrare i provider con l’abbonamento in cui si trova il cluster.
Note
Eseguire questo passaggio una sola volta per ogni sottoscrizione. Per registrare i provider di risorse, è necessaria l'autorizzazione per eseguire l'operazione
/register/action, inclusa nei ruoli Collaboratore e Proprietario della sottoscrizione. Per altre informazioni, vedere Provider e tipi di risorse di 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.OperationalInsightsInstallare le estensioni della CLI di Azure per la raccolta delle metriche sui cluster abilitati per Azure Arc e Azure Managed Grafana.
az extension add --upgrade --name k8s-extension az extension add --upgrade --name amgCreare un'area di lavoro di Monitoraggio di Azure per abilitare la raccolta delle metriche per il cluster Kubernetes abilitato per Azure Arc:
az monitor account create --name <WORKSPACE_NAME> --resource-group <RESOURCE_GROUP> --location <LOCATION> --query id -o tsvSalvare l'ID dell'area di lavoro di Monitoraggio di Azure dall'output di questo comando. L'ID viene usato quando si abilita la raccolta di metriche nella sezione successiva.
Creare un'istanza di Grafana gestita di Azure per visualizzare le metriche di Prometheus:
az grafana create --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsvSalvare l'ID di Grafana dall'output di questo comando. L'ID viene usato quando si abilita la raccolta di metriche nella sezione successiva.
Creare un'area di lavoro Log Analytics per Container Insights:
az monitor log-analytics workspace create -g <RESOURCE_GROUP> -n <LOGS_WORKSPACE_NAME> --query id -o tsvSalvare l'ID dell'area di lavoro Log Analytics dall'output di questo comando. L'ID viene usato quando si abilita la raccolta di metriche nella sezione successiva.
Abilitare la raccolta delle metriche per il cluster
Aggiornare il cluster Azure Arc per raccogliere le metriche e inviarle all'area di lavoro di Monitoraggio di Azure creata. È anche possibile collegare questa area di lavoro all'istanza di 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>
Abilitare i log di Container Insights per la raccolta dei 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>
Dopo aver completato questi passaggi, Azure Monitor e Grafana sono configurati e collegati al cluster per l'osservabilità e la raccolta delle metriche.
Distribuire l'agente di raccolta OpenTelemetry
Definire e distribuire un agente di raccolta OpenTelemetry (OTel) nel cluster Kubernetes abilitato per Arc.
Creare un file denominato
otel-collector-values.yamle incollarvi il codice seguente per definire un agente di raccolta 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: falseNel file
otel-collector-values.yaml, prendere nota dei valori seguenti usati nel comandoaz iot ops createquando si distribuisce Operazioni di Azure IoT nel cluster:fullnameOverridegrpc.endpointcheck_interval
Salvare e chiudere il file.
Distribuire l'agente di raccolta eseguendo i comandi seguenti:
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
Configurare la raccolta delle metriche di Prometheus
Configurare la raccolta di metriche di Prometheus nel cluster.
Creare un file denominato
ama-metrics-prometheus-config.yamle incollare la configurazione seguente: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-systemApplicare il file di configurazione eseguendo il comando seguente:
kubectl apply -f ama-metrics-prometheus-config.yaml
Impostare la configurazione dell'osservabilità
È possibile impostare la configurazione osservabilità della distribuzione di Operazioni IoT di Azure in qualsiasi momento. Dopo aver configurato le risorse di osservabilità, è possibile aggiornare la configurazione dell'osservabilità eseguendo il az iot ops upgrade comando con il --ops-config parametro per specificare i nuovi valori di configurazione:
az iot ops upgrade --resource-group <rg name> -n <instance name> --ops-config observability.metrics.openTelemetryCollectorAddress=<>
| Parametro | Valore | Descrizione |
|---|---|---|
--ops-config |
observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT> |
Specificare l'indirizzo dell'agente di raccolta OpenTelemetry (OTel) configurato nel file daemon-collector-values.yaml. Le istruzioni in questo articolo usano i valori fullnameOverride=aio-otel-collector di esempio e grpc.endpoint=4317. |
--ops-config |
observability.metrics.exportInternalSeconds=<CHECK_INTERVAL> |
Specificare il check_interval valore configurato nel file otel-collector-values.yaml.Le istruzioni in questo articolo usano il valore check_interval=60di esempio . |
Note
Nelle versioni di anteprima il comando az iot ops upgrade non funziona per l'aggiornamento a una versione di anteprima, ma funziona per configurare Operazioni di Azure IoT per l'osservabilità.
Distribuire dashboard in Grafana
Operazioni di Azure IoT offre un dashboard di esempio progettato per offrire molte delle visualizzazioni necessarie per comprendere l'integrità e le prestazioni della distribuzione di Operazioni IoT di Azure.
Completare i passaggi seguenti per installare i dashboard di Grafana curati per le operazioni IoT di Azure:
Clonare o scaricare il repository azure-iot-operations per ottenere il file JSON del dashboard Grafana di esempio in locale: https://github.com/Azure/azure-iot-operations.
Accedere alla console di Grafana. È possibile accedere alla console tramite il portale di Azure o usare il comando
az grafana showper recuperare l'URL.az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsvNella pagina di destinazione di Grafana, selezionare il riquadro Crea il tuo primo dashboard.
Selezionare Importa dashboard.
Passare alla directory del dashboard di esempio nella copia locale del repository Operazioni di Azure IoT, azure-iot-operations>samples>grafana-dashboard, quindi selezionare il file del dashboard aio.sample.json.
Quando l'applicazione richiede, selezionare l'origine dati Prometheus gestita.
Selezionare Importa.