Métrica
Coletas customizadas

Monitoramento Kubernetes com Telegraf Operator

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 repositório helm do influxdata verifique o link para configuração do helm e do telegraf operator e o link para configuração do ambiente contido no arquivo makefile execute bash helm repo add influxdata https //helm influxdata com/ helm upgrade install telegraf operator influxdata/telegraf operator configuração do ambiente bash # garantir que o contexto correto do kubectl esteja definido e sendo \# usado, caso contrário irá falhar kubectl config use context telegraf operator nome \# criar namespace kubectl create namespace \<nome> 2\ 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 < dbworker ip > (ceritifque se que seja o ip da instância db worker ), \<database> , \<hostname> e \<cluster> pelos valores desejados exemplo de um arquivo classes yml classes yml apiversion v1 kind namespace metadata name telegraf operator \ apiversion v1 kind secret metadata name telegraf operator classes namespace telegraf operator stringdata \#classes básicas que podem ser usadas para desenvolver o operador do telegraf; essas classes \#relatam para o influxdb v1 no mesmo cluster, e também para o arquivo stdout por conveniência app |+ \[\[outputs influxdb]] urls = \["\<dbworker ip> 8086"] \[global tags] database = "\<database>" hostname = "\<hostname>" cluster = "\<cluster>" default |+ \[\[outputs influxdb]] urls = \["\<dbworker ip> 8086"] \[global tags] database = "\<database>" hostname = "\<hostname>" cluster = "\<cluster>" basic |+ \[\[outputs influxdb]] urls = \["\<dbworker ip> 8086"] \[global tags] database = "\<database>" hostname = "\<hostname>" cluster = "\<cluster>" 3\ configurar o plugin do telegraf o arquivo plugin nome yml define um statefulset para um plugin que será monitorado pelo telegraf 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 no link exemplo de um arquivo nginx yaml yml apiversion apps/v1 kind statefulset metadata name nginx deamon namespace test spec servicename "nginx telegraf" replicas 1 selector matchlabels app nginx template metadata labels app nginx annotations telegraf influxdata com/inputs |+ \[\[inputs nginx]] urls = \["\<nginx url>"] telegraf influxdata com/class app telegraf influxdata com/env fieldref namespace metadata namespace telegraf influxdata com/limits cpu '750m' \# limite de memória inválido, que será ignorado telegraf influxdata com/limits memory '800x' spec containers \ name nginx image nginx\ alpine 4\ 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 kubectl config use context telegraf operator nome kubectl apply f classes yml kubectl apply f dev yml kubectl apply f examples/plugin nome yml kubectl describe pod namespace=\<namespace> \<pod name> acesso aos logs do deploy bash kubectl logs f n \<namespace> \<pod name> c telegraf links telegraf operator https //github com/influxdata/telegraf operator/blob/master/readme md https //github com/influxdata/telegraf operator/blob/master/readme md plugins https //github com/influxdata/telegraf/tree/master/plugins/inputs https //github com/influxdata/telegraf/tree/master/plugins/inputs