Script para Monitoramento
Publicado por Marcelo Donato de Lemos Rossato 10/07/2004
[ Hits: 26.989 ]
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); }
Claro 3g Sony Ericsson md300 script conexao REVISAO 3
Autenticação automática no Speedy Home
Backup com data no nome do arquivo
duplex_record: mixando áudio do microfone e saída de áudio de um programa via P
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
material de assembly x64 [RESOLVIDO] (2)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (18)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba