(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.
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.