Search
Close this search box.
View Categories

Como instalar o componente Metricbeat no OKE

O Metricbeat é um agente leve que coleta e envia métricas de seus sistemas e serviços para o Elasticsearch ou Logstash. Ele oferece informações valiosas sobre a saúde e o desempenho da sua infraestrutura, sendo uma ferramenta essencial para monitoramento e observabilidade. Ao final deste tutorial, você terá o Metricbeat configurado e em funcionamento, permitindo monitorar seus clusters OKE de forma eficaz.

Policies  #

Verificar se as seguintes permissões estão devidamente configuradas a nível de tenancy:

ALLOW any-user to manage file-family in tenancy where request.principal.type = 'cluster'
ALLOW any-user to use virtual-network-family in tenancy where request.principal.type = 'cluster'
ALLOW any-user to manage file-family in tenancy where request.principal.type = 'cluster'
ALLOW any-user to use virtual-network-family in tenancy where request.principal.type = 'cluster'

Integração com File System #

Novo File System ou existente #

Referência: https://docs.oracle.com/en-us/iaas/Content/ContEng/Tasks/contengcreatingpersistentvolumeclaim_Provisioning_PVCs_on_FSS.htm

Obtenha a subnet do endpoint da API do K8s configurada no cluster.

Exemplo:

OCI Subnet Kubernetes

Crie um novo File System com um Mount Target ou crie um novo Mount Target na mesma subnet do endpoint da API do K8s configurada no cluster.

Exemplo:

File System -> Mount Target: mount-target-metricbeat-doc-tests

mount-target-metricbeat-doc-tests

Criar um Export Path no Mount target no seguinte formato: #

/oke/<SUA_REGIAO>/<NOME_DO_COMPARTMENT>/<NOME_DO_CLUSTER>
  • <SUA_REGIAO>: região do cluster
  • <NOME_DO_COMPARTMENT>: nome do compartment em que está o cluster
  • <NOME_DO_CLUSTER>: nome do cluster

Exemplo:

OCI Export Path

Configurar security list na subnet para permitir o File System #

Abrir portas TCP e UDP para 111 e 2048-2050 no Ingress e Egress na mesma subnet do endpoint da API do K8s configurada no cluster.

Exemplo:

OCI Security List

Configurar o deployment do metricbeat com a exportação de arquivos pro File System #

Deployment do kube-state-metrics #

Obtenha o template do kube-state-metrics e efetue o deployment:

https://kube-state-metrics-template.s3.amazonaws.com/kube-state-metrics-template.yml

Deployment do Metricbeat #

Obtenha o template do Metricbeat:

https://metricbeat-deployment-template-oke-fss.s3.amazonaws.com/metricbeat-deployment-fss-csi-driver.yml

Ajustar manualmente os seguintes parâmetros no template:

<ocid1.filesystem.oc1.[region].[id]>:<mountTarget IP>:/oke/<SUA_REGIAO>/<NOME_DO_COMPARTMENT>/<NOME_DO_CLUSTER>
  • <ocid1.filesystem.oc1.[region].[id]> -> ID do File System criado ou existente, conforme passo 2.1
  • <mountTarget IP> -> IP interno gerado pela criação do Mount Target conforme passo 2.1
  • :/oke/<SUA_REGIAO>/<NOME_DO_COMPARTMENT>/<NOME_DO_CLUSTER> -> pasta para exportação configurada no Mount Target conforme passo 2.2.

Esse template já está preparado para criação de objetos no cluster para o funcionamento do Metricbeat:

  • Persistent Volume e Persistent Volume Claim – parametrizados anteriormente com o File System para a integração
  • ServiceAccount – será usado na execução do serviço do metricbeat;
  • ClusterRole – configurações das APIs do k8s e objetos – somente leitura;
  • Roles e ClusterRoleBinding – configurações complementares para leitura das APIs do k8s no metricbeat;
  • ConfigMaps – parâmetros e configurações de integração do metricbeat com o kubernetes;
  • DaemonSet – serviço do metricbeat que coletar as métricas e exportar os arquivos pro File System

OBS: Clusters OKE das versões 1.28 em diante tem o driver fss.csi.oraclecloud.com já disponível para ser usado no deployment do metricbeat.

Implante o Metricbeat e verifique a exportação.  #

Siga com o deployment do Metricbeat no cluster após aplicar as configurações. Após o
deploy, é importante conferir se o componente está coletando as métricas e exportando para o export path do File System:

Verifique se os pods do Metricbeat estão em execução.  #

Exemplo: 

kubectl get pods -n kube-system -o wide 

NOTA : o Metricbeat fará upload de um pod por nó para coletar métricas

Verifique os logs do pod para ver se os eventos de coleta de métricas estão sendo gerados.  #

Exemplo: 

Verifique se, após alguns minutos de execução do pod, os arquivos estão sendo exportados para o export path do File System:  #

Abaixo segue um exemplo de verificar os arquivos exportados de dentro de uma Compute instance com mapeamento pra pasta com o export path do File System configurado no passo 2.1.

Podemos ver essas instruções de mapeamento em “Mount commands”:

OCI Mount Commands
OCI Mount Commands

Acessando e listando os arquivos exportados a partir de uma instância como exemplo:

OCI Exported Files

Exportação de arquivos  #

Devido às limitações do Metricbeat, apenas 1024 arquivos de log são preservados. Para que o sistema funcione corretamente, pelo menos os arquivos dos últimos 7 dias devem ser preservados – recomendamos, no entanto, que sejam mantidos por pelo menos 35 dias. 

Como a configuração disponível é por tamanho e não por tempo, recomendamos o seguinte: 

  • Deixe a configuração padrão (que é 10 MB por arquivo) por 1 dia;
  • Após exatamente 24 horas, verifique o número de arquivos gerados: 
  • Se mais de 145 arquivos foram gerados, informe-nos, pois o bucket não reterá os arquivos por uma semana; 
  • Se 29 ou mais arquivos foram gerados, sua configuração é adequada;
  • Caso o número de arquivos seja menor que 29, aplique a seguinte fórmula: 
TAMANHO_ARQUIVO = 10240 / 29 * QUANTIDADE 

Por exemplo, se 5 arquivos foram gerados: 

TAMANHO_ARQUIVO = 10240 / 29 * 5 = 1765 

Portanto, dentro do arquivo metricbeat-deployment-template-eks-s3.yml, configure data -> metricbeat.yml: -> output.file -> rotate_every_kb com valor de 1765 em vez de 10240.