MÉTRICAS
...
Monitoramento Kubernetes
Monitoramento de Pods com Telegraf Operator
9 min
configurando o monitoramento de um cluster kubernetes usando o telegraf operator via helm pré requisitos cluster kubernetes em execução configurar values para o helm yaml # helm values para o telegraf operator \# habilitar rbac (role based access control) rbac create true \# configuração de ervice account serviceaccount create true name telegraf operator \# habilitar class secrets classes enabled true secretname telegraf operator classes secretnamespace telegraf operator \# configurações adicionais (opcional) resources requests memory "64mi" cpu "250m" limits memory "128mi" cpu "500m" \# configurações de login (opcional) loglevel info \# annotations do pod (opcional) podannotations {} instalando o telegraf operator no seu cluster kubernetes instalar o telegraf operator via helm de acordo com as configurações em values yaml bash helm upgrade install telegraf operator influxdata/telegraf operator n telegraf operator f values yaml 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 < regent dbworker ip > (ceritifque se que seja o ip da instância db worker ), \<database> , \<hostname> e \<cluster> pelos valores desejados crie e preencha as configurações pelo arquivo classes yml classes yml apiversion v1 kind secret metadata name telegraf operator classes namespace telegraf operator stringdata \# basic classes that can be used to develop telegraf operator ; these classes \# report to influxdb v1 in same cluster as well as to stdout for convenience app |+ \[\[outputs influxdb]] urls = \["\<regent dbworker ip> 8086"] database = "metrics" skip database creation = true \[\[inputs cpu]] \[\[inputs mem]] \[\[inputs disk]] \[global tags] ci ref id = "\<ci ref id>" hostname = "\<hostname>" type = "\<type>" verifique os possíveis plugins de input no https //github com/influxdata/telegraf/tree/master/plugins/inputs e adicione em classses yaml como nos exemplos de inputs cpu, inputs mem e inputs disk ou até mesmo plugins mais especificos para aplicações como o inputs redis como indicado no exemplo redis yaml depois de preencher faça o deploy do arquivo app nome dado à configuração da classe, tudo que estiver indentado nesse campo será a configuração dos sidecars a ser injetados nos pods (verificar annotations no item 2 ) mais de uma configuração pode ser adicionada \[\[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 \<regent 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 hostname nome do host de onde as métricas estão sendo coletadas pelo valor real type tipo ou classificação das métricas 2\ configurar annotations de um sidecar no pod a ser monitorado esse arquivo fará com que o telegraf adicione um sidecar(telegraf operator) no pod desejado quando adicionado o campo annotations preencha o campo telegraf influxdata com/class de acordo com o arquivo class yaml os uso de plugins (input) do telegraf é opcional exemplo de um arquivo redis yaml yml apiversion apps/v1 kind statefulset metadata name redis namespace telegraf operator spec selector matchlabels app redis servicename redis template metadata labels app redis annotations \#telegraf influxdata com/inputs |+ (opcional) \#\[\[inputs redis]] \#servers = \["tcp\ //localhost 6379"] telegraf influxdata com/class app telegraf influxdata com/env fieldref namespace metadata namespace telegraf influxdata com/limits cpu '750m' telegraf influxdata com/limits memory '800x' spec containers \ name redis image redis\ alpine o uso do plugin kubernetes neste caso não permite o monitoramento do cluster inteiro para monitorar todo o cluster veja monitoramento de cluster acesso aos logs do sidecar telegraf operator bash kubectl logs f n \<namespace> \<pod name> c telegraf links telegraf operator https //github com/influxdata/telegraf operator/blob/master/readme md plugins https //github com/influxdata/telegraf/tree/master/plugins/inputs

