Partilhar via


(PRECADO) Monitorize um cluster Kubernetes com Log Analytics

Dica

Para a versão atualizada este tutorial que utiliza Azure Kubernetes Service, consulte o Azure Monitor para obter visão geral dos recipientes (Preview).

Aviso

O Serviço de Contentores Azure (ACS) está a ser depreciado. Não estão a ser adicionadas novas funcionalidades ou funcionalidades ao ACS. Todas as APIs, experiência do portal, comandos CLI e documentação são marcados como precedidos.

Em 2017, introduzimos Azure Kubernetes Service (AKS) para simplificar a gestão, implantação e operações da Kubernetes. Se utilizar o orquestrador Kubernetes, por favor, emigre para a AKS até 31 de janeiro de 2020. Para começar, consulte migrar para Azure Kubernetes Service.

Para mais informações, consulte o anúncio de depreciação do Serviço de Contentores Azure no Azure.com.

É fundamental monitorizar o cluster e os contentores do Kubernetes, especialmente ao gerir um cluster de produção em escala, com várias aplicações.

Pode tirar partido das várias soluções de monitorização do Kubernetes, da Microsoft ou de outros fornecedores. Neste tutorial, vai monitorizar o seu cluster do Kubernetes com a solução Contentores do Log Analytics, a solução da Microsoft para gestão de TI com base na cloud. (A solução Contentores está em pré-visualização.)

Este tutorial, a parte sete de sete, abrange as seguintes tarefas:

  • Definições Obter Área de Trabalho do Log Analytics
  • Configurar os agentes do Log Analytics em nós do Kubernetes
  • Aceder a informações de monitorização no portal do Log Analytics ou no portal do Azure

Antes de começar

Nos tutoriais anteriores, foi compactada uma aplicação em imagens de contentores, carregadas estas imagens para o Azure Container Registry e criado um cluster de Kubernetes.

Se ainda não concluiu estes passos e pretende acompanhar, regresse ao Tutorial 1 – Criar imagens de contentor.

Obter definições da Área de Trabalho

Quando puder aceder ao portal do Log Analytics, aceda a Definições>Origens Ligadas>Servidores Linux. Aqui, pode encontrar o ID da Área de Trabalho e uma Chave da Área de Trabalho primária ou secundária. Tome nota destes valores, pois precisará deles para configurar os agentes do Log Analytics no cluster.

Criar segredo do Kubernetes

Armazene as definições da área de trabalho do Log Analytics no segredo do Kubernetes denominado omsagent-secret com o comando [kubectl create secret][kubectl-create-secret]. Atualize WORKSPACE_ID com o seu ID da área de trabalho do Log Analytics e WORKSPACE_KEY com a chave da área de trabalho.

kubectl create secret generic omsagent-secret --from-literal=WSID=WORKSPACE_ID --from-literal=KEY=WORKSPACE_KEY

Configurar os agentes do Log Analytics

O ficheiro de manifesto do Kubernetes seguinte pode ser utilizado para configurar agentes de monitorização do contentor num cluster de Kubernetes. Cria um DaemonSet do Kubernetes, que executa um único pod idêntico em cada nó de cluster.

Guarde o seguinte texto num ficheiro denominado oms-daemonset.yaml.

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
 name: omsagent
spec:
 template:
  metadata:
   labels:
    app: omsagent
    agentVersion: 1.4.3-174
    dockerProviderVersion: 1.0.0-30
  spec:
   containers:
     - name: omsagent
       image: "microsoft/oms"
       imagePullPolicy: Always
       securityContext:
         privileged: true
       ports:
       - containerPort: 25225
         protocol: TCP
       - containerPort: 25224
         protocol: UDP
       volumeMounts:
        - mountPath: /var/run/docker.sock
          name: docker-sock
        - mountPath: /var/log
          name: host-log
        - mountPath: /etc/omsagent-secret
          name: omsagent-secret
          readOnly: true
        - mountPath: /var/lib/docker/containers
          name: containerlog-path
       livenessProbe:
        exec:
         command:
         - /bin/bash
         - -c
         - ps -ef | grep omsagent | grep -v "grep"
        initialDelaySeconds: 60
        periodSeconds: 60
   nodeSelector:
    beta.kubernetes.io/os: linux
   # Tolerate a NoSchedule taint on master that ACS Engine sets.
   tolerations:
    - key: "node-role.kubernetes.io/master"
      operator: "Equal"
      value: "true"
      effect: "NoSchedule"
   volumes:
    - name: docker-sock
      hostPath:
       path: /var/run/docker.sock
    - name: host-log
      hostPath:
       path: /var/log
    - name: omsagent-secret
      secret:
       secretName: omsagent-secret
    - name: containerlog-path
      hostPath:
       path: /var/lib/docker/containers

Crie o DaemonSet com o seguinte comando:

kubectl create -f oms-daemonset.yaml

Para ver se o DaemonSet está criado, execute:

kubectl get daemonset

O resultado é semelhante ao seguinte:

NAME       DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE-SELECTOR   AGE
omsagent   3         3         3         0            3           <none>          5m

Após os agentes estarem em execução, demora alguns minutos para o Log Analytics ingerir e processar os dados.

Aceder aos dados de monitorização

Veja e analise os dados de monitorização do contentor com a solução Contentor no portal do Log Analytics ou no portal do Azure.

Para instalar a solução Contentor através do portal do Log Analytics, aceda à Galeria de Soluções. Em seguida, adicione Solução Contentor. Em alternativa, adicione a solução Contentores do Microsoft Azure Marketplace.

No portal do Log Analytics, procure um mosaico de resumo Contentores no dashboard. Clique no mosaico para obter detalhes, incluindo: eventos, erros, estado, inventário de imagens e a utilização da CPU e memória dos contentores. Para obter informações mais detalhadas, clique num registo em qualquer mosaico ou efetue uma pesquisa de registos.

Dashboard Contentores no portal do Azure

Da mesma forma, no portal do Azure, aceda ao Log Analytics e selecione o nome da sua área de trabalho. Para ver o mosaico de resumo Contentores, clique em Soluções>Contentores. Para ver os detalhes, clique no mosaico.

Veja a documentação do Log Analytics do Azure para obter documentação de orientação detalhada sobre a consulta e análise de dados de monitorização.

Passos seguintes

Neste tutorial, monitorizou o cluster de Kubernetes com o Log Analytics. Tarefas abrangidas incluídas:

  • Definições Obter Área de Trabalho do Log Analytics
  • Configurar os agentes do Log Analytics em nós do Kubernetes
  • Aceder a informações de monitorização no portal do Log Analytics ou no portal do Azure

Siga esta ligação para ver os exemplos de scripts pré-criados do Container Service.