Implantar recursos de observabilidade e configurar logs
Importante
Azure IoT Operations Preview – habilitado pelo Azure Arc está atualmente em visualização. Não deve utilizar este software de pré-visualização em ambientes de produção.
Você precisará implantar uma nova instalação do Azure IoT Operations quando uma versão disponível ao público estiver disponível. Você não poderá atualizar uma instalação de visualização.
Para obter os termos legais que se aplicam aos recursos do Azure que estão em versão beta, em visualização ou ainda não lançados em disponibilidade geral, consulte os Termos de Uso Suplementares para Visualizações do Microsoft Azure.
A observabilidade fornece visibilidade em cada camada da sua configuração de Operações do Azure IoT. Ele fornece informações sobre o comportamento real dos problemas, o que aumenta a eficácia da engenharia de confiabilidade do site. O Azure IoT Operations oferece observabilidade por meio de painéis Grafana personalizados e selecionados que são hospedados no Azure. Esses painéis são alimentados pelo serviço gerenciado do Azure Monitor para Prometheus e pelo Container Insights. Este guia mostra como configurar o Azure Managed Prometheus e o Grafana e habilitar o monitoramento para seu cluster do Azure Arc.
Conclua as etapas neste artigo antes de implantar o Azure IoT Operations em seu cluster.
Pré-requisitos
- Um cluster Kubernetes habilitado para Arc.
- CLI do Azure instalada em sua máquina de desenvolvimento. Para obter instruções, consulte Como instalar a CLI do Azure.
- Leme instalado em sua máquina de desenvolvimento. Para obter instruções, consulte Instalar leme.
- Kubectl instalado em sua máquina de desenvolvimento. Para obter instruções, consulte Instalar ferramentas do Kubernetes.
Criar recursos no Azure
Registe fornecedores com a subscrição onde o cluster está localizado.
Nota
Esta etapa só precisa ser executada uma vez por assinatura. Para registrar provedores de recursos, você precisa de permissão para fazer a
/register/action
operação, que está incluída nas funções de Colaborador e Proprietário da assinatura. Para obter mais informações, consulte Tipos e provedores de recursos do 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
Instale as extensões da CLI do Azure para coleta de métricas para clusters habilitados para Azure Arc e Azure Managed Grafana.
az extension add --name k8s-extension az extension add --name amg
Crie um espaço de trabalho do Azure Monitor para habilitar a coleta de métricas para seu cluster Kubernetes habilitado para Azure Arc.
az monitor account create --name <WORKSPACE_NAME> --resource-group <RESOURCE_GROUP> --location <LOCATION> --query id -o tsv
Salve a ID do espaço de trabalho do Azure Monitor na saída deste comando. Você usa o ID quando habilita a coleta de métricas na próxima seção.
Crie uma instância do Azure Managed Grafana para visualizar suas métricas do Prometheus.
az grafana create --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv
Salve o ID do Grafana na saída deste comando. Você usa o ID quando habilita a coleta de métricas na próxima seção.
Crie um espaço de trabalho do Log Analytics para o Container Insights.
az monitor log-analytics workspace create -g <RESOURCE_GROUP> -n <LOGS_WORKSPACE_NAME> --query id -o tsv
Salve o ID do espaço de trabalho do Log Analytics na saída deste comando. Você usa o ID quando habilita a coleta de métricas na próxima seção.
Habilitar a coleta de métricas para o cluster
Atualize o cluster do Azure Arc para coletar métricas e enviá-las para o espaço de trabalho do Azure Monitor criado anteriormente. Você também vincula esse espaço de trabalho à instância do 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>
Habilite os logs do Container Insights para a coleta de logs.
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>
Quando essas etapas forem concluídas, você terá o Azure Monitor e o Grafana configurados e vinculados ao cluster para observabilidade e coleta de métricas.
Implantar o OpenTelemetry Collector
Defina e implante um coletor OpenTelemetry (OTel) em seu cluster Kubernetes habilitado para Arc.
Crie um arquivo chamado
otel-collector-values.yaml
e cole o seguinte código nele para definir um OpenTelemetry Collector: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
No arquivo, anote os seguintes valores que você usa no comando ao implantar oaz iot ops create
Azure IoT Operations no cluster:- fullnameOverride
- grpc.ponto final
- check_interval
Guarde e feche o ficheiro.
Implante o coletor executando os seguintes comandos:
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
Configurar a coleção de métricas do Prometheus
Configure a coleção de métricas do Prometheus em seu cluster.
Crie um arquivo chamado
ama-metrics-prometheus-config.yaml
e cole a seguinte configuração: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
Aplique o arquivo de configuração executando o seguinte comando:
kubectl apply -f ama-metrics-prometheus-config.yaml
Implantar painéis no Grafana
O Azure IoT Operations fornece um painel de exemplo projetado para fornecer muitas das visualizações necessárias para entender a integridade e o desempenho de sua implantação do Azure IoT Operations.
Conclua as etapas a seguir para instalar os painéis Grafana com curadoria de Operações do Azure IoT.
Clone ou baixe o repositório azure-iot-operations para obter o arquivo json do Grafana Dashboard de exemplo localmente: https://github.com/Azure/azure-iot-operations.
Inicie sessão na consola do Grafana. Você pode acessar o console por meio do portal do Azure ou usar o
az grafana show
comando para recuperar a URL.az grafana show --name <GRAFANA_NAME> --resource-group <RESOURCE_GROUP> --query url -o tsv
No aplicativo Grafana, selecione o + ícone.
Selecione Importar painel.
Navegue até o diretório de exemplo do painel em sua cópia local do repositório de Operações do Azure IoT, azure-iot-operations>samples>grafana-dashboard e selecione o arquivo do
aio.sample.json
painel.Quando o aplicativo solicitar, selecione sua fonte de dados Prometheus gerenciada.
Selecione Importar.