SlideShare uma empresa Scribd logo
1 de 20
Monitoramento de Infraestrutura e Serviços – Sensu
05/08/2015
Roberto Scudeller
roberto.scudeller@oi.net.br
beto.rvs@gmail.com
Monitoramento de Infraestrutura e Serviços – Sensu
Objetivos:
● Atualizar a ferramenta;
● Geração de gráficos;
● Compartilhar a função de monitoramento com todas as equipes;
● Abertura automática de incidentes;
● Integração com Gerenciamento de configurações;
● Envio em multiplos canais de comunicação se algo não “vai bem”.
Monitoramento de Infraestrutura e Serviços – Sensu
● Sem cluster ativo-ativo (não é fácil ativo
passivo);
● Restart após adicionar um host;
● Difícil de manejar e configurar;
● Nagios Master executa os checks;
● Primeira versão em 14/03/1999;
Monitoramento de Infraestrutura e Serviços – Sensu
● Cluster ativo-ativo;
● Clientes se registram automaticamente;
● Escrito em ruby;
● Clientes executam os testes;
● Configurações em arquivos json;
● Compativel com scripts do nagios;
Recursos:
● O cliente reune os checks;
● Servidor toma a ação;
● REST API para consulta (ou uma
interface);
● Todo cliente possui um keepalived;
Monitoramento de Infraestrutura e Serviços – Sensu
Check
Result
V
Event
Handler
Checks:
● Envia a saída 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 ação por evento recebido;
● Diversos tipos: script, socket, etc;
Monitoramento de Infraestrutura e Serviços – 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 saída diferente de zero?
Primeira saída de status zero da série?
Esta marcado como métrica (metric)?
Event!!!!
Monitoramento de Infraestrutura e Serviços – Sensu
Handlers
Monitoramento de Infraestrutura e Serviços – Sensu
Class profile::sensu::client {
include '::sensu'
}
Use um gerenciador de configurações para facilitar!
Exemplo no puppet:
Monitoramento de Infraestrutura e Serviços – 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,
}
}
Monitoramento de Infraestrutura e Serviços – Sensu
Monitoramento de Infraestrutura e Serviços – 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
Monitoramento de Infraestrutura e Serviços – 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 monitoração com métrica
Monitoramento de Infraestrutura e Serviços – 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
Monitoramento de Infraestrutura e Serviços – 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
Aplicação envia um json para localhost 3030 por minuto:
{"name": "app_MuitoImportante", "ttl": 90, "output": "Everything is OK", "status": 0}'
Monitoramento de Infraestrutura e Serviços – Tools
Monitoramento de Infraestrutura e Serviços – Tools
Monitoramento de Infraestrutura e Serviços – Tools
Monitoramento de Infraestrutura e Serviços – Tools
Monitoramento de Infraestrutura e Serviços – Sensu
Próximos passos:
● Integração com o ITSM da empresa;
● Implantação de estrutura em produção;
● Criação de profiles de monitoração padrão;
● Testar um software para checks externos da aplicação;
● Customizar a interface uchiwa;
● Customizar dashboards no grafana;
● Gerenciamento de logs centralizado com ELK;
● Testar check-data, aggregates, check-aggregates;
● E muito mais...
Monitoramento de Infraestrutura e Serviços – Sensu
Referências:
https://sensuapp.org/docs/0.20/
http://slides.sensuapp.org/#1
http://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change
http://pt.slideshare.net/miquelruizm/monitoring-with-sensu
https://en.wikipedia.org/wiki/Dead_man%27s_switch
http://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/uptime
http://anatolijd.blogspot.co.uk/2014/07/scripting-grafana-dashboards.html
http://anatolijd.blogspot.com.br/2015/02/just-enough-angular-for-uchiwa.html
http://www.roblayton.com/2014/12/a-grafana-dashboard-for-graphite-and.html

Mais conteúdo relacionado

Semelhante a Monitoração de Infraestrutura e Serviços - Sensu

Curso Monitoramento Profissional com Nagios em Sao Paulo
Curso Monitoramento Profissional com Nagios em Sao PauloCurso Monitoramento Profissional com Nagios em Sao Paulo
Curso Monitoramento Profissional com Nagios em Sao PauloGrupo Treinar
 
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...tdc-globalcode
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Jeronimo Zucco
 
Gerenciamento de configuração com puppet
Gerenciamento de configuração com puppetGerenciamento de configuração com puppet
Gerenciamento de configuração com puppetElton Simões
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Jeronimo Zucco
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias WebRildo Pragana
 
