Erste Schritte: Konfigurieren der Einblicke mit einem Skript in Azure IoT Einsatz (Preview)
Wichtig
Die von Azure Arc unterstützte Vorschauversion von „Azure IoT Einsatz“ befindet sich derzeit in der Vorschauphase. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.
Sie müssen eine neue Installation von „Azure IoT Einsatz“ bereitstellen, wenn ein allgemein verfügbares Release verfügbar wird. Sie werden kein Upgrade für eine Preview-Installation durchführen können.
Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.
Observability bietet Einblick in jede Ebene Ihrer Azure IoT Operations-Konfiguration. Sie erhalten Einblicke in das tatsächliche Verhalten von Problemen, wodurch die Effektivität des Zuverlässigkeits-Engineerings von Standorten erhöht wird. Azure IoT Operations bietet Observability über benutzerdefinierte kuratierte Grafana-Dashboards, die in Azure gehostet werden. Diese Dashboards werden von dem Azure Monitor verwalteter Dienst für Prometheus und von Container Insights unterstützt. In diesem Artikel erfahren Sie, wie Sie die Dienste konfigurieren, die Sie für den Einblick benötigen.
Voraussetzungen
- Arc-fähiger Kubernetes-Cluster.
- Helm ist auf dem Entwicklungscomputer installiert. Anleitungen finden Sie unter Installation von Helm.
- Kubectl ist auf dem Entwicklungscomputer installiert. Anleitungen finden Sie unter Installation von Kubernetes-Tools.
- Installation der Azure CLI auf Ihrem Entwicklungscomputer. Weitere Informationen finden Sie unter Installieren der Azure CLI.
Konfigurieren Ihres Abonnements
Führen Sie den folgenden Code aus, um Anbieter für das Abonnement zu registrieren, in dem sich Ihr Cluster befindet.
Hinweis
Dieser Schritt muss nur einmal pro Abonnement durchgeführt werden. Zum Registrieren von Ressourcenanbietern benötigen Sie die Berechtigung zum Ausführen des /register/action
-Vorgangs, welche in den Rollen „Mitwirkender“ und „Besitzer“ des Abonnements enthalten ist. Weitere Informationen finden Sie unter Azure-Ressourcenanbieter und -typen.
az account set -s <subscription-id>
az provider register -n "Microsoft.Insights"
az provider register -n "Microsoft.AlertsManagement"
Observability-Komponenten installieren
Mit den Schritten in diesem Abschnitt wird ein OpenTelemetry (OTel) Collector bereitgestellt. Dann werden freigegebene Überwachungsressourcen installiert, und Ihr Arc-fähiger Cluster wird konfiguriert, um Einblicksignale an diese Ressourcen zu senden. Zu den freigegebenen Überwachungsressourcen gehören Azure Managed Grafana, Azure Monitor Workspace, Azure Managed Prometheus, Azure Log Analytics und Container Insights.
Bereitstellen eines OpenTelemetry Collector
Klonen Sie das Repository von „Azure IoT Einsatz“, oder laden Sie es auf Ihren lokalen Computer herunter: azure-iot-operations.git.
Hinweis
Das Repository enthält die Bereitstellungsdefinition von Azure IoT Operations und Beispiele, die die in diesem Artikel verwendeten Beispieldashboards enthalten.
Browsen Sie in Ihrer lokalen Kopie des Repositorys zum folgenden Pfad:
azure-iot-operations\tools\setup-3p-obs-infra
Erstellen Sie eine Datei namens
otel-collector-values.yaml
, und fügen Sie den folgenden Code in die Datei ein, um einen OpenTelemetry Collector zu definieren: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
Notieren Sie sich in der
otel-collector-values.yaml
-Datei die folgenden Werte, die Sie imaz iot ops init
-Befehl verwenden, wenn Sie „Azure IoT Einsatz“ im Cluster bereitstellen:- fullnameOverride
- grpc.endpoint
- check_interval
Speichern und schließen Sie die Datei.
Stellen Sie den Collector bereit, indem Sie die folgenden Befehle ausführen:
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
Bereitstellen von Einblickkomponenten
Führen Sie einen der folgenden Befehle aus, um die Einblickkomponenten bereitzustellen. Verwenden Sie die Abonnement-ID und Ressourcengruppe des Arc-fähigen Clusters, den Sie überwachen möchten.
Hinweis
Weitere optionale Parameter, die Sie festlegen können, finden Sie in der Bicep-Datei. Die optionalen Parameter können Elemente wie alternative Speicherorte für Clusterressourcen angeben.
Der folgende Befehl gewährt dem Benutzer Administratorzugriff auf die neu erstellte Grafana-Instanz:
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
Wenn dieser Zugriff nicht Ihren Vorstellungen entspricht, verwenden Sie den folgenden Befehl, der keine Berechtigungen konfiguriert. Richten Sie die Berechtigungen dann manuell mithilfe von Rollenzuweisungen ein, bevor andere Personen auf die Grafana-Instanz zugreifen können. Weisen Sie je nach gewünschter Zugriffsebene eine der Grafana-Rollen (Grafana Admin, Grafana Editor, Grafana Viewer) zu.
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
Wenn die Bereitstellung erfolgreich ist, werden am Ende der Befehlsausgabe einige Informationen gedruckt. Die Informationen umfassen die Grafana-URL und die Ressourcen-IDs für die erstellten Log Analytics- und Azure Monitor-Ressourcen. Mit der Grafana-URL können Sie zu der Grafana-Instanz gehen, die Sie in Bereitstellen von Dashboards für Grafana konfigurieren. Mit den beiden Ressourcen-IDs können Sie andere Arc-aktivierte Cluster konfigurieren, indem Sie die Schritte unter Hinzufügen eines Arc-fähigen Clusters zu einer vorhandenen Observability-Infrastrukturausführen.
Konfigurieren der Prometheus-Metriksammlung
Kopieren Sie die folgende Konfiguration, und fügen Sie sie in eine neue Datei mit dem Namen
ama-metrics-prometheus-config.yaml
ein, und speichern Sie die Datei: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
Wenden Sie die Konfigurationsdatei an, indem Sie den folgenden Befehl ausführen:
kubectl apply -f ama-metrics-prometheus-config.yaml
Bereitstellen von Dashboards in Grafana
Azure IoT Operations bietet eine Sammlung von Dashboards, die Ihnen viele der Visualisierungen bieten, die Sie benötigen, um die Integrität und Leistung Ihrer Azure IoT Operations-Bereitstellung zu verstehen.
Führen Sie die folgenden Schritte aus, um die von Azure IoT Operations kuratierten Grafana-Dashboards zu installieren.
Melden Sie sich bei der Grafana-Konsole an, und wählen Sie dann im oberen rechten Bereich der Grafana-Anwendung das + Symbol aus.
Wählen Sie Dashboard importieren aus, und folgen Sie den Anweisungen, um zu dem samples\grafana-dashboards -Pfad in Ihrer lokalen geklonten Kopie des Repositorys zu navigieren, und wählen Sie eine JSON-Dashboarddatei aus
Wenn die Anwendung dazu auffordert, wählen Sie Ihre verwaltete Prometheus-Datenquelle aus.
Wählen Sie Importieren aus