Partilhar via


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

Se você implantou o controlador de dados do Azure Arc no modo de conectividade usando kubectlo 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

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.

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

Cenário: Exibir o inventário de suas instâncias no portal do Azure