SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
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, LDAP, NNTP,
  etc.

  And growing fast…
Objectivos

  Como está toda a infraestrutura
    agora?

    Serviços e Sistema

    Cross-platform

    Não intrusivo, idealmente agentless

    Flexível e facilmente extensível
 Inicialmente NetSaint, desenvolvido
  por Ethan Galstad

  Nagios Ain’t Gonna Insist On
  Sainthood

  GPL

  Grande comunidade
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 sistema
   remoto e posterior tratamento (ex.:
   espaço em disco). Como?
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
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
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;
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
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]
);
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
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
Vantagens e Desvantagens

    É O Standard

    Cross-platform

    Flexível e extensível

    Documentação + Comunidade


  Não incorpora gestão de inventário
Alternativas
Objectivos – Parte II

  Como esteve toda a infraestrutura no
   passado?

  Como é expectável que esteja no
   futuro?

  Cross-platform

  SNMP?
 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?
 Frontend para RRDtool desenvolvido
    por Ian Berry

    Desenvolvido em PHP + MySQL

    GPL

    Baseado em sistema de templates

    Poller central efectua a recolha
Arquitectura
Cacti Screenshots
Cacti Screenshots (ii)
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
Vantagens e Desvantagens

    Flexível e extensível

    Cross-platform

    Comunidade

    Excessiva complexidade nalgumas
    opções

  Curva de aprendizagem
Alternativas
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
?

Mais conteúdo relacionado

Mais procurados

Gerência de Redes - 2.Modelo SNMP
Gerência de Redes - 2.Modelo SNMPGerência de Redes - 2.Modelo SNMP
Gerência de Redes - 2.Modelo SNMPMauro Tapajós
 
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...Tchelinux
 
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasDe A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasAndré Déo
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoArtur Felipe Sousa
 
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...Zabbix BR
 
Presentta: usando Node.js na prática
Presentta: usando Node.js na práticaPresentta: usando Node.js na prática
Presentta: usando Node.js na práticaNando Vieira
 
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoZabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoAndré Déo
 
Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio Fernando Boaglio
 

Mais procurados (14)

Gerência de Redes - 2.Modelo SNMP
Gerência de Redes - 2.Modelo SNMPGerência de Redes - 2.Modelo SNMP
Gerência de Redes - 2.Modelo SNMP
 
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...
 
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasDe A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
 
FISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de DatacentersFISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de Datacenters
 
Sapo Sessions PHP
Sapo Sessions PHPSapo Sessions PHP
Sapo Sessions PHP
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produção
 
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
1º Meetup Zabbix Meetup do Recife: Matheus Cabral - Monitoramento de Data Cen...
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Presentta: usando Node.js na prática
Presentta: usando Node.js na práticaPresentta: usando Node.js na prática
Presentta: usando Node.js na prática
 
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoZabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
 
Pdo do PHP Palestra
Pdo do PHP PalestraPdo do PHP Palestra
Pdo do PHP Palestra
 
Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio
 
Nagios
NagiosNagios
Nagios
 
Snmp
SnmpSnmp
Snmp
 

Semelhante a Supervisão e Monitorização

VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVTapsegundo
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias WebRildo Pragana
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosFISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosMauro Tapajós
 
Administração de Rede Local
Administração de Rede LocalAdministração de Rede Local
Administração de Rede Localcymbron
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univemevandrovv
 
Zabbix monitorando o zimbra collaboration 8.8 (1)
Zabbix   monitorando o zimbra collaboration 8.8 (1)Zabbix   monitorando o zimbra collaboration 8.8 (1)
Zabbix monitorando o zimbra collaboration 8.8 (1)PAULO R. DEOLINDO JUNIOR
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open SourceEdgar Silva
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introduçãoPablo Feijó
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e SphinxElton Minetto
 
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...Alessandro Binhara
 
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...Frederico Garcia Costa
 
Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlIntegração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlDiego Tremper
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida realFernando Ike
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformanceFelipe Ribeiro
 
INT302 - VDI com Linux
INT302 - VDI com LinuxINT302 - VDI com Linux
INT302 - VDI com Linuxmestresemhd
 

Semelhante a Supervisão e Monitorização (20)

VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVT
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias Web
 
Cygwin
CygwinCygwin
Cygwin
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Zabbix 2010
Zabbix 2010Zabbix 2010
Zabbix 2010
 
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosFISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
 
Automação de Data Center
Automação de Data CenterAutomação de Data Center
Automação de Data Center
 
Administração de Rede Local
Administração de Rede LocalAdministração de Rede Local
Administração de Rede Local
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univem
 
Zabbix monitorando o zimbra collaboration 8.8 (1)
Zabbix   monitorando o zimbra collaboration 8.8 (1)Zabbix   monitorando o zimbra collaboration 8.8 (1)
Zabbix monitorando o zimbra collaboration 8.8 (1)
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e Sphinx
 
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...
 
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
 
Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlIntegração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControl
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
INT302 - VDI com Linux
INT302 - VDI com LinuxINT302 - VDI com Linux
INT302 - VDI com Linux
 

Mais de SAPO Sessions

Mais de SAPO Sessions (13)

Como preparar apresentações
Como preparar apresentaçõesComo preparar apresentações
Como preparar apresentações
 
Como Preparar Apresentações
Como Preparar ApresentaçõesComo Preparar Apresentações
Como Preparar Apresentações
 
Storage
StorageStorage
Storage
 
Falar Em Público
Falar Em PúblicoFalar Em Público
Falar Em Público
 
Command Line
Command LineCommand Line
Command Line
 
Arquitectura De Um Linux
Arquitectura De Um LinuxArquitectura De Um Linux
Arquitectura De Um Linux
 
Linux: História e Distros
Linux: História e DistrosLinux: História e Distros
Linux: História e Distros
 
Prototype e LibSAPO.js
Prototype e LibSAPO.jsPrototype e LibSAPO.js
Prototype e LibSAPO.js
 
HTML - How To
HTML - How ToHTML - How To
HTML - How To
 
JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for Beginners
 
JavaScript done right
JavaScript done rightJavaScript done right
JavaScript done right
 
CSS for Beginners
CSS for BeginnersCSS for Beginners
CSS for Beginners
 
Acessibilidade Web
Acessibilidade WebAcessibilidade Web
Acessibilidade Web
 

Supervisão e Monitorização