Supervisão e
Monitorização 





                   Marco Ramos
                   Maio de 2009
SAPO

  ~ 600 servidores em produção

  90% Linux + 10% Microsoft

  HTTP, SMTP, IMAP, POP3, XMPP,
  SQL, FTP, RADIUS, LDA...
Objectivos

  Como está toda a infraestrutura
    agora?

    Serviços e Sistema

    Cross-platform

    Não intrusivo, i...
 Inicialmente NetSaint, desenvolvido
  por Ethan Galstad

  Nagios Ain’t Gonna Insist On
  Sainthood

  GPL

  Grande comu...
Arquitectura
Nagios Screenshot
Nagios Screenshot (ii)
Tipos de Alertas

  Serviço
  
Simulação de um pedido de um cliente
   (ex.: HTTP Get)

  Remoto
  
Recolha de um valor no...
SNMP

  Simple Network Management
  Protocol

  Standard

  Lightweight e Cross-platform

  Organizado em MIBs, acessível ...
Como escrever plugins/scripts?

  Pode ser usada qualquer linguagem

  Return codes: 
 
  0: Ok
 
  1: Warning
 
  2: Crit...
Exemplo: Alarme de serviço
#!/usr/bin/perl

use strict;
use DBI;

my $host=$ARGV[0];
my $user=$ARGV[1];
my $password=$ARGV...
Exemplo: Alarme Remoto

Servidor remoto:                                  
#!/bin/sh
ps ax | grep -v grep | grep -c ssh


...
Exemplo: Alarme Remoto (ii)
      Nagios:                                   
#!/usr/local/bin/perl

use strict;
          ...
10 features importantes


    Interacção com os alarmes

    Envio de notificações

    Escalar problemas

    Marcação de ...
10 features importantes (ii)

    Geração de reports

    Definição de acções correctivas

    Definição de dependências

  ...
Vantagens e Desvantagens

    É O Standard

    Cross-platform

    Flexível e extensível

    Documentação + Comunidade

...
Alternativas
Objectivos – Parte II

  Como esteve toda a infraestrutura no
   passado?

  Como é expectável que esteja no
   futuro?

 ...
 Round Robin Database Tool

  Desenvolvido por Tobias Oetiker,
  criador do MRTG

  Baseado na libgd para a geração de
  g...
 Frontend para RRDtool desenvolvido
    por Ian Berry

    Desenvolvido em PHP + MySQL

    GPL

    Baseado em sistema de...
Arquitectura
Cacti Screenshots
Cacti Screenshots (ii)
Exemplo de Script

Lembram-se do Slide anterior? 
Servidor remoto:                                   
 #!/bin/sh
 ps ax |...
Vantagens e Desvantagens

    Flexível e extensível

    Cross-platform

    Comunidade

    Excessiva complexidade nalgum...
Alternativas
Referências
http://nagios.org
http://nagiosexchange.org
http://zenoss.com
http://hyperic.com
http://zabbix.com
http://ping...
?
Upcoming SlideShare
Loading in …5
×

Supervisão e Monitorização

2,287 views
2,169 views

Published on

Ferramentas e metodologias para supervisionar e monitorizar sistemas remotos.

Como deixar centenas de servidores na empresa e ir para casa dormir descansado.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,287
On SlideShare
0
From Embeds
0
Number of Embeds
260
Actions
Shares
0
Downloads
66
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Supervisão e Monitorização

  1. 1. Supervisão e Monitorização Marco Ramos Maio de 2009
  2. 2. SAPO  ~ 600 servidores em produção  90% Linux + 10% Microsoft  HTTP, SMTP, IMAP, POP3, XMPP, SQL, FTP, RADIUS, LDAP, NNTP, etc.  And growing fast…
  3. 3. Objectivos  Como está toda a infraestrutura agora?  Serviços e Sistema  Cross-platform  Não intrusivo, idealmente agentless  Flexível e facilmente extensível
  4. 4.  Inicialmente NetSaint, desenvolvido por Ethan Galstad  Nagios Ain’t Gonna Insist On Sainthood  GPL  Grande comunidade
  5. 5. Arquitectura
  6. 6. Nagios Screenshot
  7. 7. Nagios Screenshot (ii)
  8. 8. Tipos de Alertas  Serviço Simulação de um pedido de um cliente (ex.: HTTP Get)  Remoto Recolha de um valor no sistema remoto e posterior tratamento (ex.: espaço em disco). Como?
  9. 9. SNMP  Simple Network Management Protocol  Standard  Lightweight e Cross-platform  Organizado em MIBs, acessível por OIDs, facilmente extensível  Síncrono ou Assíncrono
  10. 10. Como escrever plugins/scripts?  Pode ser usada qualquer linguagem  Return codes:  0: Ok  1: Warning  2: Critical  Descrição do problema: última linha enviada para STDOUT
  11. 11. Exemplo: Alarme de serviço #!/usr/bin/perl use strict; use DBI; my $host=$ARGV[0]; my $user=$ARGV[1]; my $password=$ARGV[2 ]; my $dbh; if (!($dbh=DBI->connect("dbi:mysql:host=$host","$user","$password"))) { print "Cannot connect to MySQL!n"; exit 2; } print "MySQL Ok!n"; exit 0;
  12. 12. Exemplo: Alarme Remoto Servidor remoto: #!/bin/sh ps ax | grep -v grep | grep -c ssh snmpd.conf do servidor remoto: exec checkNumberSSH /path/to/scripts/script.sh # Results in: # service name: .1.3.6.1.4.1.2021.8.1.2.1 # command executed: .1.3.6.1.4.1.2021.8.1.3.1 # exit code: .1.3.6.1.4.1.2021.8.1.100.1 # result: .1.3.6.1.4.1.2021.8.1.101.1
  13. 13. Exemplo: Alarme Remoto (ii) Nagios: #!/usr/local/bin/perl use strict; my $result = $session->get_request( use Net::SNMP; -varbindlist => [$oid] ); my $hostname = $ARGV[0]; if ($result->{$oid} >= 10) { my $community = "sapo"; print “Muitos processos SSHn"; my $oid = "1.3.6.1.4.1.2021.8.1.101.1"; exit 2; } my ($session, $error) = Net::SNMP->session ( print "Numero de processos SSH OK!n"; -hostname => $hostname, exit 0; -community => $community, -port => 161 ); my $result = $session->get_request( -varbindlist => [$oid] );
  14. 14. 10 features importantes  Interacção com os alarmes  Envio de notificações  Escalar problemas  Marcação de intervenções  Definição de intervalos de tempo
  15. 15. 10 features importantes (ii)  Geração de reports  Definição de acções correctivas  Definição de dependências  Interacção com API do motor  Arquitectura Master-Slave
  16. 16. Vantagens e Desvantagens  É O Standard  Cross-platform  Flexível e extensível  Documentação + Comunidade  Não incorpora gestão de inventário
  17. 17. Alternativas
  18. 18. Objectivos – Parte II  Como esteve toda a infraestrutura no passado?  Como é expectável que esteja no futuro?  Cross-platform  SNMP?
  19. 19.  Round Robin Database Tool  Desenvolvido por Tobias Oetiker, criador do MRTG  Baseado na libgd para a geração de gráficos Mas… como “injectar” os dados no RRDtool?
  20. 20.  Frontend para RRDtool desenvolvido por Ian Berry  Desenvolvido em PHP + MySQL  GPL  Baseado em sistema de templates  Poller central efectua a recolha
  21. 21. Arquitectura
  22. 22. Cacti Screenshots
  23. 23. Cacti Screenshots (ii)
  24. 24. Exemplo de Script Lembram-se do Slide anterior?  Servidor remoto: #!/bin/sh ps ax | grep -v grep | grep -c ssh snmpd.conf do servidor remoto: exec checkNumberSSH /path/to/scripts/script.sh # Results in: # service name: .1.3.6.1.4.1.2021.8.1.2.1 # command executed: .1.3.6.1.4.1.2021.8.1.3.1 # exit code: .1.3.6.1.4.1.2021.8.1.100.1 # result: .1.3.6.1.4.1.2021.8.1.101.1
  25. 25. Vantagens e Desvantagens  Flexível e extensível  Cross-platform  Comunidade  Excessiva complexidade nalgumas opções  Curva de aprendizagem
  26. 26. Alternativas
  27. 27. Referências http://nagios.org http://nagiosexchange.org http://zenoss.com http://hyperic.com http://zabbix.com http://pingdom.com http://royal.pingdom.com http://oss.oetiker.ch/rrdtool/ http://cacti.net http://ganglia.info http://munin.projects.linpro.no/ https://labs.omniti.com/trac/reconnoiter
  28. 28. ?

×