Monitoração de Infraestrutura e Serviços - Sensu
-
Upload
roberto-scudeller -
Category
Technology
-
view
319 -
download
5
Transcript of Monitoração de Infraestrutura e Serviços - Sensu
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.