Resolução de problemas de recursos
Este artigo identifica recursos de solução de problemas para serviços de dados habilitados para Azure Arc.
Envios
Logs Upload erros relacionados
Se você implantou o controlador de dados do Azure Arc no modo de conectividade usando kubectl
o direct
, e não criou um segredo para as credenciais do espaço de trabalho do Log Analytics, poderá ver as seguintes mensagens de erro na CR (Recurso Personalizado) do Controlador de Dados:
status": {
"azure": {
"uploadStatus": {
"logs": {
"lastUploadTime": "YYYY-MM-HHTMM:SS:MS.SSSSSSZ",
"message": "spec.settings.azure.autoUploadLogs is true, but failed to get log-workspace-secret secret."
},
Para resolver o erro acima, crie um segredo com as credenciais do Espaço de Trabalho do Log Analytics contendo as WorkspaceID
seguintes SharedAccessKey
opções:
apiVersion: v1
data:
primaryKey: <base64 encoding of Azure Log Analytics workspace primary key>
workspaceId: <base64 encoding of Azure Log Analytics workspace Id>
kind: Secret
metadata:
name: log-workspace-secret
namespace: <your datacontroller namespace>
type: Opaque
Erros relacionados ao carregamento de métricas no modo de conexão direta
Se você configurou o carregamento automático de métricas, no modo de conexão direta e as permissões necessárias para o MSI não foram concedidas corretamente (conforme descrito em Métricas de upload), você poderá ver um erro em seus logs da seguinte maneira:
'Metric upload response: {"error":{"code":"AuthorizationFailed","message":"Check Access Denied Authorization for AD object XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX over scope /subscriptions/XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX/resourcegroups/my-resource-group/providers/microsoft.azurearcdata/sqlmanagedinstances/arc-dc, User Tenant Id: XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX. Microsoft.Insights/Metrics/write was not allowed, Microsoft.Insights/Telemetry/write was notallowed. Warning: Principal will be blocklisted if the service principal is not granted proper access while it hits the GIG endpoint continuously."}}
Para resolver o erro acima, recupere o MSI para a extensão do controlador de dados do Azure Arc e conceda as funções necessárias conforme descrito em Carregar métricas.
Erros relacionados ao upload de uso no modo de conexão direta
Se você implantou seu controlador de dados do Azure Arc no modo de conexão direta, as permissões necessárias para carregar suas informações de uso serão concedidas automaticamente para a extensão MSI do controlador de dados do Azure Arc. Se o processo de carregamento automático tiver problemas relacionados com permissões, poderá ver um erro nos seus registos da seguinte forma:
identified that your data controller stopped uploading usage data to Azure. The error was:
{"lastUploadTime":"2022-05-05T20:10:47.6746860Z","message":"Data controller upload response: {\"error\":{\"code\":\"AuthorizationFailed\",\"message\":\"The client 'XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX' with object id 'XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX' does not have authorization to perform action 'microsoft.azurearcdata/datacontrollers/write' over scope '/subscriptions/XXXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXX/resourcegroups/my-resource-group/providers/microsoft.azurearcdata/datacontrollers/arc-dc' or the scope is invalid. If access was recently granted, please refresh your credentials.\"}}"}
Para resolver o problema de permissões, recupere o MSI e conceda as funções necessárias conforme descrito em Métricas de upload).
Atualizações
Tag de imagem incorreta
Se você estiver usando az
a CLI para atualizar e passar uma tag de imagem incorreta, verá um erro em dois minutos.
Job Still Active : Failed to await bootstrap job complete after retrying for 2 minute(s).
Failed to await bootstrap job complete after retrying for 2 minute(s).
Ao visualizar os pods, você verá o status do trabalho de bootstrap como ErrImagePull
.
STATUS
ErrImagePull
Quando você descrever o pod você verá
Failed to pull image "<registry>/<repository>/arc-bootstrapper:<incorrect image tag>": [rpc error: code = NotFound desc = failed to pull and unpack image
Para resolver, consulte o log de versão para obter a tag de imagem correta. Execute novamente o comando upgrade com a tag de imagem correta.
Não é possível conectar-se ao registro ou repositório
Se você estiver tentando atualizar e o trabalho de atualização não produziu um erro, mas é executado por mais de quinze minutos, você pode ver o progresso da atualização observando os pods. Executar
kubectl get pods -n <namespace>
Ao visualizar os pods, você verá o status do trabalho de bootstrap como ErrImagePull
.
STATUS
ErrImagePull
Descreva o pod de trabalho de bootstrap para exibir os Eventos.
kubectl describe pod <pod name> -n <namespace>
Quando você descrever o pod você verá um erro que diz
failed to resolve reference "<registry>/<repository>/arc-bootstrapper:<image tag>"
Isso é comum se sua imagem foi implantada a partir de um registro privado, você está usando o Kubernetes para atualizar por meio de um arquivo yaml e o arquivo yaml faz referência mcr.microsoft.com em vez do registro privado. Para resolver, cancele o trabalho de atualização. Para localizar o registro a partir do qual você implantou, execute
kubectl describe pod <controller in format control-XXXXX> -n <namespace>
Procure Containers.controller.Image, onde você verá o registro e o repositório. Capture esses valores, insira seu arquivo yaml e execute novamente a atualização.
Recursos insuficientes
Se você estiver tentando atualizar e o trabalho de atualização não produziu um erro, mas é executado por mais de quinze minutos, você pode ver o progresso da atualização observando os pods. Executar
kubectl get pods -n <namespace>
Procure um pod que mostre que alguns dos contêineres estão prontos, mas não - por exemplo, este pod metricsdb-0 tem apenas um dos dois contêineres:
NAME READY STATUS RESTARTS AGE
bootstrapper-848f8f44b5-7qxbx 1/1 Running 0 16m
control-7qxw8 2/2 Running 0 16m
controldb-0 2/2 Running 0 16m
logsdb-0 3/3 Running 0 18d
logsui-hvsrm 3/3 Running 0 18d
metricsdb-0 1/2 Running 0 18d
Descreva o pod para ver Eventos.
kubectl describe pod <pod name> -n <namespace>
Se não houver eventos, obtenha os nomes dos contêineres e exiba os logs dos contêineres.
kubectl get pods <pod name> -n <namespace> -o jsonpath='{.spec.containers[*].name}*'
kubectl logs <pod name> <container name> -n <namespace>
Se você vir uma mensagem sobre CPU ou memória insuficientes, deverá adicionar mais nós ao cluster do Kubernetes ou adicionar mais recursos aos nós existentes.
Recursos por tipo
Cenário: Solução de problemas de servidores PostgreSQL
Visualize logs e métricas usando Kibana e Grafana
Conteúdos relacionados
Cenário: Exibir o inventário de suas instâncias no portal do Azure