monitoração de infraestrutura e serviços - sensu

Download Monitoração de Infraestrutura e Serviços - Sensu

If you can't read please download the document

Upload: roberto-scudeller

Post on 18-Feb-2017

319 views

Category:

Technology


5 download

TRANSCRIPT

Monitoramento de Infraestrutura e Servios Sensu

05/08/2015

Roberto [email protected]@gmail.com

Inicio: quem eu sou?

Monitoramento de Infraestrutura e Servios Sensu

Objetivos:Atualizar a ferramenta;

Gerao de grficos;

Compartilhar a funo de monitoramento com todas as equipes;

Abertura automtica de incidentes;

Integrao com Gerenciamento de configuraes;

Envio em multiplos canais de comunicao se algo no vai bem.

Objetivos da apresentao

Monitoramento de Infraestrutura e Servios Sensu

Sem cluster ativo-ativo (no fcil ativo passivo);

Restart aps adicionar um host;

Difcil de manejar e configurar;

Nagios Master executa os checks;

Primeira verso em 14/03/1999;

O que geralmente encontramos nas operaes de TI. Nagios uma boa ferramenta, porm para ambientes mais novos, com deploy continuo, ele tem suas limitaes. Por esse motivo, escolhemos mudar para uma nova...

Monitoramento de Infraestrutura e Servios Sensu

Cluster ativo-ativo;

Clientes se registram automaticamente;

Escrito em ruby;

Clientes executam os testes;

Configuraes em arquivos json;

Compativel com scripts do nagios;

Recursos:O cliente reune os checks;

Servidor toma a ao;

REST API para consulta (ou uma interface);

Todo cliente possui um keepalived;

Sensu foi criado pensando em ambientes em Cloud, com uma arquitura baseada em microservices. Leia mais no https://sensuapp.org/docs/latest/overview

Monitoramento de Infraestrutura e Servios Sensu

Check

Result

V

Event

Handler

Checks:Envia a sada para STDOUT ou STDERR;

Usa o exit status para indicar severidade;

0: OK

1: WARNING

2: CRITICAL

>3: UNKNOWN ou customizado.

Mais: metric, data.

Handler:Toma uma ao por evento recebido;

Diversos tipos: script, socket, etc;

Todo check do cliente do sensu, gera um resultado, que enviado como um evento e este vai para um handler (que o quem deve receber o evento)
Ele compatvel com os scripts de check do nagios.

Monitoramento de Infraestrutura e Servios Sensu

Origens dos checks:

Execute uma coletanea de checks nos clientes: Subscriptions: [linux,httpd,bd]

Check Standalone: Somente executado e agendado no cliente.

Socket Local (localhost:3030): O cliente tem uma porta tcp/udp para input de checks. Exemplo: {name: foo, output:bar,status:1}

Todo check inspecionado!!!

Teve sada diferente de zero?

Primeira sada de status zero da srie?

Esta marcado como mtrica (metric)?

Event!!!!

Estas so as opes de check: via subscription, similar ao servicegroups do nagios; via standalone, que um check que s existe no cliente; E via socket local, que uma opo local para postagem via json que ir alarmar no sensu server.

Monitoramento de Infraestrutura e Servios Sensu

Handlers

Estas so algumas das opes de handlers para onde os eventos sero enviados.

Monitoramento de Infraestrutura e Servios Sensu

Class profile::sensu::client { include '::sensu'

}

Use um gerenciador de configuraes para facilitar!Exemplo no puppet:

Um exemplo de configurao de cliente sensu usando o puppet como gerenciador de configuraes. E uma amostra de como este cliente aparece no uchiwa, uma interface de visualizao para os eventos do sensu.

Monitoramento de Infraestrutura e Servios Sensu

Class profile::basicmonitors { sensu::plugin { 'check-puppet-last-run.rb': install_path => '/etc/sensu/plugins' } sensu::check { 'check-puppet-last-run': command => '/etc/sensu/plugins/check-puppet-last-run.rb --summary-file /var/lib/puppet/state/last_run_summary.yaml --warn-age 3600 --crit-age 7200', handlers => ['debug','graphite_event','slack_event','logstash_event'], subscribers => 'basic', standalone => false, occurrences => 3, }

}

Muito fcil. Este um exemplo de check para testar se o puppet est executando corretamente nos servidores.
Nota: o caminho do last_run_summary.yaml muda nas verses mais novas do puppet.
E um evento no slack!!!

