Supervisão e Monitorização

2,117
-1

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,117
On Slideshare
0
From Embeds
0
Number of Embeds
1
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. ?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×