Aan de slag: waarneembaarheid configureren met een script in Azure IoT Operations Preview
Belangrijk
Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in preview. Gebruik deze preview-software niet in productieomgevingen.
U moet een nieuwe Azure IoT Operations-installatie implementeren wanneer er een algemeen beschikbare release beschikbaar wordt gesteld. U kunt geen preview-installatie upgraden.
Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
Waarneembaarheid biedt inzicht in elke laag van uw Azure IoT Operations-configuratie. Het geeft u inzicht in het werkelijke gedrag van problemen, waardoor de effectiviteit van sitebetrouwbaarheidstechniek wordt verhoogd. Azure IoT Operations biedt waarneembaarheid via aangepaste gecureerde Grafana-dashboards die worden gehost in Azure. Deze dashboards worden mogelijk gemaakt door de beheerde Azure Monitor-service voor Prometheus en Container Insights. In dit artikel leest u hoe u de services configureert die u nodig hebt voor waarneembaarheid.
Vereisten
- Een Kubernetes-cluster met Arc.
- Helm is geïnstalleerd op uw ontwikkelcomputer. Zie Helm installeren voor instructies.
- Kubectl is geïnstalleerd op uw ontwikkelcomputer. Zie Kubernetes-hulpprogramma's installeren voor instructies.
- Azure CLI is geïnstalleerd op uw ontwikkelcomputer. Zie De Azure CLI installeren voor meer informatie.
Uw abonnement configureren
Voer de volgende code uit om providers te registreren bij het abonnement waar uw cluster zich bevindt.
Notitie
Deze stap hoeft slechts één keer per abonnement te worden uitgevoerd. Als u resourceproviders wilt registreren, moet u gemachtigd zijn om de /register/action
bewerking uit te voeren, die is opgenomen in de rollen Inzender en Eigenaar van het abonnement. Zie Azure-resourceproviders en -typen voor meer informatie.
az account set -s <subscription-id>
az provider register -n "Microsoft.Insights"
az provider register -n "Microsoft.AlertsManagement"
Waarneembaarheidsonderdelen installeren
Met de stappen in deze sectie implementeert u een OTelemetry Collector (OpenTelemetry) en installeert u vervolgens gedeelde bewakingsbronnen en configureert u uw Arc-cluster om waarneembaarheidssignalen naar deze resources te verzenden. De gedeelde bewakingsbronnen omvatten Azure Managed Grafana, Azure Monitor-werkruimte, Azure Managed Prometheus, Azure Log Analytics en Container Insights.
OpenTelemetry Collector implementeren
Kloon of download de Azure IoT Operations-opslagplaats naar uw lokale computer: azure-iot-operations.git.
Notitie
De opslagplaats bevat de implementatiedefinitie van Azure IoT-bewerkingen en voorbeelden die de voorbeelddashboards bevatten die in dit artikel worden gebruikt.
Blader naar het volgende pad in uw lokale kopie van de opslagplaats:
azure-iot-operations\tools\setup-3p-obs-infra
Maak een bestand met de naam
otel-collector-values.yaml
en plak de volgende code erin om een OpenTelemetry Collector te definiëren: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 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
Noteer in het
otel-collector-values.yaml
bestand de volgende waarden die u in de opdracht gebruikt bij hetaz iot ops init
implementeren van Azure IoT-bewerkingen op het cluster:- fullnameOverride
- grpc.endpoint
- check_interval
Sla het bestand op en sluit het bestand.
Implementeer de collector door de volgende opdrachten uit te voeren:
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
Waarneembaarheidsonderdelen implementeren
Implementeer de waarneembaarheidsonderdelen door een van de volgende opdrachten uit te voeren. Gebruik de abonnements-id en resourcegroep van het cluster met Arc dat u wilt bewaken.
Notitie
Als u andere optionele parameters wilt detecteren die u kunt instellen, raadpleegt u het bicep-bestand. De optionele parameters kunnen bijvoorbeeld alternatieve locaties voor clusterbronnen opgeven.
Met de volgende opdracht verleent u beheerderstoegang voor het zojuist gemaakte Grafana-exemplaar aan de gebruiker:
az deployment group create \ --subscription <subscription-id> \ --resource-group <cluster-resource-group> \ --template-file observability-full.bicep \ --parameters grafanaAdminId=$(az ad user show --id $(az account show --query user.name --output tsv) --query=id --output tsv) \ clusterName=<cluster-name> \ sharedResourceGroup=<shared-resource-group> \ sharedResourceLocation=<shared-resource-location> \ --query=properties.outputs
Als deze toegang niet is wat u wilt, voert u de volgende opdracht uit die geen machtigingen configureert. Stel vervolgens handmatig machtigingen in met behulp van roltoewijzingen voordat iedereen toegang heeft tot het Grafana-exemplaar. Wijs een van de Grafana-rollen (Grafana Admin, Grafana Editor, Grafana Viewer) toe, afhankelijk van het gewenste toegangsniveau.
az deployment group create \ --subscription <subscription-id> \ --resource-group <cluster-resource-group> \ --template-file observability-full.bicep \ --parameters clusterName=<cluster-name> \ sharedResourceGroup=<shared-resource-group> \ sharedResourceLocation=<shared-resource-location> \ --query=properties.outputs
Als de implementatie slaagt, worden enkele stukjes informatie aan het einde van de opdrachtuitvoer afgedrukt. De informatie bevat de Grafana-URL en de resource-id's voor zowel de Log Analytics- als Azure Monitor-resources die zijn gemaakt. Met de Grafana-URL kunt u naar het Grafana-exemplaar gaan dat u configureert in Dashboards implementeren in Grafana. Met de twee resource-id's kunt u andere Arc-clusters configureren door de stappen in Een cluster met Arc toe te voegen aan een bestaande waarneembaarheidsinfrastructuur.
Verzameling metrische gegevens van Prometheus configureren
Kopieer en plak de volgende configuratie in een nieuw bestand met de naam
ama-metrics-prometheus-config.yaml
en sla het bestand op:apiVersion: v1 data: prometheus-config: |2- scrape_configs: - job_name: e4k scrape_interval: 1m static_configs: - targets: - aio-internal-diagnostics-service.azure-iot-operations.svc.cluster.local:9600 - job_name: nats scrape_interval: 1m static_configs: - targets: - aio-dp-msg-store-0.aio-dp-msg-store-headless.azure-iot-operations.svc.cluster.local:7777 - 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
Pas het configuratiebestand toe door de volgende opdracht uit te voeren:
kubectl apply -f ama-metrics-prometheus-config.yaml
Dashboards implementeren in Grafana
Azure IoT Operations biedt een verzameling dashboards die zijn ontworpen om u veel van de visualisaties te bieden die u nodig hebt om inzicht te hebben in de status en prestaties van uw Azure IoT Operations-implementatie.
Voer de volgende stappen uit om de gecureerde Grafana-dashboards van Azure IoT Operations te installeren.
Meld u aan bij de Grafana-console en selecteer vervolgens in de rechterbovenhoek van de Grafana-toepassing het + pictogram
Selecteer Dashboard importeren, volg de aanwijzingen om naar het pad samples\grafana-dashboards in uw lokale gekloonde kopie van de opslagplaats te bladeren en selecteer een JSON-dashboardbestand
Wanneer de toepassing hierom wordt gevraagd, selecteert u de beheerde Prometheus-gegevensbron
Selecteer Importeren