Script para Monitoramento
Publicado por Marcelo Donato de Lemos Rossato 10/07/2004
[ Hits: 27.540 ]
Muitas vezes, temos que disponibilizar serviços que não podem ficar fora do ar nem por alguns minutos durante o dia. Para atingir esses resultados, é necessário ter um sistema muito bem instalado e configurado e, além disso, utilizar um script que avise o administrador da rede (via e-mail) que algo não está funcionando bem e precisa ser arrumado. Foi escrito um script em PERL que verifica diversos serviços, conectividade e log de sistemas, entre eles:
1) Serviço sendmail, named, radiusd e httpd.
2) Teste de ping e traceroute.
3) Conectividade e host remoto.
4) Informações de hd e memória.
5) Últimas linhas dos log's.
Segue abaixo o código que pode ser alterado, conforme necessidade. É claro que qualquer alteração, deve manter o nome do autor e os direitos autorais do script.
Pronto!!! Depois de digitar essas linhas em um editor de texto, salve o arquivo e transforme em executável com o comando abaixo:
chmod 700 nomearquivo
Depois disso, basta colocar o arquivo no cron do usuário root para rodar de 10 em 10 minutos e receber os dados do sistema em seu e-mail.
#!/usr/bin/perl
#=========================================================================================
# Script para monitoramento de sistemas
# Desenvolvido por Alexandre Pedroso
# http://www.aplinux.com.br - aplinux@ig.com.br
#=========================================================================================
system("rm -rf /root/monitor.txt");
system("echo '============================================================' > /root/monitor.txt");
system("echo 'VERIFICAÇÃO DOS SISTEMAS DA EMPRESA' >> /root/monitor.txt");
system("echo '============================================================' >> /root/monitor.txt");
system("echo -n 'SERVIDOR LINUX xxx.xxx.xxx.x - ' >> /root/monitor.txt ; date >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo 'SERVIÇOS ATIVOS:' >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo -n '1) ' >> /root/monitor.txt ; /etc/init.d/sendmail status >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo -n '2) ' >> /root/monitor.txt ; /etc/init.d/named status >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo -n '3) ' >> /root/monitor.txt ; /etc/init.d/radiusd status >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo -n '4) ' >> /root/monitor.txt ; /etc/init.d/httpd status >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo 'FILA DE E-MAIL:' >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo -n 'Mensagens na fila: ' >> /root/monitor.txt ; mailq | wc -l >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo 'TESTE DE PING: ' >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo '1) Roteador Link - xxx.xxx.xxx.x' >> /root/monitor.txt");
system("ping -c 5 xxx.xxx.xxx.x >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo '2) Roteador Cisco - xxx.xxx.xxx.x' >> /root/monitor.txt");
system("ping -c 5 xxx.xxx.xxx.x >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo '3) Servidor Windows 2000 - xxx.xxx.xxx.x' >> /root/monitor.txt");
system("ping -c 5 xxx.xxx.xxx.x >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo '4) Servidor Linux - xxx.xxx.xxx.x' >> /root/monitor.txt");
system("ping -c 5 xxx.xxx.xxx.x >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo '5) Servidor Externo - xxx.xxx.xxx.x' >> /root/monitor.txt");
system("ping -c 5 xxx.xxx.xxx.x >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo '6) UOL - HOST REMOTO' >> /root/monitor.txt");
system("ping -c 5 www.uol.com.br >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo 'USUÁRIOS CONECTADOS:' >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo -n 'Total de usuários conectados: ' >> /root/monitor.txt ; radwho | wc -l >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("radwho >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo 'INFORMAÇÕES DO HD:' >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("df -h >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo 'INFORMAÇÕES DE MEMÓRIA:' >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("free >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo '20 ÚLTIMAS LINHAS DO LOG DO MAIL SERVER:' >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("tail -20 /var/log/maillog >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo '20 ÚLTIMAS LINHAS DO LOG DO RADIUS SERVER:' >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("tail -20 /var/log/radius.log >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo '20 ÚLTIMAS LINHAS DO LOG DO SISTEMA:' >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("tail -20 /var/log/messages >> /root/monitor.txt");
system("echo >> /root/monitor.txt");
system("echo '============================================================' >> /root/monitor.txt");
system("echo 'TESTES REALIZADOS COM SUCESSO....' >> /root/monitor.txt");
system("echo '============================================================' >> /root/monitor.txt");
$ncon==0;
open (arq, "/root/monitor.txt");
@body= < arq >;
close (arq);
foreach $item (@body) {
$ncon=$ncon+1;
}
$ncon=$ncon-1;
if ($ncon > 5) {
open(MAIL,"|/usr/sbin/sendmail -t");
print MAIL "To: seuemail\@seudominio.com.br\n";
print MAIL "cc: seuemail\@seudominio.com.br\n";
print MAIL "From: root\@seudominio.com.br\n";
print MAIL "Subject: Monitoramento dos Sistemas\n\n";
print MAIL "-" x 75 . "\n\n";
foreach $item (@body) {
print MAIL $item;
}
print MAIL "-" x 75 . "\n\n";
close(MAIL);
}
Barra de progresso em shell script com cores roxa e verde
Script para Criar/Modificar Usuarios No Ldap + Samba
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Problemas com Driver NVIDIA (1)
Programa fora de escala na tela do pc (21)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)









