Condividi tramite


Ottenere i log per risolvere i problemi dei servizi dati abilitati per Azure Arc

Prerequisiti

Prima di procedere, è necessario disporre di quanto segue:

Ottenere i file di log

È possibile ottenere i log del servizio in tutti i pod o in pod specifici per la risoluzione dei problemi. Un modo prevede l'uso degli strumenti Kubernetes standard, ad esempio il comando kubectl logs. In questo articolo si userà l'estensione arcdata dell'interfaccia della riga di comando di Azure (az) che semplifica il recupero contemporaneo di tutti i log.

Eseguire il comando seguente per eseguire il dump dei log:

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

Ad esempio:

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

Il controller dei dati crea i file di log nella directory di lavoro corrente in una sottodirectory denominata logs.

Opzioni

Il comando az arcdata dc debug copy-logs offre le opzioni seguenti per gestire l'output:

  • Creare l'output dei file di log in una directory diversa usando il parametro --target-folder.
  • Comprimere i file omettendo il parametro --skip-compress.
  • Attivare e includere i dump della memoria omettendo --exclude-dumps. Questo metodo non è consigliato a meno che il supporto tecnico Microsoft non abbia richiesto i dump della memoria. Per ottenere un dump della memoria, è necessario che l'impostazione allowDumps del controller dei dati sia impostata su true quando viene creato il controller dei dati.
  • Filtrare i dati in base al nome per raccogliere solo i log di un pod (--pod) o contenitore (--container) specifico.
  • Filtrare i dati per raccogliere i log per una risorsa personalizzata specifica passando i parametri --resource-kind e --resource-name. Il valore del parametro resource-kind deve essere uno dei nomi delle definizioni delle risorse personalizzate. È possibile recuperare tali nomi usando il comando kubectl get customresourcedefinition.

Con questi parametri, è possibile sostituire <parameters> nell'esempio seguente:

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 

Ad esempio:

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

La gerarchia di cartelle seguente è un esempio. È organizzata in base al nome del pod, al contenitore e quindi alla gerarchia di directory all'interno del contenitore.

<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