Bereitstellen von Einblickressourcen und Einrichten von Protokollen
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 dieser Anleitung erfahren Sie, wie Sie Azure Managed Prometheus und Grafana einrichten und die Überwachung für Ihren Azure Arc-Cluster aktivieren.
Führen Sie die Schritte in diesem Artikel aus, bevor Sie Azure IoT Einsatz in Ihrem Cluster bereitstellen.
Voraussetzungen
- Arc-fähiger Kubernetes-Cluster.
- Azure CLI auf Ihrem Clustercomputer installiert. Die erforderlichen Anweisungen finden Sie unter Installieren der Azure CLI.
- Helm auf Ihrem Clustercomputer installiert. Anleitungen finden Sie unter Installation von Helm.
- Kubectl auf Ihrem Clustercomputer installiert. Anleitungen finden Sie unter Installation von Kubernetes-Tools.
Erstellen von Ressourcen in Azure
Registrieren Sie Anbieter für das Abonnement, 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 --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
Installieren Sie Azure CLI-Erweiterungen für die Metriksammlung für Azure Arc-fähige Cluster und Azure Managed Grafana.
az extension add --name k8s-extension az extension add --name amg
Erstellen Sie einen Azure Monitor-Arbeitsbereich, um die Metrikerfassung für Ihren Azure Arc-fähigen Kubernetes-Cluster zu aktivieren.
az monitor account create --name <WORKSPACE_NAME> --resource-group <RESOURCE_GROUP> --location <LOCATION> --query id -o tsv
Speichern Sie die Azure Monitor-Arbeitsbereich-ID aus der Ausgabe dieses Befehls. Sie verwenden die ID, wenn Sie im nächsten Abschnitt die Metrikerfassung aktivieren.
Erstellen Sie eine Azure Managed Grafana-Instanz, um Ihre Prometheus-Metriken zu visualisieren.
az grafana create --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv
Speichern Sie die Grafana-ID aus der Ausgabe dieses Befehls. Sie verwenden die ID, wenn Sie im nächsten Abschnitt die Metrikerfassung aktivieren.
Erstellen Sie einen Log Analytics-Arbeitsbereich für Container Insights.
az monitor log-analytics workspace create -g <RESOURCE_GROUP> -n <LOGS_WORKSPACE_NAME> --query id -o tsv
Speichern Sie die Log Analytics-Arbeitsbereichs-ID aus der Ausgabe dieses Befehls. Sie verwenden die ID, wenn Sie im nächsten Abschnitt die Metrikerfassung aktivieren.
Aktivieren Sie die Metrikerfassung für den Cluster
Aktualisieren Sie den Azure Arc-Cluster, um Metriken zu sammeln und sie an den zuvor erstellten Azure Monitor-Arbeitsbereich zu senden. Sie verknüpfen diesen Arbeitsbereich auch mit der Grafana-Instanz.
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>
Aktivieren Sie die Container-Insights-Protokolle für die Protokollsammlung.
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>
Sobald diese Schritte abgeschlossen sind, haben Sie sowohl Azure Monitor als auch Grafana eingerichtet und mit Ihrem Cluster für Einblicke und Metrikerfassung verknüpft.
Bereitstellen eines OpenTelemetry Collector
Definieren und implementieren Sie einen OpenTelemetry (OTel)-Collector in Ihrem Arc-fähigen Kubernetes-Cluster.
Erstellen Sie eine Datei namens
otel-collector-values.yaml
, und fügen Sie den folgenden Code 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 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
Notieren Sie sich die folgenden Werte der Datei
otel-collector-values.yaml
, die Sie im Befehlaz iot ops create
beim Bereitstellen von Azure IoT Einsatz im Cluster verwenden:- 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
Konfigurieren der Prometheus-Metriksammlung
Konfigurieren Sie die Prometheus-Metriksammlung auf Ihrem Cluster.
Erstellen Sie eine Datei namens
ama-metrics-prometheus-config.yaml
, und fügen Sie die folgende Konfiguration ein: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
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 ein Beispiel-Dashboard, das Ihnen viele der Visualisierungen bietet, die Sie benötigen, um den Zustand und die Leistung Ihrer Azure IoT Einsatz-Bereitstellung zu verstehen.
Führen Sie die folgenden Schritte aus, um die von Azure IoT Operations kuratierten Grafana-Dashboards zu installieren.
Klonen oder downloaden Sie das azure-iot-operations-Repository, um die Grafana-Dashboard-JSON-Beispieldatei lokal zu erhalten: https://github.com/Azure/azure-iot-operations.
Melden Sie sich bei der Grafana-Konsole an. Sie können über das Azure-Portal auf die Konsole zugreifen oder den Befehl
az grafana show
verwenden, um die URL abzurufen.az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
Wählen Sie in der Grafana-Anwendung das Symbol + aus.
Wählen Sie Dashboard importieren aus.
Navigieren Sie zum Beispieldashboardverzeichnis in Ihrer lokalen Kopie des Azure IoT Einsatz-Repositories: azure-iot-operations>samples>grafana-dashboard, und wählen Sie dann die Dashboarddatei
aio.sample.json
aus.Wenn die Anwendung dazu auffordert, wählen Sie Ihre verwaltete Prometheus-Datenquelle aus.
Klicken Sie auf Importieren.