Obter logs para solucionar problemas de serviços de dados habilitados para Azure Arc
Pré-requisitos
Antes de prosseguir, você precisa:
- CLI do Azure (
az
) com aarcdata
extensão. Para obter mais informações, consulte Instalar ferramentas de cliente para implantar e gerenciar serviços de dados do Azure Arc. - Uma conta de administrador para entrar no controlador de dados habilitado para Azure Arc.
Obter ficheiros de registo
Você pode obter logs de serviço em todos os pods ou pods específicos para fins de solução de problemas. Uma maneira é usar ferramentas padrão do Kubernetes, como o kubectl logs
comando. Neste artigo, você usará a extensão CLI arcdata
do Azure (az
), que facilita a obtenção de todos os logs de uma só vez.
Execute o seguinte comando para despejar os logs:
az arcdata dc debug copy-logs --exclude-dumps --skip-compress --use-k8s --k8s-namespace
Por exemplo:
#az arcdata dc debug copy-logs --exclude-dumps --skip-compress --use-k8s --k8s-namespace
O controlador de dados cria os arquivos de log no diretório de trabalho atual em um subdiretório chamado logs
.
Opções
O az arcdata dc debug copy-logs
comando fornece as seguintes opções para gerenciar a saída:
- Envie os arquivos de log para um diretório diferente usando o
--target-folder
parâmetro. - Comprima os arquivos omitindo o
--skip-compress
parâmetro. - Acione e inclua despejos de memória omitindo
--exclude-dumps
. Não recomendamos esse método, a menos que o Suporte da Microsoft tenha solicitado os despejos de memória. Obter um despejo de memória requer que a configuraçãoallowDumps
do controlador de dados esteja definida comotrue
quando o controlador de dados é criado. - Filtre para coletar logs para apenas um pod (
--pod
) ou contêiner (--container
) específico pelo nome. - Filtre para coletar logs para um recurso personalizado específico passando os
--resource-kind
parâmetros e--resource-name
. Oresource-kind
valor do parâmetro deve ser um dos nomes de definição de recurso personalizados. Você pode recuperar esses nomes usando o comandokubectl get customresourcedefinition
.
Com esses parâmetros, você pode substituir o <parameters>
no exemplo a seguir:
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
Por exemplo:
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
A hierarquia de pastas a seguir é um exemplo. Ele é organizado por nome do pod, depois contêiner e, em seguida, por hierarquia de diretórios dentro do contêiner.
<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