Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możliwość obserwowania operacji usługi Azure IoT zapewnia wgląd w każdą warstwę konfiguracji i zapewnia wgląd w rzeczywiste zachowanie problemów, co zwiększa skuteczność inżynierii niezawodności lokacji. Operacje usługi Azure IoT oferują wgląd w niestandardowe nadzorowane pulpity nawigacyjne Grafana hostowane na platformie Azure, obsługiwane przez usługę zarządzaną Azure Monitor dla rozwiązań Prometheus i Container Insights.
W tym artykule pokazano, jak wdrożyć zasoby umożliwiające obserwowanie operacji usługi Azure IoT, skonfigurować usługę Azure Managed Prometheus i Grafana oraz włączyć kompleksowe monitorowanie klastra usługi Azure Arc.
Wymagania wstępne
- Klaster Kubernetes z obsługą usługi Arc.
- Interfejs wiersza polecenia platformy Azure zainstalowany na maszynie klastra. Aby uzyskać instrukcje, zobacz Jak zainstalować interfejs wiersza polecenia platformy Azure.
- Program Helm zainstalowany na maszynie klastra. Aby uzyskać instrukcje, zobacz Instalowanie programu Helm.
- Platforma Kubectl zainstalowana na maszynie klastra. Aby uzyskać instrukcje, zobacz Instalowanie narzędzi platformy Kubernetes.
Tworzenie zasobów na platformie Azure
Zarejestruj dostawców w subskrypcji, w której znajduje się klaster.
Uwaga
Uruchom ten krok tylko raz na subskrypcję. Aby zarejestrować dostawców zasobów, musisz mieć uprawnienia do wykonania
/register/actionoperacji, która jest uwzględniona w rolach subskrypcji Współpracownik i Właściciel. Aby uzyskać więcej informacji, zobacz Dostawcy zasobów i typy platformy 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.OperationalInsightsZainstaluj rozszerzenia CLI Azure do zbierania metryk dla klastrów obsługiwanych przez Azure Arc oraz Managed Grafana Azure.
az extension add --upgrade --name k8s-extension az extension add --upgrade --name amgUtwórz obszar roboczy usługi Azure Monitor, aby włączyć zbieranie metryk dla klastra Kubernetes z obsługą usługi Azure Arc:
az monitor account create --name <WORKSPACE_NAME> --resource-group <RESOURCE_GROUP> --location <LOCATION> --query id -o tsvZapisz identyfikator obszaru roboczego usługi Azure Monitor z danych wyjściowych tego polecenia. Identyfikator jest używany podczas włączania kolekcji metryk w następnej sekcji.
Utwórz wystąpienie usługi Azure Managed Grafana, aby zwizualizować metryki rozwiązania Prometheus:
az grafana create --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsvZapisz identyfikator narzędzia Grafana z danych wyjściowych tego polecenia. Identyfikator jest używany podczas włączania kolekcji metryk w następnej sekcji.
Utwórz obszar roboczy usługi Log Analytics dla usługi Container Insights:
az monitor log-analytics workspace create -g <RESOURCE_GROUP> -n <LOGS_WORKSPACE_NAME> --query id -o tsvZapisz identyfikator obszaru roboczego usługi Log Analytics z danych wyjściowych tego polecenia. Identyfikator jest używany podczas włączania kolekcji metryk w następnej sekcji.
Włączanie zbierania metryk dla klastra
Zaktualizuj klaster usługi Azure Arc, aby zebrać metryki i wysłać je do utworzonego obszaru roboczego usługi Azure Monitor. Możesz również połączyć ten obszar roboczy z instancją 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>
Włącz dzienniki usługi Container Insights dla zbierania dzienników:
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 wykonaniu tych kroków zarówno usługa Azure Monitor, jak i narzędzie Grafana zostały skonfigurowane i połączone z klastrem w celu obserwowania i zbierania metryk.
Wdrażanie modułu zbierającego OpenTelemetry
Zdefiniuj i wdróż moduł zbierający OpenTelemetry (OTel) w klastrze Kubernetes z obsługą usługi Arc.
Utwórz plik o nazwie
otel-collector-values.yamli wklej do niego następujący kod, aby zdefiniować moduł zbierający 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.yamlW pliku zanotuj następujące wartości, które są używane w poleceniu podczasaz iot ops createwdrażania operacji usługi Azure IoT w klastrze:fullnameOverridegrpc.endpointcheck_interval
Zapisz i zamknij plik.
Wdróż moduł zbierający, uruchamiając następujące polecenia:
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
Konfigurowanie kolekcji metryk rozwiązania Prometheus
Skonfiguruj kolekcję metryk rozwiązania Prometheus w klastrze.
Utwórz plik o nazwie
ama-metrics-prometheus-config.yamli wklej następującą konfigurację: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-systemZastosuj plik konfiguracji, uruchamiając następujące polecenie:
kubectl apply -f ama-metrics-prometheus-config.yaml
Ustawienie konfiguracji obserwowalności
W dowolnym momencie możesz skonfigurować konfigurację obserwacji wdrożenia operacji usługi Azure IoT. Po skonfigurowaniu zasobów do obserwowania można uaktualnić konfigurację obserwacji, uruchamiając az iot ops upgrade polecenie z parametrem --ops-config , aby określić nowe wartości konfiguracji:
az iot ops upgrade --resource-group <rg name> -n <instance name> --ops-config observability.metrics.openTelemetryCollectorAddress=<>
| Parameter | Wartość | Opis |
|---|---|---|
--ops-config |
observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT> |
Podaj adres modułu zbierającego OpenTelemetry (OTel) skonfigurowany w pliku otel-collector-values.yaml. Instrukcje w tym artykule korzystają z przykładowych wartości fullnameOverride=aio-otel-collector i grpc.endpoint=4317. |
--ops-config |
observability.metrics.exportInternalSeconds=<CHECK_INTERVAL> |
check_interval Podaj wartość skonfigurowaną w pliku otel-collector-values.yaml.Instrukcje w tym artykule używają przykładowej wartości check_interval=60. |
Uwaga
W wersjach zapoznawczych az iot ops upgrade polecenie nie działa przy uaktualnianiu do wersji zapoznawczej, ale działa do skonfigurowania operacji Azure IoT na potrzeby obserwacji.
Wdrażanie pulpitów nawigacyjnych w usłudze Grafana
Operacje usługi Azure IoT udostępnia przykładowy pulpit nawigacyjny zaprojektowany w celu zapewnienia wielu wizualizacji potrzebnych do zrozumienia kondycji i wydajności wdrożenia operacji usługi Azure IoT.
Wykonaj następujące kroki, aby zainstalować wyselekcjonowane dashboardy Grafana dla operacji Azure IoT:
Sklonuj lub pobierz repozytorium azure-iot-operations , aby pobrać przykładowy plik json pulpitu nawigacyjnego narzędzia Grafana lokalnie: https://github.com/Azure/azure-iot-operations.
Zaloguj się do konsoli narzędzia Grafana. Dostęp do konsoli można uzyskać za pośrednictwem witryny Azure Portal lub użyć
az grafana showpolecenia , aby pobrać adres URL.az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsvNa stronie docelowej narzędzia Grafana wybierz kafelek Utwórz pierwszy pulpit nawigacyjny .
Wybierz Importuj pulpit nawigacyjny.
Przejdź do katalogu z przykładowym pulpitem nawigacyjnym w lokalnej kopii repozytorium Azure IoT Operations, azure-iot-operations > samples > grafana-dashboard, a następnie wybierz plik pulpitu nawigacyjnego aio.sample.json.
Po wyświetleniu monitu przez aplikację wybierz zarządzane źródło danych Prometheus.
Wybierz Importuj.