Nasazení prostředků pozorovatelnosti a nastavení protokolů
Pozorovatelnost poskytuje přehled o každé vrstvě konfigurace provozu Azure IoT. 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. Tyto řídicí panely využívají spravovanou službu Azure Monitor pro Prometheus a Container Insights. V této příručce se dozvíte, jak nastavit Spravované prometheus Azure a Grafana a povolit monitorování clusteru Azure Arc.
Před nasazením operací Azure IoT do clusteru proveďte kroky v tomto článku.
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 stačí spustit jenom jednou pro každé předplatné. K registraci poskytovatelů prostředků potřebujete oprávnění k provedení
/register/action
operace, 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.OperationalInsights
Nainstalujte rozšíření Azure CLI pro shromažďování metrik pro clustery s podporou Azure Arc a Azure Managed Grafana.
az extension add --name k8s-extension az extension add --name amg
Vytvoř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 tsv
Ulož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 tsv
Ulož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 tsv
Ulož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 dříve vytvořeného pracovního prostoru služby Azure Monitor. Tento pracovní prostor také propošte s instancí Grafany.
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 pro shromažďování 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.yaml
soubor 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: false
otel-collector-values.yaml
V souboru si poznamenejte následující hodnoty, které použijete vaz iot ops create
příkazu při nasazování operací Azure IoT v clusteru:- fullnameOverride
- grpc.endpoint
- check_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.yaml
a 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-system
Použijte konfigurační soubor spuštěním následujícího příkazu:
kubectl apply -f ama-metrics-prometheus-config.yaml
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 show
příkazu načtete adresu URL.az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
V aplikaci Grafana vyberte + ikonu.
Vyberte Importovat řídicí panel.
Přejděte do adresáře ukázkového řídicího panelu v místní kopii úložiště Azure IoT Operations, ukázek>grafana-operations azure-iot-operations> a pak vyberte soubor řídicího panelu.
aio.sample.json
Po zobrazení výzvy aplikace vyberte spravovaný zdroj dat Prometheus.
Vyberte Importovat.