Uzyskiwanie dzienników w celu rozwiązywania problemów z usługami danych z obsługą usługi Azure Arc

Wymagania wstępne

Przed kontynuowaniem potrzebne są następujące elementy:

  • Interfejs wiersza polecenia platformy arcdata Azure (az) z rozszerzeniem . Aby uzyskać więcej informacji, zobacz Instalowanie narzędzi klienckich do wdrażania usług danych Usługi Azure Arc i zarządzania nimi.
  • Konto administratora do logowania się do kontrolera danych z obsługą usługi Azure Arc.

Pobieranie plików dziennika

Dzienniki usług można pobrać we wszystkich zasobnikach lub określonych zasobnikach na potrzeby rozwiązywania problemów. Jednym ze sposobów jest użycie standardowych narzędzi Kubernetes, takich jak kubectl logs polecenie. W tym artykule użyjesz rozszerzenia interfejsu wiersza polecenia arcdata platformy Azure (az), co ułatwia jednoczesne uzyskiwanie wszystkich dzienników.

Uruchom następujące polecenie, aby zrzucić dzienniki:

az arcdata dc debug copy-logs --exclude-dumps --skip-compress --use-k8s --k8s-namespace

Przykład:

#az arcdata dc debug copy-logs --exclude-dumps --skip-compress --use-k8s --k8s-namespace

Kontroler danych tworzy pliki dziennika w bieżącym katalogu roboczym w podkatalogu o nazwie logs.

Opcje

Polecenie az arcdata dc debug copy-logs udostępnia następujące opcje zarządzania danymi wyjściowymi:

  • Wyprowadź pliki dziennika do innego katalogu przy użyciu parametru --target-folder .
  • Kompresuj pliki, pomijając --skip-compress parametr .
  • Wyzwalanie i dołączanie --exclude-dumpszrzutów pamięci przez pominięcie . Nie zalecamy tej metody, chyba że pomoc techniczna firmy Microsoft zażądał zrzutów pamięci. Pobranie zrzutu pamięci wymaga ustawienia kontrolera allowDumps danych ustawionego podczas true tworzenia kontrolera danych.
  • Filtruj, aby zbierać dzienniki tylko dla określonego zasobnika (--pod) lub kontenera (--container) według nazwy.
  • Filtruj, aby zbierać dzienniki dla określonego zasobu niestandardowego, przekazując --resource-kind parametry i --resource-name . Wartość resource-kind parametru powinna być jedną z niestandardowych nazw definicji zasobów. Te nazwy można pobrać przy użyciu polecenia kubectl get customresourcedefinition.

Za pomocą tych parametrów możesz zastąpić element <parameters> w poniższym przykładzie:

az arcdata dc debug copy-logs --target-folder <desired folder> --exclude-dumps --skip-compress -resource-kind <custom resource definition name> --resource-name <resource name> --use-k8s --k8s-namespace 

Przykład:

az arcdata dc debug copy-logs --target-folder C:\temp\logs --exclude-dumps --skip-compress --resource-kind postgresql-12 --resource-name pg1 --use-k8s --k8s-namespace

Poniższa hierarchia folderów jest przykładem. Jest on uporządkowany według nazwy zasobnika, a następnie kontenera, a następnie hierarchii katalogów w kontenerze.

<export directory>
├───debuglogs-arc-20200827-180403
│   ├───bootstrapper-vl8j2
│   │   └───bootstrapper
│   │       ├───apt
│   │       └───fsck
│   ├───control-j2dm5
│   │   ├───controller
│   │   │   └───controller
│   │   │       ├───2020-08-27
│   │   │       └───2020-08-28
│   │   └───fluentbit
│   │       ├───agent
│   │       ├───fluentbit
│   │       └───supervisor
│   │           └───log
│   ├───controldb-0
│   │   ├───fluentbit
│   │   │   ├───agent
│   │   │   ├───fluentbit
│   │   │   └───supervisor
│   │   │       └───log
│   │   └───mssql-server
│   │       ├───agent
│   │       ├───mssql
│   │       ├───mssql-server
│   │       └───supervisor
│   │           └───log
│   ├───controlwd-ln6j8
│   │   └───controlwatchdog
│   │       └───controlwatchdog
│   ├───logsdb-0
│   │   └───opensearch
│   │       ├───agent
│   │       ├───opensearch
│   │       ├───provisioner
│   │       └───supervisor
│   │           └───log
│   ├───logsui-7gg2d
│   │   └───kibana
│   │       ├───agent
│   │       ├───apt
│   │       ├───fsck
│   │       ├───kibana
│   │       └───supervisor
│   │           └───log
│   ├───metricsdb-0
│   │   └───influxdb
│   │       ├───agent
│   │       ├───influxdb
│   │       └───supervisor
│   │           └───log
│   ├───metricsdc-2f62t
│   │   └───telegraf
│   │       ├───agent
│   │       ├───apt
│   │       ├───fsck
│   │       ├───supervisor
│   │       │   └───log
│   │       └───telegraf
│   ├───metricsdc-jznd2
│   │   └───telegraf
│   │       ├───agent
│   │       ├───apt
│   │       ├───fsck
│   │       ├───supervisor
│   │       │   └───log
│   │       └───telegraf
│   ├───metricsdc-n5vnx
│   │   └───telegraf
│   │       ├───agent
│   │       ├───apt
│   │       ├───fsck
│   │       ├───supervisor
│   │       │   └───log
│   │       └───telegraf
│   ├───metricsui-h748h
│   │   └───grafana
│   │       ├───agent
│   │       ├───grafana
│   │       └───supervisor
│   │           └───log
│   └───mgmtproxy-r5zxs
│       ├───fluentbit
│       │   ├───agent
│       │   ├───fluentbit
│       │   └───supervisor
│       │       └───log
│       └───service-proxy
│           ├───agent
│           ├───nginx
│           └───supervisor
│               └───log
└───debuglogs-kube-system-20200827-180431
    ├───coredns-8bbb65c89-kklt7
    │   └───coredns
    ├───coredns-8bbb65c89-z2vvr
    │   └───coredns
    ├───coredns-autoscaler-5585bf8c9f-g52nt
    │   └───autoscaler
    ├───kube-proxy-5c9s2
    │   └───kube-proxy
    ├───kube-proxy-h6x56
    │   └───kube-proxy
    ├───kube-proxy-nd2b7
    │   └───kube-proxy
    ├───metrics-server-5f54b8994-vpm5r
    │   └───metrics-server
    └───tunnelfront-db87f4cd8-5xwxv
        ├───tunnel-front
        │   ├───apt
        │   └───journal
        └───tunnel-probe
            ├───apt
            ├───journal
            └───openvpn