Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure IoT Operations-observerbarhet ger insyn i varje lager i konfigurationen och ger dig insikt i det faktiska beteendet för problem, vilket ökar effektiviteten i platstillförlitlighetstekniken. Azure IoT Operations erbjuder observerbarhet via anpassade utvalda Grafana-instrumentpaneler i Azure, som drivs av Azure Monitor-hanterad tjänst för Prometheus och Container Insights.
Den här artikeln visar hur du distribuerar azure IoT Operations-observerbarhetsresurser, konfigurerar Azure Managed Prometheus och Grafana och aktiverar omfattande övervakning för ditt Azure Arc-kluster.
Förutsättningar
- Ett Arc-aktiverat Kubernetes-kluster.
- Azure CLI installerat på klusterdatorn. Anvisningar finns i Installera Azure CLI.
- Helm installerat på klusterdatorn. Anvisningar finns i Installera Helm.
- Kubectl installerat på klusterdatorn. Anvisningar finns i Installera Kubernetes-verktyg.
Skapa resurser i Azure
Registrera leverantörer med prenumerationen där klustret finns.
Kommentar
Kör det här steget bara en gång per prenumeration. Om du vill registrera resursprovidrar behöver du behörighet att utföra åtgärden
/register/action, som ingår i rollerna deltagare och ägare i prenumerationen. Mer information finns i Azure-resursprovidrar och typer.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.OperationalInsightsInstallera Azure CLI-tillägg för insamling av mått för Azure Arc-aktiverade kluster och Azure Managed Grafana.
az extension add --upgrade --name k8s-extension az extension add --upgrade --name amgSkapa en Azure Monitor-arbetsyta för att aktivera måttinsamling för ditt Azure Arc-aktiverade Kubernetes-kluster.
az monitor account create --name <WORKSPACE_NAME> --resource-group <RESOURCE_GROUP> --location <LOCATION> --query id -o tsvSpara Azure Monitor-arbetsyte-ID:t från utdata från det här kommandot. Du använder ID:t när du aktiverar insamling av mått i nästa avsnitt.
Skapa en Azure Managed Grafana-instans för att visualisera dina Prometheus-mått.
az grafana create --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsvSpara Grafana-ID:t från utdata från det här kommandot. Du använder ID:t när du aktiverar insamling av mått i nästa avsnitt.
Skapa en Log Analytics-arbetsyta för Container Insights.
az monitor log-analytics workspace create -g <RESOURCE_GROUP> -n <LOGS_WORKSPACE_NAME> --query id -o tsvSpara Log Analytics-arbetsytans ID från utdata från det här kommandot. Du använder ID:t när du aktiverar insamling av mått i nästa avsnitt.
Aktivera insamling av mått för klustret
Uppdatera Azure Arc-klustret för att samla in mått och skicka dem till den Azure Monitor-arbetsyta som du skapade. Du länkar även den här arbetsytan till Grafana-instansen.
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>
Aktivera Container Insights-loggar för logginsamling.
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>
När du har slutfört de här stegen har både Azure Monitor och Grafana konfigurerats och länkats till klustret för observerbarhet och måttinsamling.
Distribuera OpenTelemetry Collector
Definiera och distribuera en OpenTelemetry-insamlare (OTel) till ditt Arc-aktiverade Kubernetes-kluster.
Skapa en fil med namnet
otel-collector-values.yamloch klistra in följande kod i den för att definiera en OpenTelemetry-insamlare: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: falseotel-collector-values.yamlAnteckna följande värden i filen som du använder iaz iot ops createkommandot när du distribuerar Azure IoT Operations i klustret:- fullnameOverride
- grpc.endpoint
- check_interval
Spara och stäng filen.
Distribuera insamlaren genom att köra följande kommandon:
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
Konfigurera Prometheus-måttsamling
Konfigurera Prometheus-måttsamling i klustret.
Skapa en fil med namnet
ama-metrics-prometheus-config.yamloch klistra in följande konfiguration: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-systemAnvänd konfigurationsfilen genom att köra följande kommando:
kubectl apply -f ama-metrics-prometheus-config.yaml
Konfigurera konfiguration av observerbarhet
Du kan konfigurera observerbarhetskonfigurationen för din Azure IoT Operations-distribution när som helst. När observerbarhetsresurser har konfigurerats kan du uppgradera konfigurationen för observerbarhet genom att köra az iot ops upgrade kommandot med parametern --ops-config för att ange de nya konfigurationsvärdena.
az iot ops upgrade --resource-group <rg name> -n <instance name> --ops-config observability.metrics.openTelemetryCollectorAddress=<>
| Parameter | Värde | Beskrivning |
|---|---|---|
--ops-config |
observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT> |
Ange den OpenTelemetry-insamlareadress (OTel) som du konfigurerade i filen otel-collector-values.yaml. Anvisningarna i den här artikeln använder exempelvärdena fullnameOverride=aio-otel-collector och grpc.endpoint=4317. |
--ops-config |
observability.metrics.exportInternalSeconds=<CHECK_INTERVAL> |
Ange det check_interval värde som du konfigurerade i filen otel-collector-values.yaml. Anvisningarna i den här artikeln använder exempelvärdet check_interval=60. |
Kommentar
I förhandsversioner az iot ops upgrade fungerar kommandot inte för att uppgradera till en förhandsversion, men det fungerar för att konfigurera Azure IoT-åtgärder för observerbarhet.
Distribuera instrumentpaneler till Grafana
Azure IoT Operations innehåller en exempelinstrumentpanel som är utformad för att ge dig många av de visualiseringar som du behöver för att förstå hälsotillståndet och prestandan för din Azure IoT Operations-distribution.
Utför följande steg för att installera Azure IoT Operations-kurerade Grafana-instrumentpaneler.
Klona eller ladda ned lagringsplatsen azure-iot-operations för att hämta grafana-instrumentpanelens exempel-json-fil lokalt: https://github.com/Azure/azure-iot-operations.
Logga in på Grafana-konsolen. Du kan komma åt konsolen via Azure Portal eller använda
az grafana showkommandot för att hämta URL:en.az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsvPå grafana-landningssidan väljer du panelen Skapa din första instrumentpanel .
Välj Importera instrumentpanel.
Bläddra till exempelkatalogen för instrumentpanelen i din lokala kopia av Azure IoT Operations-lagringsplatsen, azure-iot-operations>samples>grafana-dashboard och välj sedan instrumentpanelsfilen.
aio.sample.jsonNär programmet frågar väljer du din hanterade Prometheus-datakälla.
Välj Importera.