Ferramentas de monitoramento de redes de computadors
Ferramentas de monitoramento de redes de computadorsFerramentas de monitoramento de redes de computadors
Ferramentas de monitoramento de redes de computadorsUFPA
 
Apresentação ítalo 17.09.21
Apresentação ítalo 17.09.21Apresentação ítalo 17.09.21
Apresentação ítalo 17.09.21Ítalo Bruno
 
Monitoramento Enterprise com Zabbix+RHEL
Monitoramento Enterprise com Zabbix+RHELMonitoramento Enterprise com Zabbix+RHEL
Monitoramento Enterprise com Zabbix+RHELAlessandro Silva
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Fabrízio Mello
 
CACTI: Monitoramento Inteligente de Redes - Gabriel Stein
CACTI: Monitoramento Inteligente de Redes - Gabriel SteinCACTI: Monitoramento Inteligente de Redes - Gabriel Stein
CACTI: Monitoramento Inteligente de Redes - Gabriel SteinTchelinux
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoGuilhermeJorgeAragod
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores LinuxAlessandro Silva
 
Gerência de Configurações com o Puppet
Gerência de Configurações com o PuppetGerência de Configurações com o Puppet
Gerência de Configurações com o Puppetpericles_junior
 

Semelhante a Monitoração de Infraestrutura e Serviços - Sensu (20)

Curso Monitoramento Profissional com Nagios em Sao Paulo
Curso Monitoramento Profissional com Nagios em Sao PauloCurso Monitoramento Profissional com Nagios em Sao Paulo
Curso Monitoramento Profissional com Nagios em Sao Paulo
 
Igor Oliveira - Puppet
Igor Oliveira - PuppetIgor Oliveira - Puppet
Igor Oliveira - Puppet
 
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Gerenciamento de configuração com puppet
Gerenciamento de configuração com puppetGerenciamento de configuração com puppet
Gerenciamento de configuração com puppet
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias Web
 
Ferramentas de monitoramento de redes de computadors
Ferramentas de monitoramento de redes de computadorsFerramentas de monitoramento de redes de computadors
Ferramentas de monitoramento de redes de computadors
 
Apresentação ítalo 17.09.21
Apresentação ítalo 17.09.21Apresentação ítalo 17.09.21
Apresentação ítalo 17.09.21
 
Oracle - UXinsight
Oracle - UXinsightOracle - UXinsight
Oracle - UXinsight
 
Monitoramento Enterprise com Zabbix+RHEL
Monitoramento Enterprise com Zabbix+RHELMonitoramento Enterprise com Zabbix+RHEL
Monitoramento Enterprise com Zabbix+RHEL
 
Nagios
NagiosNagios
Nagios
 
Zabbix
ZabbixZabbix
Zabbix
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010
 
Automação de Data Center
Automação de Data CenterAutomação de Data Center
Automação de Data Center
 
CACTI: Monitoramento Inteligente de Redes - Gabriel Stein
CACTI: Monitoramento Inteligente de Redes - Gabriel SteinCACTI: Monitoramento Inteligente de Redes - Gabriel Stein
CACTI: Monitoramento Inteligente de Redes - Gabriel Stein
 
Consegi 2011: Puppet
Consegi 2011: PuppetConsegi 2011: Puppet
Consegi 2011: Puppet
 
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores Linux
 
