• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Supervisão e Monitorização
 

Supervisão e Monitorização

on

  • 3,095 views

Ferramentas e metodologias para supervisionar e monitorizar sistemas remotos.

Ferramentas e metodologias para supervisionar e monitorizar sistemas remotos.

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

Statistics

Views

Total Views
3,095
Views on SlideShare
2,849
Embed Views
246

Actions

Likes
2
Downloads
62
Comments
0

2 Embeds 246

http://developers.blogs.sapo.pt 238
http://www.slideshare.net 8

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Supervisão e Monitorização Supervisão e Monitorização Presentation Transcript

    • 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
    • ?