Partilhar via


Troubleshooting resources

Este artigo identifica recursos de solução de problemas para serviços de dados habilitados para Azure Arc.

Uploads

Se você implantou o controlador de dados do Azure Arc no modo de conectividade usando directo kubectl , 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, que contenha o WorkspaceID e o SharedAccessKey da seguinte forma:

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

If you configured automatic upload of metrics, in the direct connected mode and the permissions needed for the MSI have not been properly granted (as described in Upload metrics), you might see an error in your logs as follows:

'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."}}

To resolve above error, retrieve the MSI for the Azure Arc data controller extension, and grant the required roles as described in Upload metrics.

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.\"}}"}

To resolve the permissions issue, retrieve the MSI and grant the required roles as described in Upload metrics).

Upgrades

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 descreveres o pod, verás

Failed to pull image "<registry>/<repository>/arc-bootstrapper:<incorrect image tag>": [rpc error: code = NotFound desc = failed to pull and unpack image 

To resolve, reference the Version log for the correct image tag. 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. Run

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. Run

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 este pod para ver os 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

Ver logs e métricas usando Kibana e Grafana

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