Monitoramento simples de servidores
Publicado por Alessandro Dias 18/05/2007 (última atualização em 09/09/2015)
[ Hits: 33.167 ]
Download 1441216625.monitor.tar.gz (versão 2)
Este script, que se encontra na versão 1.0, faz um monitoramento simples (IP e portas) de seus servidores ou equipamentos.
Você informa quais máquinas e portas serão monitoradas pelo script. Para isso altere o arquivo de configuração "monitor.conf" conforme os comentários.
Versão 2 - Enviado por Alessandro Dias em 02/09/2015
Changelog: Corrigindo o script!
Download 1441216625.monitor.tar.gz
<?php // Programa para monitoramento de rede // Desenvolvido por: Alessandro Dias // Data: 03/05/2007 // ------------------------------------------------- // ------------------------------------------------- Funcoes include "functions.php"; //-----------Lê o arquivo de configuração $conf=ler_config("monitor.conf"); $autor=$conf[0]["autor"]; $titulo=$conf[0]["titulo"]; $nr_servidores=$conf[0]["nr_servidores"]; //------ VERIFICACAO DO STATUS DAS MAQUINAS for ($i=1;$i<=$nr_servidores;$i++) { $ip[$i] = $conf[$i]["ip"]; $ip[$i] = gethostbyname($ip[$i]); $ok=testa_ping($ip[$i]); $resp=1; if (!$ok) $serv_status[$i] = $DESLIGADO; else { //---------------------- ping ok $portas=explode(",",$conf[$i]["portas"]); for ($j=0;$j<count($portas);$j++) { $ok_porta[$i][$portas[$j]]=testa_porta($ip[$i],$portas[$j]); $resp &= $ok_porta[$i][$portas[$j]]; } if ($resp) $serv_status[$i] = $LIGADO; else $serv_status[$i] = $SEM_SERVICO; $topico[$i] = $conf[$i]["topico"]; $serv_img[$i]=retorna_imagem($serv_status[$i]); } } for ($i=$nr_servidores+1;$i<=12;$i++) { //------------------------------ $topico[$i] = " "; $serv_status[$i]=$VAGO; $serv_img[$i]=retorna_imagem($serv_status[$i]); //------------------------------ } ?> <HTML> <HEAD> <style type="text/css"> div { position: absolute; left: 200px; top: 400px; background-color: #ffffff; width: 450px; padding: 10px; color: black; border: #0000cc 2px; display: none; -moz-opacity: 0.85; opacity: 0.85; filter: alpha(opacity=85); } </style> <script language="JavaScript"> function setVisibility(id, visibility, x, y) { document.all[id].style.left = x; document.all[id].style.top = y; document.all[id].style.display = visibility; } </script> <SCRIPT TYPE="text/javascript"> <!-- function popup(mylink, windowname) { if (! window.focus)return true; var href; if (typeof(mylink) == 'string') href=mylink; else href=mylink.href; window.open(href, windowname, 'width=700,height=300,scrollbars=yes'); return false; } //--> </SCRIPT> <TITLE>MONITORAMENTO DE SERVIDORES</TITLE> <!-- <meta http-equiv="refresh" content="60"> --> </HEAD> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> </HEAD> <BODY BGCOLOR=#000000 LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0> <FONT COLOR="white" SIZE=5 TYPE="arial"><?=$titulo?></FONT> <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0> <TR> <TD> <IMG onMouseOver="setVisibility('<?=$topico[1]?>', 'inline', 350, 50);" onMouseOut="setVisibility('<?=$topico[1]?>','none',0,0);" SRC="images/<?=$serv_img[1]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> <TD> <IMG onMouseOver="setVisibility('<?=$topico[2]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[2]?>','none',0,0);" SRC="images/<?=$serv_img[2]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> <TD> <IMG onMouseOver="setVisibility('<?=$topico[3]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[3]?>','none',0,0);" SRC="images/<?=$serv_img[3]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> </TR> <TR> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[1]?></FONT></TD> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[2]?></FONT></TD> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[3]?></FONT></TD> </TR> <TR> <TD> <IMG onMouseOver="setVisibility('<?=$topico[4]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[4]?>','none',0,0);" SRC="images/<?=$serv_img[4]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> <TD> <IMG onMouseOver="setVisibility('<?=$topico[5]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[5]?>','none',0,0);" SRC="images/<?=$serv_img[5]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> <TD> <IMG onMouseOver="setVisibility('<?=$topico[6]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[6]?>','none',0,0);" SRC="images/<?=$serv_img[6]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> </TR> <TR> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[4]?></FONT></TD> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[5]?></FONT></TD> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[6]?></FONT></TD> </TR> <TR> <TD> <IMG onMouseOver="setVisibility('<?=$topico[7]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[7]?>','none',0,0);" SRC="images/<?=$serv_img[7]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> <TD> <IMG onMouseOver="setVisibility('<?=$topico[8]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[8]?>','none',0,0);" SRC="images/<?=$serv_img[8]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> <TD> <IMG onMouseOver="setVisibility('<?=$topico[9]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[9]?>','none',0,0);" SRC="images/<?=$serv_img[9]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> </TR> <TR> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[7]?></FONT></TD> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[8]?></FONT></TD> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[9]?></FONT></TD> </TR> <TR> <TD> <IMG onMouseOver="setVisibility('<?=$topico[10]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[10]?>','none',0,0);" SRC="images/<?=$serv_img[10]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> <TD> <IMG onMouseOver="setVisibility('<?=$topico[11]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[11]?>','none',0,0);" SRC="images/<?=$serv_img[11]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> <TD> <IMG onMouseOver="setVisibility('<?=$topico[12]?>', 'inline', 300, 50);" onMouseOut="setVisibility('<?=$topico[12]?>','none',0,0);" SRC="images/<?=$serv_img[12]?>" WIDTH=100 HEIGHT=100 BORDER=0> </TD> </TR> <TR> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[10]?></FONT></TD> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[11]?></FONT></TD> <TD ALIGN="center"><FONT COLOR="white"><?=$topico[12]?></FONT></TD> </TR> </TABLE> <BR> <TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0> <TR> <TD COLSPAN=2 ALIGN="center"><FONT COLOR="white">LEGENDA</FONT></TD> </TR> <TR> <TD><IMG SRC="images/mini-verde.jpg" ALT=""></TD> <TD ALIGN="center"><FONT COLOR="white">OK</FONT></TD> </TR> <TR> <TD><IMG SRC="images/mini-vermelho.jpg" ALT=""></TD> <TD ALIGN="center"><FONT COLOR="white"> SEM SERVICO </FONT></TD> </TR> <TR> <TD><IMG SRC="images/mini-azul.jpg" ALT=""></TD> <TD ALIGN="center"><FONT COLOR="white"> ATENCAO </FONT></TD> </TR> <TR> <TD><IMG SRC="images/mini-preto.jpg" ALT=""></TD> <TD ALIGN="center"><FONT COLOR="white"> DESLIGADO </FONT></TD> </TR> <TR> <TD><IMG SRC="images/mini-branco.jpg" ALT=""></TD> <TD ALIGN="center"><FONT COLOR="white"> VAGO </FONT></TD> </TR> </TABLE> <BR><FONT COLOR="white"><?=$autor?></FONT> <? for ($i=1;$i<=$nr_servidores;$i++) { ?> <div id="<?=$topico[$i]?>"><table> <tr><td colspan=2><font color=darkblue><?=$topico[$i]?></font> (<?=$ip[$i]?>)</td></tr> <? if($serv_status[$i] == $DESLIGADO) $corpo="<tr><td>TURN OFF</td></tr>"; else { $corpo=""; $portas=explode(",",$conf[$i]["portas"]); for ($j=0;$j<count($portas);$j++) { if ($ok_porta[$i][$portas[$j]]) $corpo.="<tr><td width=160>tcp/".$portas[$j]."</td><td><font color=green>ON</font></td></tr>"; else $corpo.="<tr><td width=160>tcp/".$portas[$j]."</td><td><font color=red>OFF</font></td></tr>"; } } ?> <?=$corpo?> </table></div> <? } ?> </BODY> </HTML>
Monitoramento simples de servidores
Resolvendo IP para Hostname em PHP
php-scan-rede - scanner de rede simples em PHP
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)