Ресурсы по устранению неполадок
В этой статье указаны ресурсы по устранению неполадок для служб данных с поддержкой Azure Arc.
Загрузки
Ошибки отправки журналов
Если вы развернули контроллер данных Azure Arc в direct
режиме подключения с помощью kubectl
и не создали секрет для учетных данных рабочей области Log Analytics, в cr контроллера данных (пользовательский ресурс) могут появить следующие сообщения об ошибках:
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."
},
Чтобы устранить указанную выше ошибку, создайте секрет с учетными данными рабочей области Log Analytics, содержащими WorkspaceID
указанные SharedAccessKey
ниже сведения.
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
Метрики отправляют связанные ошибки в режиме прямого подключения
Если вы настроили автоматическую отправку метрик, в режиме прямого подключения и разрешениях, необходимых для MSI, не были предоставлены должным образом (как описано в метриках отправки), в журналах может появиться ошибка следующим образом:
'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."}}
Чтобы устранить указанную выше ошибку, получите MSI для расширения контроллера данных Azure Arc и предоставьте необходимые роли, как описано в разделе "Отправка метрик".
Ошибки отправки данных об использовании в режиме прямого подключения
Если вы развернули контроллер данных Azure Arc в режиме прямого подключения, разрешения, необходимые для отправки сведений об использовании, автоматически предоставляются для msi расширения контроллера данных Azure Arc. Если процесс автоматической отправки выполняется в связанных с разрешениями проблемах, может появиться ошибка в журналах следующим образом:
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.\"}}"}
Чтобы устранить проблему с разрешениями, получите MSI и предоставьте необходимые роли, как описано в разделе "Отправка метрик").
Обновления
Неправильный тег изображения
Если вы используете az
CLI для обновления, и вы передаете неправильный тег изображения, вы увидите ошибку в течение двух минут.
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).
При просмотре модулей pod вы увидите состояние задания начальной загрузки как ErrImagePull
.
STATUS
ErrImagePull
При описании модуля pod вы увидите
Failed to pull image "<registry>/<repository>/arc-bootstrapper:<incorrect image tag>": [rpc error: code = NotFound desc = failed to pull and unpack image
Чтобы устранить проблему, найдите журнал версий для правильного тега изображения. Повторно выполните команду обновления с правильным тегом изображения.
Не удается подключиться к реестру или репозиторию
Если вы пытаетесь обновить и задание обновления не привело к ошибке, но выполняется дольше пятнадцати минут, вы можете просмотреть ход обновления, просмотрев модули pod. Выполнить
kubectl get pods -n <namespace>
При просмотре модулей pod вы увидите состояние задания начальной загрузки как ErrImagePull
.
STATUS
ErrImagePull
Опишите модуль pod задания начальной загрузки для просмотра событий.
kubectl describe pod <pod name> -n <namespace>
При описании модуля pod вы увидите ошибку, которая говорит
failed to resolve reference "<registry>/<repository>/arc-bootstrapper:<image tag>"
Это обычно происходит, если образ был развернут из частного реестра, вы используете Kubernetes для обновления с помощью yaml-файла, а файл yaml ссылается на mcr.microsoft.com вместо частного реестра. Чтобы устранить проблему, отмените задание обновления. Чтобы найти развернутый реестр, выполните команду
kubectl describe pod <controller in format control-XXXXX> -n <namespace>
Найдите контейнеры.controller.Image, где вы увидите реестр и репозиторий. Захватить эти значения, ввести в файл yaml и повторно запустить обновление.
Недостаточно ресурсов
Если вы пытаетесь обновить и задание обновления не привело к ошибке, но выполняется дольше пятнадцати минут, вы можете просмотреть ход обновления, просмотрев модули pod. Выполнить
kubectl get pods -n <namespace>
Найдите модуль pod, показывающий, что некоторые контейнеры готовы, но не — например, этот модуль metricsdb-0 содержит только один из двух контейнеров:
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
Опишите модуль pod для просмотра событий.
kubectl describe pod <pod name> -n <namespace>
Если события отсутствуют, получите имена контейнеров и просмотрите журналы для контейнеров.
kubectl get pods <pod name> -n <namespace> -o jsonpath='{.spec.containers[*].name}*'
kubectl logs <pod name> <container name> -n <namespace>
Если появится сообщение о нехватке ЦП или памяти, следует добавить дополнительные узлы в кластер Kubernetes или добавить дополнительные ресурсы в существующие узлы.
Ресурсы по типу
Сценарий. Устранение неполадок серверов PostgreSQL
Просмотр журналов и метрик с помощью Kibana и Grafana
Связанный контент
Сценарий: просмотр инвентаризации ваших экземпляров на портале Azure