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 (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
0 comments
Post a comment