Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pozorovatelnost provozu Azure IoT poskytuje přehled o každé vrstvě vaší konfigurace a poskytuje přehled o skutečném chování problémů, což zvyšuje efektivitu techniky spolehlivosti lokality. Operace Azure IoT nabízí pozorovatelnost prostřednictvím vlastních kurátorovaných řídicích panelů Grafana hostovaných v Azure, které využívají spravovanou službu Azure Monitor pro Prometheus a Container Insights.
V tomto článku se dozvíte, jak nasadit zdroje pozorovatelnosti operací pro Azure IoT, nastavit Spravovaný Prometheus a Grafanu Azure a povolit úplné monitorování clusteru Azure Arc.
Požadavky
- Cluster Kubernetes s podporou arc.
- Azure CLI nainstalované na vašem počítači clusteru. Pokyny najdete v tématu Postup instalace Azure CLI.
- Helm nainstalovaný na vašem počítači clusteru. Pokyny najdete v tématu Instalace Nástroje Helm.
- Na počítači clusteru je nainstalovaný kubectl. Pokyny najdete v tématu Instalace nástrojů Kubernetes.
Vytvoření prostředků v Azure
Zaregistrujte poskytovatele v předplatném, ve kterém se nachází váš cluster.
Poznámka:
Tento krok spusťte jenom jednou pro každé předplatné. K registraci poskytovatelů prostředků potřebujete oprávnění k provedení
/register/actionoperace, která je součástí rolí Přispěvatel předplatného a Vlastník . Další informace najdete v tématu Poskytovatelé a typy prostředků 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.OperationalInsightsNainstalujte rozšíření Azure CLI pro shromažďování metrik pro clustery s podporou Azure Arc a Azure Managed Grafana:
az extension add --upgrade --name k8s-extension az extension add --upgrade --name amgVytvořte pracovní prostor služby Azure Monitor, který povolí shromažďování metrik pro cluster Kubernetes s podporou Azure Arc:
az monitor account create --name <WORKSPACE_NAME> --resource-group <RESOURCE_GROUP> --location <LOCATION> --query id -o tsvUložte ID pracovního prostoru služby Azure Monitor z výstupu tohoto příkazu. ID použijete, když povolíte shromažďování metrik v další části.
Vytvořte instanci Azure Managed Grafana, která vizualizuje metriky Prometheus:
az grafana create --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsvUložte ID Grafany z výstupu tohoto příkazu. ID použijete, když povolíte shromažďování metrik v další části.
Vytvořte pracovní prostor služby Log Analytics pro Container Insights:
az monitor log-analytics workspace create -g <RESOURCE_GROUP> -n <LOGS_WORKSPACE_NAME> --query id -o tsvUložte ID pracovního prostoru služby Log Analytics z výstupu tohoto příkazu. ID použijete, když povolíte shromažďování metrik v další části.
Povolení shromažďování metrik pro cluster
Aktualizujte cluster Azure Arc tak, aby shromažďoval metriky a odesílal je do pracovního prostoru služby Azure Monitor, který jste vytvořili. Tento pracovní prostor také propojte s instancí 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>
Povolte protokoly Container Insights ke sběru protokolů:
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>
Po dokončení těchto kroků máte azure Monitor i Grafana nastavené a propojené s clusterem pro pozorovatelnost a shromažďování metrik.
Nasazení kolekce OpenTelemetry
Definujte a nasaďte kolektor OpenTelemetry (OTel) do clusteru Kubernetes s podporou Arc.
Vytvořte volaný
otel-collector-values.yamlsoubor a vložte do něj následující kód, který definuje kolekci 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: falseotel-collector-values.yamlV souboru si poznamenejte následující hodnoty, které použijete vaz iot ops createpříkazu při nasazování operací Azure IoT v clusteru:fullnameOverridegrpc.endpointcheck_interval
Soubor uložte a zavřete.
Nasaďte kolektor spuštěním následujících příkazů:
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
Konfigurace kolekce metrik Prometheus
Nakonfigurujte shromažďování metrik Prometheus ve vašem clusteru.
Vytvořte soubor s názvem
ama-metrics-prometheus-config.yamla vložte následující konfiguraci: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-systemPoužijte konfigurační soubor spuštěním následujícího příkazu:
kubectl apply -f ama-metrics-prometheus-config.yaml
Nastavení konfigurace pozorovatelnosti
Konfiguraci pozorovatelnosti nasazení Azure IoT Operations můžete kdykoli nastavit. Po nakonfigurování prostředků pozorovatelnosti můžete konfiguraci pozorovatelnosti upgradovat spuštěním az iot ops upgrade příkazu s parametrem --ops-config a zadat nové hodnoty konfigurace:
az iot ops upgrade --resource-group <rg name> -n <instance name> --ops-config observability.metrics.openTelemetryCollectorAddress=<>
| Parameter | Hodnota | Popis |
|---|---|---|
--ops-config |
observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT> |
Zadejte adresu kolektoru OpenTelemetry (OTel), kterou jste nakonfigurovali v souboru otel-collector-values.yaml. Pokyny v tomto článku používají ukázkové hodnoty fullnameOverride=aio-otel-collector a grpc.endpoint=4317. |
--ops-config |
observability.metrics.exportInternalSeconds=<CHECK_INTERVAL> |
check_interval Zadejte hodnotu, kterou jste nakonfigurovali v souboru otel-collector-values.yaml.Pokyny v tomto článku používají ukázkovou hodnotu check_interval=60. |
Poznámka:
Ve verzích az iot ops upgrade Preview nefunguje příkaz pro upgrade na verzi Preview, ale funguje pro konfiguraci operací Azure IoT pro pozorovatelnost.
Nasazení řídicích panelů do Grafany
Operace Azure IoT poskytují ukázkový řídicí panel navržený tak, aby vám poskytl mnoho vizualizací, které potřebujete k pochopení stavu a výkonu nasazení operací Azure IoT.
Provedením následujících kroků nainstalujte řídicí panely Grafana s kurátorovanými operacemi Azure IoT:
Naklonujte nebo stáhněte úložiště azure-iot-operations a získejte ukázkový soubor JSON řídicího panelu Grafana místně: https://github.com/Azure/azure-iot-operations.
Přihlaste se ke konzole Grafana. Ke konzole se dostanete prostřednictvím webu Azure Portal nebo pomocí
az grafana showpříkazu načtete adresu URL.az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsvNa cílové stránce Grafana vyberte dlaždici Vytvořit první řídicí panel .
Vyberte Importovat řídicí panel.
Přejděte do adresáře ukázkového řídicího panelu ve vaší místní kopii úložiště Azure IoT Operations, azure-iot-operations > samples > grafana-dashboard, pak vyberte soubor řídicího panelu aio.sample.json.
Po zobrazení výzvy aplikace vyberte spravovaný zdroj dat Prometheus.
Vyberte Importovat.