Monitoramento de Infraestrutura e Servios Sensu

Este evento na interface uchiwa, no graphite/events, e no kibana.

Monitoramento de Infraestrutura e Servios Sensu

Class profile::confluencemonitor { sensu::plugin { 'check-procs.rb': install_path => '/etc/sensu/plugins' }

sensu::check { 'check_confluence': command => '/etc/sensu/plugins/check-procs.rb -p confluence', standalone => true, }

}

Exemplo de check standalone

Um exemplo de check standalone, que s ocorre no cliente, e como um servidor sensu interpreta o check e seu evento.

Monitoramento de Infraestrutura e Servios Sensu

Class profile::basic { sensu::check { 'cpu-pcnt-usage-metrics': type => 'metric', command => '/etc/sensu/plugins/cpu-pcnt-usage-metrics.rb', handlers => 'graphite', subscribers => 'basic', standalone => false, }

}

Exemplo de monitorao com mtrica

Um exemplo de chack type: metric postado no graphite.
Vale notar que o grafico est relacionando eventos do graphite tambm.

Monitoramento de Infraestrutura e Servios Sensu

Class profile::basic { sensu::check { 'metrics-snmp-if_10.0.100.201': type => 'metric', command => '/etc/sensu/plugins/metrics-snmp-if.rb -h 10.0.100.201 -C newdc-col07 -s network_10.0.100.201', handlers => 'graphite', standalone => true, custom => { source => 'router_02' } }}

Just in time clientes

Usando a tag source: xxxxx para indicar que estes checks so de um cliente no convencional, como no exemplo um roteador.

Monitoramento de Infraestrutura e Servios Sensu

Dead man's switch

um interruptor que automaticamente para o que o operador humano fazia caso se torne incapacitado

BACKUP:
echo '{"name": "backup_mysql", "ttl": 25200, "output": "failed to backup mysql", "status": 1}' | nc localhost 3030

Aplicao envia um json para localhost 3030 por minuto:
{"name": "app_MuitoImportante", "ttl": 90, "output": "Everything is OK", "status": 0}'

Exemplos de uso do socket local e um json para gerar um evento.

Monitoramento de Infraestrutura e Servios Tools

Utilize interfaces para facilitar sua vida. O grafana permite criao de dashboards lendo diretamente do graphite. Use-o bastante.

Monitoramento de Infraestrutura e Servios Tools

Aqui temos um exemplo de dados coletados e postados no graphite. Apesar de ser uma excelente ferramenta, a interface do graphite deixa a desejar, portanto use o grafana.

Monitoramento de Infraestrutura e Servios Tools

Procure utilizar o ELK (Elasticsearch, Logstash e Kibana) para visualizar os seus logs de forma centralizada, e em conjunto com seus eventos gerados pelas suas monitoraes via sensu.

Monitoramento de Infraestrutura e Servios Tools

Esta a interface do graphite para eventos. So uteis para gerar graficos correlacionados a eventos. Veja o slide 12.

Monitoramento de Infraestrutura e Servios Sensu

Prximos passos:Integrao com o ITSM da empresa;

Implantao de estrutura em produo;

Criao de profiles de monitorao padro;

Testar um software para checks externos da aplicao;

Customizar a interface uchiwa;

Customizar dashboards no grafana;

Gerenciamento de logs centralizado com ELK;

Testar check-data, aggregates, check-aggregates;

E muito mais...

Outras coisas para fazer...

Monitoramento de Infraestrutura e Servios Sensu

Referncias:

https://sensuapp.org/docs/0.20/http://slides.sensuapp.org/#1http://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change
http://pt.slideshare.net/miquelruizm/monitoring-with-sensuhttps://en.wikipedia.org/wiki/Dead_man%27s_switchhttp://www.rampmeupscotty.com/blog/2013/01/20/why-use-sensu/https://robbydyer.wordpress.com/2014/08/25/highly-available-sensu/
https://github.com/sensu-plugins

Casos para estudo:

https://github.com/fzaninotto/uptimehttp://anatolijd.blogspot.co.uk/2014/07/scripting-grafana-dashboards.htmlhttp://anatolijd.blogspot.com.br/2015/02/just-enough-angular-for-uchiwa.htmlhttp://www.roblayton.com/2014/12/a-grafana-dashboard-for-graphite-and.html

Referncias.