Gerência de Configurações com o Puppet
Gerência de Configurações com o PuppetGerência de Configurações com o Puppet
Gerência de Configurações com o Puppet
 

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

  • 1. Monitoramento de Infraestrutura e Serviços – Sensu 05/08/2015 Roberto Scudeller roberto.scudeller@oi.net.br beto.rvs@gmail.com
  • 2. Monitoramento de Infraestrutura e Serviços – Sensu Objetivos: ● Atualizar a ferramenta; ● Geração de gráficos; ● Compartilhar a função de monitoramento com todas as equipes; ● Abertura automática de incidentes; ● Integração com Gerenciamento de configurações; ● Envio em multiplos canais de comunicação se algo não “vai bem”.
  • 3. Monitoramento de Infraestrutura e Serviços – Sensu ● Sem cluster ativo-ativo (não é fácil ativo passivo); ● Restart após adicionar um host; ● Difícil de manejar e configurar; ● Nagios Master executa os checks; ● Primeira versão em 14/03/1999;
  • 4. Monitoramento de Infraestrutura e Serviços – Sensu ● Cluster ativo-ativo; ● Clientes se registram automaticamente; ● Escrito em ruby; ● Clientes executam os testes; ● Configurações em arquivos json; ● Compativel com scripts do nagios; Recursos: ● O cliente reune os checks; ● Servidor toma a ação; ● REST API para consulta (ou uma interface); ● Todo cliente possui um keepalived;
  • 5. Monitoramento de Infraestrutura e Serviços – Sensu Check Result V Event Handler Checks: ● Envia a saída 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 ação por evento recebido; ● Diversos tipos: script, socket, etc;
  • 6. Monitoramento de Infraestrutura e Serviços – 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 saída diferente de zero? Primeira saída de status zero da série? Esta marcado como métrica (metric)? Event!!!!
  • 7. Monitoramento de Infraestrutura e Serviços – Sensu Handlers
  • 8. Monitoramento de Infraestrutura e Serviços – Sensu Class profile::sensu::client { include '::sensu' } Use um gerenciador de configurações para facilitar! Exemplo no puppet:
  • 9. Monitoramento de Infraestrutura e Serviços – 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, } }
  • 10. Monitoramento de Infraestrutura e Serviços – Sensu
  • 11. Monitoramento de Infraestrutura e Serviços – 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
  • 12. Monitoramento de Infraestrutura e Serviços – 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 monitoração com métrica
  • 13. Monitoramento de Infraestrutura e Serviços – 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
  • 14. Monitoramento de Infraestrutura e Serviços – 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 Aplicação envia um json para localhost 3030 por minuto: {"name": "app_MuitoImportante", "ttl": 90, "output": "Everything is OK", "status": 0}'
  • 15. Monitoramento de Infraestrutura e Serviços – Tools
  • 16. Monitoramento de Infraestrutura e Serviços – Tools
  • 17. Monitoramento de Infraestrutura e Serviços – Tools
  • 18. Monitoramento de Infraestrutura e Serviços – Tools
  • 19. Monitoramento de Infraestrutura e Serviços – Sensu Próximos passos: ● Integração com o ITSM da empresa; ● Implantação de estrutura em produção; ● Criação de profiles de monitoração padrão; ● Testar um software para checks externos da aplicação; ● Customizar a interface uchiwa; ● Customizar dashboards no grafana; ● Gerenciamento de logs centralizado com ELK; ● Testar check-data, aggregates, check-aggregates; ● E muito mais...
  • 20. Monitoramento de Infraestrutura e Serviços – Sensu Referências: https://sensuapp.org/docs/0.20/ http://slides.sensuapp.org/#1 http://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change http://pt.slideshare.net/miquelruizm/monitoring-with-sensu https://en.wikipedia.org/wiki/Dead_man%27s_switch http://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/uptime http://anatolijd.blogspot.co.uk/2014/07/scripting-grafana-dashboards.html http://anatolijd.blogspot.com.br/2015/02/just-enough-angular-for-uchiwa.html http://www.roblayton.com/2014/12/a-grafana-dashboard-for-graphite-and.html

Notas do Editor

  1. Inicio: quem eu sou?
  2. Objetivos da apresentação
  3. O que geralmente encontramos nas operações de TI. Nagios é uma boa ferramenta, porém para ambientes mais novos, com deploy continuo, ele tem suas limitações. Por esse motivo, escolhemos mudar para uma nova...
  4. Sensu foi criado pensando em ambientes em Cloud, com uma arquitura baseada em microservices. Leia mais no https://sensuapp.org/docs/latest/overview
  5. 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 é compatível com os scripts de check do nagios.
  6. Estas são as opções 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 opção local para postagem via json que irá alarmar no sensu server.
  7. Estas são algumas das opções de handlers para onde os eventos serão enviados.
  8. Um exemplo de configuração de cliente sensu usando o puppet como gerenciador de configurações. E uma amostra de como este cliente aparece no uchiwa, uma interface de visualização para os eventos do sensu.
  9. Muito fácil. 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 versões mais novas do puppet.E um evento no slack!!!
  10. Este evento na interface uchiwa, no graphite/events, e no kibana.
  11. Um exemplo de check standalone, que só ocorre no cliente, e como um servidor sensu interpreta o check e seu evento.
  12. Um exemplo de chack “type: metric” postado no graphite.Vale notar que o grafico está relacionando eventos do graphite também.
  13. Usando a tag “source: xxxxx” para indicar que estes checks são de um cliente não convencional, como no exemplo um roteador.
  14. Exemplos de uso do socket local e um json para gerar um evento.
  15. Utilize interfaces para facilitar sua vida. O grafana permite criação de dashboards lendo diretamente do graphite. Use-o bastante.
  16. 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.
  17. 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 monitorações via sensu.
  18. Esta é a interface do graphite para eventos. São uteis para gerar graficos correlacionados a eventos. Veja o slide 12.
  19. Outras coisas para fazer...
  20. Referências.