Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
SDI - Sistema de Diagn�ostico instant�aneo
Bruno C�esar Ribas
Centro de Computa�c�ao Cient���ca e Software Livre
10 de novembro de 2008
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 1 / 34
Sum�ario
1 Apresenta�c�ao
2 SDISSHDiag�ostico
EstadosSum�arios
3 Possibilidades
4 Porque usar SDI?
5 Futuro
6 Conclus�ao
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 2 / 34
Apresenta�c�ao
Centro de Computa�c�ao Cient���ca e Software Livre (C3SL)
Departamento de Inform�atica - UFPR
Equipe de Desenvolvimento do SDI - 3 integrantesI Bruno RibasI Diego PasqualinI Vinicius Ruoso
Maior usecase : PrD 2000 servidorasI M�aquinas distribu��das no EstadoI Rede com grande �utua�c�aoI Banda n�ao muito larga
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 3 / 34
Apresenta�c�ao
Centro de Computa�c�ao Cient���ca e Software Livre (C3SL)
Departamento de Inform�atica - UFPR
Equipe de Desenvolvimento do SDI - 3 integrantesI Bruno RibasI Diego PasqualinI Vinicius Ruoso
Maior usecase : PrD 2000 servidorasI M�aquinas distribu��das no EstadoI Rede com grande �utua�c�aoI Banda n�ao muito larga
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 3 / 34
Sum�ario
1 Apresenta�c�ao
2 SDISSHDiag�ostico
EstadosSum�arios
3 Possibilidades
4 Porque usar SDI?
5 Futuro
6 Conclus�ao
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 4 / 34
O que �e?!
O Sistema de Diagn�ostico Instant�aneo (SDI) �e um sistema de informa�c�aode resposta instant�anea escal�avel; permitindo administrar, coletarinforma�c�oes e gerar estat��sticas de qualquer computador monitorado. NoSDI, al�em das fun�c�oes j�a mencionadas, h�a ainda um prop�osito maisespec���co: gerar alarmes quando algo de errado est�a acontecendo. Ainda,permite executar processos em qualquer computador monitorado como umambiente de execu�c�ao distribu��do.
calma!
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 5 / 34
O que �e?!
O Sistema de Diagn�ostico Instant�aneo (SDI) �e um sistema de informa�c�aode resposta instant�anea escal�avel; permitindo administrar, coletarinforma�c�oes e gerar estat��sticas de qualquer computador monitorado. NoSDI, al�em das fun�c�oes j�a mencionadas, h�a ainda um prop�osito maisespec���co: gerar alarmes quando algo de errado est�a acontecendo. Ainda,permite executar processos em qualquer computador monitorado como umambiente de execu�c�ao distribu��do.
calma!
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 5 / 34
Sistema de Informa�c�ao de Resposta Instant�anea
Como?I T�unel SSH *sempre* abertoI Scripts de diagn�ostico
F manda a pergunta, resposta vem de imediado
I Interpretar informa�c�oes sobre os hosts quando a resposta chega
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 6 / 34
Esquema de Funcionamento
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 7 / 34
T�unel SSH sempre aberto
Quando o t�unel morre (conex�ao falhou, host caiu) ele reabre
N�ao tem overhead de criar o t�unel a cada comando
Iniciar todos os t�uneis custa caro. Trabalho �e feito uma vez s�o.
Nem tudo s�ao �ores
Manter muitos t�uneis abertos custa caroI No PrD (2000hosts), 12k processos e 4GB de ram
No hor�ario de executar scripts, os diag�osticos custam caro.I No Prd chega passa de 16k processos na virada de hora
Muitos processos, load alto
Em at�e 2 releases do SDI o problema de processos ser�a minimizado
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 8 / 34
T�unel SSH sempre aberto
Quando o t�unel morre (conex�ao falhou, host caiu) ele reabre
N�ao tem overhead de criar o t�unel a cada comando
Iniciar todos os t�uneis custa caro. Trabalho �e feito uma vez s�o.
Nem tudo s�ao �ores
Manter muitos t�uneis abertos custa caroI No PrD (2000hosts), 12k processos e 4GB de ram
No hor�ario de executar scripts, os diag�osticos custam caro.I No Prd chega passa de 16k processos na virada de hora
Muitos processos, load alto
Em at�e 2 releases do SDI o problema de processos ser�a minimizado
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 8 / 34
T�unel SSH sempre aberto
Quando o t�unel morre (conex�ao falhou, host caiu) ele reabre
N�ao tem overhead de criar o t�unel a cada comando
Iniciar todos os t�uneis custa caro. Trabalho �e feito uma vez s�o.
Nem tudo s�ao �ores
Manter muitos t�uneis abertos custa caroI No PrD (2000hosts), 12k processos e 4GB de ram
No hor�ario de executar scripts, os diag�osticos custam caro.I No Prd chega passa de 16k processos na virada de hora
Muitos processos, load alto
Em at�e 2 releases do SDI o problema de processos ser�a minimizado
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 8 / 34
Redu�c�ao de processos etapa 1
Redu�c�ao da quantidade de Parser rodando simultaneamente
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 9 / 34
Redu�c�ao de processos etapa 2
Super Fila, que passar�a o comando direto ao destino
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 10 / 34
Scripts de Diagn�ostico
Todo script do SDI, a pr��ncipio �e em BASH, AWKI Facilita quando SDI roda em m�aquinas de arquiteturas diferentesI Simples de expandirI Adm UNIX se diverte
Arquivos com comandos s�ao enviados pelas Filas espec���cas do host,ou na GERAL (enviando para todos ao mesmo tempo)
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 11 / 34
Scripts de Diagn�ostico
Os scripts de diag�osticos possuem 2 partes.
A primeira �e o Script que ser�a executado no HOSTI Script Qualquer em BASH, AWK, PYTHON
Exemplo de Script de Diagn�ostico
#!/bin/bash
UPSEC=$(cat /proc/uptime |cut -d. -f1)
((UPDAYS=UPSEC/60/60/24))
((UPHOURS=UPSEC/60/60 - UPDAYS*24))
((UPMINUTES=UPSEC/60 - UPHOURS*60 - UPDAYS*24*60))
printf "UPTIME+$UPDAYS days, $UPHOURS:$UPMINUTES\n"
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 12 / 34
Scripts de Diagn�ostico
Os scripts de diag�osticos possuem 2 partes.
A primeira �e o Script que ser�a executado no HOSTI Script Qualquer em BASH, AWK, PYTHON
Exemplo de Script de Diagn�ostico
#!/bin/bash
UPSEC=$(cat /proc/uptime |cut -d. -f1)
((UPDAYS=UPSEC/60/60/24))
((UPHOURS=UPSEC/60/60 - UPDAYS*24))
((UPMINUTES=UPSEC/60 - UPHOURS*60 - UPDAYS*24*60))
printf "UPTIME+$UPDAYS days, $UPHOURS:$UPMINUTES\n"
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 12 / 34
Scripts de Diagn�ostico
Os scripts de diag�osticos possuem 2 partes.
A primeira �e o Script que ser�a executado no HOSTI Script Qualquer em BASH, AWK, PYTHON
A segunda �e o Script do PARSERI Script que ir�a de�nir o que ser�a feito com o dadoI Possui DUAS fun�c�oes:
F updatedata()F www()
Exemplo fun�c�ao updatedata()
function meu_script_updatedata()
{
UPDATA="$*"
}
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 13 / 34
Scripts de Diagn�ostico
Os scripts de diag�osticos possuem 2 partes.
A primeira �e o Script que ser�a executado no HOSTI Script Qualquer em BASH, AWK, PYTHON
A segunda �e o Script do PARSERI Script que ir�a de�nir o que ser�a feito com o dadoI Possui DUAS fun�c�oes:
F updatedata()F www()
Exemplo fun�c�ao updatedata()
function meu_script_updatedata()
{
UPDATA="$*"
}
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 13 / 34
Scripts de Diagn�osticoOs scripts de diag�osticos possuem 2 partes.
A primeira �e o Script que ser�a executado no HOSTI Script Qualquer em BASH, AWK, PYTHON
A segunda �e o Script do PARSERI Script que ir�a de�nir o que ser�a feito com o dadoI Possui DUAS fun�c�oes:
F updatedata()F www()
Exemplo fun�c�ao updatedata()
function uptime_www()
{
UP="$*"
UPDAYS=$(awk -F" days" '{print $1}' <<< $UP)
UPMINUTES=$(cut -d":" -f2 <<< $UP)
UPHOURS=$(awk -F"days, " '{print $2}' <<< $UP | cut -d":" -f1)
PSORTCUSTOM=$(printf "%d%.2d%.2d" $UPDAYS $UPHOURS $UPMINUTES)
}
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 14 / 34
Scripts de Diagn�ostico - Estados
Os scripts do PARSER podem colocar os HOSTS em determinadosestadosPara colocar o HOST em um estado basta o script do PARSER de�niro estado em que o host se encontra.
Colocando um HOST em um estado
function uptime_www()
{
... <snip/>
if (( $UPDAYS <= 5 )); then
PSTATETYPE="highuptime:false lowuptime:true"
elif (( $UPDAYS >= 100 )); then
PSTATETYPE="highuptime:true lowuptime:false"
else
PSTATETYPE="highuptime:false lowuptime:false"
fi
}
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 15 / 34
Scripts de Diagn�ostico - Estados
Os scripts do PARSER podem colocar os HOSTS em determinadosestadosPara colocar o HOST em um estado basta o script do PARSER de�niro estado em que o host se encontra.
Colocando um HOST em um estado
function uptime_www()
{
... <snip/>
if (( $UPDAYS <= 5 )); then
PSTATETYPE="highuptime:false lowuptime:true"
elif (( $UPDAYS >= 100 )); then
PSTATETYPE="highuptime:true lowuptime:false"
else
PSTATETYPE="highuptime:false lowuptime:false"
fi
}
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 15 / 34
Scripts de Diagn�ostico - Estados
Os scripts do PARSER podem colocar os HOSTS em determinadosestadosPara colocar o HOST em um estado basta o script do PARSER de�niro estado em que o host se encontra.
Colocando um HOST em um estado
function uptime_www()
{
... <snip/>
if (( $UPDAYS <= 5 )); then
PSTATETYPE="highuptime:false lowuptime:true"
elif (( $UPDAYS >= 100 )); then
PSTATETYPE="highuptime:true lowuptime:false"
else
PSTATETYPE="highuptime:false lowuptime:false"
fi
}
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 15 / 34
Scripts de Diagn�ostico - Sum�arios
Maneira de mostrar os estados concentrados
Criar v�arios sum�arios
Exemplos usados no PrD
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 16 / 34
Scripts de Diagn�ostico - Sum�arios
Maneira de mostrar os estados concentrados
Criar v�arios sum�arios
Exemplos usados no PrD
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 16 / 34
SDI - Instant�aneo
Servidor WEB com SSI
PARSER gera fragmentos de cada HOST
XML com dados �e montado na requisi�ao via SSI
Javascript (no navegador) monta tabelas atrav�es do XML
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 17 / 34
SDI - Instant�aneo
Servidor WEB com SSI
PARSER gera fragmentos de cada HOST
XML com dados �e montado na requisi�ao via SSI
Javascript (no navegador) monta tabelas atrav�es do XML
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 17 / 34
Sum�ario
1 Apresenta�c�ao
2 SDISSHDiag�ostico
EstadosSum�arios
3 Possibilidades
4 Porque usar SDI?
5 Futuro
6 Conclus�ao
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 18 / 34
Possibilidades do SDI
Executar qualquer comando em qualquer HOST [ DEE - Ambiente deExecu�c�ao Distribu��do ]
Fazer qualquer tipo de diag�ostico
�E poss��vel enxergar os HOSTS monitorados pelo SDI como um GRID
Basta fazer os scripts de executar e o parser
->Exemplo SAT<-
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 19 / 34
Possibilidades do SDI
Executar qualquer comando em qualquer HOST [ DEE - Ambiente deExecu�c�ao Distribu��do ]
Fazer qualquer tipo de diag�ostico
�E poss��vel enxergar os HOSTS monitorados pelo SDI como um GRID
Basta fazer os scripts de executar e o parser
->Exemplo SAT<-
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 19 / 34
Sum�ario
1 Apresenta�c�ao
2 SDISSHDiag�ostico
EstadosSum�arios
3 Possibilidades
4 Porque usar SDI?
5 Futuro
6 Conclus�ao
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 20 / 34
Porque usar SDI?
F�acil de usar
N�ao requer aplica�c�oes obscuras para funcionar
N�ao demanda mais outro daemon na m�aquina monitorada
Conex�ao encriptada
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 21 / 34
Sum�ario
1 Apresenta�c�ao
2 SDISSHDiag�ostico
EstadosSum�arios
3 Possibilidades
4 Porque usar SDI?
5 Futuro
6 Conclus�ao
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 22 / 34
Futuro do SDI
Disponibilizar mais scripts de diagn�ostico
Disponibilizar ferramentas estat��sticas (como banda, online)
Disponibilizar API simples para utilizar o SDI como um DEE
Obter mais desenvolvedors >=)
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 23 / 34
Sum�ario
1 Apresenta�c�ao
2 SDISSHDiag�ostico
EstadosSum�arios
3 Possibilidades
4 Porque usar SDI?
5 Futuro
6 Conclus�ao
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 24 / 34
Conclus�ao
Uma ferramenta escal�avel
Facilidade na inclus�ao de novos scripts
SDI n�ao se limita em Diagnosticar
Precisa de mais desenvolvedoresI N�ao necessariamente para desenvolver o SDI, mas sim para criar novos
scripts e facilidades.
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 25 / 34
D�uvidas, Perguntas, Choro ou Lamenta�c�oes
SITE: http://sdi.sf.net
WIKI: http://wiki.c3sl.ufpr.br/sdi
GIT: http://git.c3sl.ufpr.br
MAILING-LIST:I Archive: http://listas.c3sl.ufpr.br/sdiI e-mail: [email protected]
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 26 / 34
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 27 / 34
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 28 / 34
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 29 / 34
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 30 / 34
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 31 / 34
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 32 / 34
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 33 / 34
Bruno Ribas (C3SL) SDI 10 de novembro de 2008 34 / 34