MÉTRICAS
Coletas customizadas

Monitoramento Kubernetes com Telegraf Operator

12min

Configurando o monitoramento de um cluster Kubernetes usando o Telegraf Operator:

Pré-requisitos

  • Cluster Kubernetes em execução

1. Instalando o telegraf-operator no seu cluster Kubernetes e configurando o ambiente:

A versão atualizada do telegraf-operator pode ser instalada usando o arquivo a seguir do InfluxData. Verifique o link para configuração do telegraf-operator.

Faça o download e o deploy do arquivo a seguir:

O ClusterRole cluster-admin no ClusterRoleBinding em dev.yml não pode ser alterado, pois se refere a um ClusterRole padrão no Kubernetes.

Caso não exista o ClusterRole cluster-admin criar e fazer deploy de um cluster role usando o arquivo abaixo:

ClusterRole:

yaml


Caso queira alterar as permissões para somente leitura, ou para somente o monitoramento de pods* use dessa forma:

YAML


O uso da regra em "resources" para monitorar apenas os pods* não permite o monitoramento do cluster inteiro. Impedindo assim, o uso do plugin Kubernetes da documentação "Monitoramento de Recursos de Pods"

Configuração do ambiente:

1. Configurar as classes Telegraf:

O arquivo classes.yml define as classes Telegraf que serão usadas para reportar dados para o InfluxDB e para a saída padrão. Substitua <simon_dbworker_ip>(ceritifque-se que seja o. IP da instância DB Worker), <database>, <hostname> e <cluster> pelos valores desejados.

Faça apenas os download do arquivo a seguir, não faça o deploy, ele precisará de ser alterado primeiro:

Exemplo de um arquivo classes.yml:

classes.yml

  • [[outputs.influxdb]]: Configuração do plugin de saída para enviar métricas ao InfluxDB.
    • urls: O URL do servidor InfluxDB onde as métricas serão enviadas. Substitua <simon_dbworker_ip> pelo endereço IP ou hostname do seu servidor InfluxDB.
    • database: O nome do banco de dados InfluxDB onde as métricas serão armazenadas.
    • username: O nome de usuário para autenticação no InfluxDB.
    • password: A senha para autenticação no InfluxDB.
    • skip_database_creation: Se true, impede o Telegraf de tentar criar o banco de dados se ele não existir.
  • [global_tags]: Configuração de tags globais que serão adicionadas a todas as métricas coletadas pelo Telegraf.
    • ci_ref_id: Identificador de referência de integração contínua. O identificador do servidor pode ser localizada no detalhamento do IC na infraestrura.
      • Caso o cluster seja virtual, é aconselhado utilizar o ci_ref_id do Intelligence Instance do Simon.
    • Em vermelho(somente o número)
      Em vermelho(somente o número)
      
    • hostname: Nome do host de onde as métricas estão sendo coletadas pelo valor real.

2. Configurar uma coleta customizada para um Plugin do Telegraf:

Coloque o campo annotations no arquivo yaml de um pod já existente, onde se deseja coletar metricas, para colocar um side car do telegraf.

No arquivo a seguir define em um Statefulset, Deployment ou Pod já existente, o campo annotations, onde é preciso configurar um plugin que será monitorado pelo Telegraf fora do escopo global, que foi configurado no classes.yaml à cima. Essa configuração servirá para coletar a metricas de um pod exclusivo ou mais. Assim, evitando conflitos nas chamadas ou erros no envio de metricas globais (classes.yaml).

Substitua os valores de name, namespace, serviceName, app, inputs.plugin_nome, urls, limits-cpu e limits-memory pelos valores desejados. Verifique os possíveis plugins de input e configurações neste link.

O "telegraf.influxdata.com/class: app" devera ser configurado de acordo com o nome da configuração no classes.yaml na linha 9 como mostrado no item 1.

Exemplo de um arquivo redis.yaml:

yml


Obs: Este yaml file podes ser usado também para verificar o container telegraf-operator contido nesse pod usando o comando a seguir.

3. Aplicar as configurações:

Aplique as configurações usando o comando kubectl apply -f <arquivo.yml> para cada um dos arquivos YAML.

Deploy dos Pods e Contexto Kubernetes:

Certifique-se de que o contexto correto do kubectl esteja definido e sendo utilizado, caso contrário, ira falhar:

bash


Acesso aos logs do deploy:

bash


Links: Telegraf Operator:

Plugins: