sexta-feira, 23 de março de 2012

Monitore vários servidores ao mesmo tempo com Apache + shellscript.


Objetivo :
O sistema tem por objetivo de realizar determinado teste e retornar o erro, publicando em uma página web que fica atualizando de segundo em segundo, ficando assim um monitoramento em tempo real.

- Instale o apache
- Crie uma pasta dentro de /var/www/monitor
- Verifique as permissões da pasta criada, certifique-se que está com permissão de escrita..
- Instale no diretório /var/www/ os arquivos “html” fornecidos no artigo..
Copie os scripts para /bin
Certifique as permissões 555 para os scripts..
Observe se a página no apache apareceu no navegador  http://192.168.0.1/monitor/index.html

Modo de uso:
Chame o script tester no terminal da mesma máquina com  o script, com a seguinte sintaxe..
$ tester [nome do servidor] [ip] [service] [status] [tabela1.html]
Obs: vc criará para cada teste a saída com nome diferente, está configurado no arquivo index.html o link da tabela1.html até tabela20.html,

EX:
teste monitoramento 1 :  $tester “proxy server” 10.12.0.1 Proxy tabela1.html
teste monitoramento 2 :  $tester “apache server” 10.12.0.2 Apache tabela2.html
teste monitoramento 3 :  $tester “SQLserver” 10.12.0.3 Sql tabela3.html
Nesta primeira versão o tester somente está realizando um teste de ping com 3 saltos, o tester repassa o resultado do teste para o monitor que desenha a tabela X linkada a página index.html

Estarei analisando outras metodologias para conseguir monitorar determinados serviços, assim podendo ficar mais completo e usual, este sistema pode ser muito útil a provedores.
Façam bom proveito!!!
By Roberto Fettuccia

------------Script monitor--------------
#!/bin/bash
clear
semntr="$1"
ipmntr="$2"
stmntr="$4"
scmntr="$3"
Xouthtm="$5"
wwwroot="/var/www/monitor"
varmktemp="$(echo $$)"
main(){
if [ "$1" == "--help" ]; then
fun.help
fi
if [ -z "$semntr" ] || [ -z "$ipmntr" ] || [ -z "$scmntr" ] || [ -z "$stmntr" ] || [ -z "$Xouthtm" ]; then
   if [ -z "$semntr" ] ; then
   echo "Error change NAME string valid!...."
   fi
      
   if [ -z "$ipmntr" ]; then
   echo "Error change IP string valid!...."
   fi
   if [ -z "$scmntr" ]; then
   echo "Error change SERVICE string valid!...."
   fi
      
   if [ -z "$stmntr" ] || [ "0" =! "$stmntr" ] || [ "1" =! "$stmntr" ] ; then
   echo "Error change STATUS vallue valid!....
   0 = service error or offline
   1 = service ok, online"   
   fi
      
   if [ -z "$Xouthtm" ]; then
   echo "Error change OUTFILE string valid!...."
   fi
fun.help
else
fun.publica
fi
}
fun.publica(){
unset vxhtm
unset updownservice
#verify return status for fized color string to $stmntr
if [ $stmntr == "0" ]; then
   updownservice="#FFFF00" # Yellow Vallue
   varSTATUS="ERROR"       # message error
   strBEG="<b>"         # Apply Bold "negrito"
   strEOF="</b>"           #
   Xcontrast="#000000"
   else
   updownservice="#0000FF" # blue Vallue
   varSTATUS="OK"
   strBEG=""
   strEOF=""
   Xcontrast="#FFFFFF"
fi
export vxhtm='<META HTTP-EQUIV="REFRESH" CONTENT="5">
<body>
<!--tabela dados inicio-->
<TABLE WIDTH=100% CELLPADDING=4 CELLSPACING=0 #0000ff>
   <COL WIDTH=85*>
   <COL WIDTH=85*>
   <COL WIDTH=85*>
   <TR VALIGN=TOP>
      <TD WIDTH=25% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<!--Servidor--><P STYLE="background: '$Xcontrast'"><FONT COLOR="'$updownservice'">'$strBEG''$semntr''$strEOF'</P>
      </TD>
      <TD WIDTH=25% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
<!--IP--><P STYLE="background: '$Xcontrast'"><FONT COLOR="'$updownservice'">'$strBEG''$ipmntr''$strEOF'</P>
      </TD>
      <TD WIDTH=25% STYLE="border: 1px solid #000000; padding: 0.1cm">
<!--Serviço--><P STYLE="background: '$Xcontrast'"><FONT COLOR="'$updownservice'">'$strBEG''$scmntr''$strEOF'</P>      
      </TD>       
      <TD WIDTH=25% STYLE="border: 1px solid #000000; padding: 0.1cm">
<!--Status--><P STYLE="background: '$Xcontrast'"><FONT COLOR="'$updownservice'">'$strBEG''$varSTATUS''$strEOF'</FONT></P>
      </TD>
   </TR>
</TABLE>
<!--tabela dados fim-->
</body>'
echo "$vxhtm" > $wwwroot/tmp/$varmktemp.tmp
mv $wwwroot/tmp/$varmktemp.tmp $wwwroot/"$Xouthtm"
}
fun.help(){
echo "
Usage ..
monitor [name] [ip] [service] [status] [outfile HTML]
mail contact : rpaulafettuccia@yahoo.com.br
by Roberto Fettuccia"
exit
}
main
------------fim script monitor-------------------
----------script tester----------------
#!/bin/bash
ping -c 3 $2 && vtest="1"
if [ -z $vtest ] || [ $vtest =! "1" ]; then
vtest="0"
fi
./monitor "$1" "$2" "$3" "$vtest" "$4"
--------------fim script tester--------------
arquivo para colocar no apache /var/www/monitor
--------arquivo cabecalho.html--------
<BODY LANG="pt-BR" DIR="LTR">
<P ALIGN=CENTER><BR>
</P>
<P ALIGN=CENTER><B>MONITOR Web</B></P>
<P ALIGN=CENTER><B>Ver 1,0 By Roberto Fettuccia</B></P>
<P ALIGN=CENTER><BR><BR></P>
<!--tabela cabeçalho inicio-->
<TABLE WIDTH=100% CELLPADDING=4 CELLSPACING=0>
   <COL WIDTH=85*>
   <COL WIDTH=85*>
   <COL WIDTH=85*>
   <TR VALIGN=TOP>
      <TD WIDTH=25% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
         <P><B>SERVIDOR</B></P>
      </TD>
      <TD WIDTH=25% STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm">
         <P><B>IP</B></P>
      </TD>
      <TD WIDTH=25% STYLE="border: 1px solid #000000; padding: 0.1cm">
         <P><B>SERVIÇO</B></P>
      </TD>
      <TD WIDTH=25% STYLE="border: 1px solid #000000; padding: 0.1cm">
         <P><B>STATUS</B></P>
      </TD>
   </TR>
</TABLE>
<!--tabela cabeçalho fim-->
</body>
--------fim arquivo cabecalho.html--------
--------inicio arquivo index.html---------
<HTML>
<HEAD>
   <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
   <META HTTP-EQUIV="REFRESH" CONTENT="3">   
   <TITLE>monitoramento de servicos</TITLE>
   
   <STYLE TYPE="text/css">
   </STYLE>
</HEAD>
<FRAMESET ROWS="45%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%,10%" FRAMEBORDER="0" FRAMESPACING="0">
<FRAME SRC="./cabecalho.html" NAME="superior" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela1.html" NAME="tb1" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela2.html" NAME="tb2" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela3.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela4.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela5.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela6.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela7.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela8.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela9.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela10.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela11.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela12.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela13.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela14.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela15.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela16.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela17.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela18.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela19.html" NAME="tb3" NORESIZE SCROLLING="NO">
<FRAME SRC="./tabela20.html" NAME="tb3" NORESIZE SCROLLING="NO">
</FRAMESET>
</BODY>
</HTML>
--------fim arquivo index.html---------

Ref: Vivao Linux

0 comentários:

Postar um comentário

 

SECURITY MASTER Copyright © 2011 -- Template created by Security Master -- Powered by Blogger