Wdrażanie zasobów z obserwacją i konfigurowanie dzienników
Widoczność zapewnia wgląd w każdą warstwę konfiguracji operacji usługi Azure IoT. Zapewnia wgląd w rzeczywiste zachowanie problemów, co zwiększa efektywność inżynierii niezawodności lokacji. Operacje usługi Azure IoT oferują możliwość obserwowania za pośrednictwem niestandardowych wyselekcjonowanych pulpitów nawigacyjnych Grafana hostowanych na platformie Azure. Te pulpity nawigacyjne są obsługiwane przez usługę zarządzaną Azure Monitor dla rozwiązania Prometheus i usługi Container Insights. W tym przewodniku pokazano, jak skonfigurować usługę Azure Managed Prometheus i Grafana oraz włączyć monitorowanie klastra usługi Azure Arc.
Przed wdrożeniem operacji usługi Azure IoT w klastrze wykonaj kroki opisane w tym artykule.
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
Ten krok musi być uruchamiany tylko raz na subskrypcję. Aby zarejestrować dostawców zasobów, musisz mieć uprawnienia do wykonania
/register/action
operacji, która jest uwzględniona w rolach Współautor subskrypcji 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.OperationalInsights
Zainstaluj rozszerzenia interfejsu wiersza polecenia platformy Azure dla kolekcji metryk dla klastrów z obsługą usługi Azure Arc i zarządzanej platformy Azure Grafana.
az extension add --name k8s-extension az extension add --name amg
Utwó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 tsv
Zapisz 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 tsv
Zapisz 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 tsv
Zapisz 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 zbierał metryki i wysyłał je do wcześniej utworzonego obszaru roboczego usługi Azure Monitor. Możesz również połączyć ten obszar roboczy z wystąpieniem narzędzia 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.yaml
i 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: false
otel-collector-values.yaml
W pliku zanotuj następujące wartości, które są używane w poleceniu podczasaz iot ops create
wdrażania operacji usługi Azure IoT w klastrze:- fullnameOverride
- grpc.endpoint
- check_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.yaml
i 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-system
Zastosuj plik konfiguracji, uruchamiając następujące polecenie:
kubectl apply -f ama-metrics-prometheus-config.yaml
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 poniższe kroki, aby zainstalować wyselekcjonowane pulpity nawigacyjne narzędzia Grafana dla operacji usługi 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 show
polecenia , aby pobrać adres URL.az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
W aplikacji Grafana wybierz ikonę + .
Wybierz pozycję Importuj pulpit nawigacyjny.
Przejdź do przykładowego katalogu pulpitu nawigacyjnego w lokalnej kopii repozytorium Operacje usługi Azure IoT, przykładów>azure-iot-operations>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.