Distribuera observerbarhetsresurser och konfigurera loggar
Viktigt!
Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc är för närvarande i förhandsversion. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.
Du måste distribuera en ny Azure IoT Operations-installation när en allmänt tillgänglig version blir tillgänglig. Du kommer inte att kunna uppgradera en förhandsgranskningsinstallation.
Juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller som ännu inte har släppts i allmän tillgänglighet finns i Kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.
Observerbarhet ger insyn i varje lager i din Azure IoT Operations-konfiguration. Det 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 som finns i Azure. Dessa instrumentpaneler drivs av Azure Monitor-hanterad tjänst för Prometheus och Container Insights. Den här guiden visar hur du konfigurerar Azure Managed Prometheus och Grafana och aktiverar övervakning för ditt Azure Arc-kluster.
Slutför stegen i den här artikeln innan du distribuerar Azure IoT Operations till klustret.
Förutsättningar
- Ett Arc-aktiverat Kubernetes-kluster.
- Azure CLI installerat på utvecklingsdatorn. Anvisningar finns i Installera Azure CLI.
- Helm installerat på utvecklingsdatorn. Anvisningar finns i Installera Helm.
- Kubectl installerat på utvecklingsdatorn. Anvisningar finns i Installera Kubernetes-verktyg.
Skapa resurser i Azure
Registrera leverantörer med prenumerationen där klustret finns.
Kommentar
Det här steget behöver bara köras 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.OperationalInsights
Installera Azure CLI-tillägg för insamling av mått för Azure Arc-aktiverade kluster och Azure Managed Grafana.
az extension add --name k8s-extension az extension add --name amg
Skapa 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 tsv
Spara 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 tsv
Spara 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 tsv
Spara 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 tidigare skapade Azure Monitor-arbetsytan. 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 de här stegen har slutförts har du både Azure Monitor och Grafana konfigurerade och länkade 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.yaml
och 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: false
otel-collector-values.yaml
Anteckna följande värden i filen som du använder iaz iot ops create
kommandot 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.yaml
och 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-system
Använd konfigurationsfilen genom att köra följande kommando:
kubectl apply -f ama-metrics-prometheus-config.yaml
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 show
kommandot för att hämta URL:en.az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
I Grafana-programmet väljer du + ikonen.
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.json
När programmet frågar väljer du din hanterade Prometheus-datakälla.
Välj Importera.