Ottenere i log per risolvere i problemi dei servizi dati abilitati per Azure Arc
Prerequisiti
Prima di procedere, è necessario:
- Interfaccia della riga di comando di Azure (
az
) con l'estensionearcdata
. Per altre informazioni, vedere Installare gli strumenti client per la distribuzione e la gestione dei servizi dati di Azure Arc. - Un account amministratore per accedere al controller dati abilitato per Azure Arc.
Ottenere i file di log
È possibile ottenere i log del servizio in tutti i pod o in pod specifici a scopo di risoluzione dei problemi. Un modo consiste nell'usare gli strumenti Kubernetes standard, ad esempio il kubectl logs
comando . In questo articolo si userà l'estensione dell'interfaccia della riga di comando di Azure (az
), arcdata
che rende più semplice ottenere tutti i log contemporaneamente.
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 di dati crea i file di log nella directory di lavoro corrente in una sottodirectory denominata logs
.
Opzioni
Il az arcdata dc debug copy-logs
comando offre le opzioni seguenti per gestire l'output:
- Restituire i file di log in una directory diversa usando il
--target-folder
parametro . - Comprimere i file omettendo il
--skip-compress
parametro . - Attivare e includere dump di memoria omettendo
--exclude-dumps
. Questo metodo non è consigliato a meno che supporto tecnico Microsoft non abbia richiesto i dump della memoria. Per ottenere un dump della memoria è necessario che l'impostazione del controller dati sia impostataallowDumps
sutrue
quando viene creato il controller dati. - Filtrare per raccogliere i log solo per un pod specifico () o un contenitore (
--pod
--container
) in base al nome. - Filtrare per raccogliere i log per una risorsa personalizzata specifica passando i
--resource-kind
parametri e--resource-name
. Il valore delresource-kind
parametro deve essere uno dei nomi delle definizioni di risorse personalizzate. È possibile recuperare tali nomi usando il comandokubectl get customresourcedefinition
.
Con questi parametri, è possibile sostituire nell'esempio <parameters>
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. È organizzato 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