Monitorador de hosts [RESOLVIDO]

1. Monitorador de hosts [RESOLVIDO]

rodrigo
rodrigoviniciusm

(usa Debian)

Enviado em 05/04/2016 - 01:05h

Olá galera do VOL, estou com dificuldades em criar um script que consiga ler alguns ips, fazer a checagem da situação atual e anterior e realizar a ação, se ficou UP manda e-mail se ficou down manda e-mail.
Consegui fazer com apenas 1 host, eu poderia criar vários arquivos para essa monitoração, mas ficará complicado para outra pessoa dar continuidade.
Alguém pode me dar uma dica?

#!/bin/bash -x
# Variaveis:
HOSTS=10.1.1.194
COUNT=4
ONLINE=0

while true
do

#Inicio do codigo:
for myHost in $HOSTS
do

count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')

if [ $count -ne 0 ] && [ $ONLINE -ne 1 ]; then
# echo "Teste: $myHost esta online" >> /usr/local/bin/log.txt
echo "Alarme $myHost esta ligado" | mail -s "Alarme Teste" meue-mail@gmail.com
ONLINE=1
fi


if [ $count -eq 0 ] && [ $ONLINE -ne 0 ]; then
echo "Teste: $myHost esta desligado" >> /usr/local/bin/log.txt
ONLINE=0
fi


sleep 10
done

done



  


2. Re: Monitorador de hosts

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/04/2016 - 02:32h

rodrigoviniciusm escreveu:
Olá galera do VOL, estou com dificuldades em criar um script que consiga ler alguns ips, fazer a checagem da situação atual e anterior e realizar a ação, se ficou UP manda e-mail se ficou down manda e-mail.
Consegui fazer com apenas 1 host, eu poderia criar vários arquivos para essa monitoração, mas ficará complicado para outra pessoa dar continuidade.
Alguém pode me dar uma dica?
#!/bin/bash -x
# Variaveis:
HOSTS=10.1.1.194
COUNT=4
ONLINE=0
while true;do

#Inicio do codigo:
for myHost in $HOSTS
do

count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')

if [ $count -ne 0 ] && [ $ONLINE -ne 1 ]; then
# echo "Teste: $myHost esta online" >> /usr/local/bin/log.txt
echo "Alarme $myHost esta ligado" | mail -s "Alarme Teste" meue-mail@gmail.com
ONLINE=1
fi

if [ $count -eq 0 ] && [ $ONLINE -ne 0 ]; then
echo "Teste: $myHost esta desligado" >> /usr/local/bin/log.txt
ONLINE=0
fi
sleep 10
done
done

Bom dia!!!
Segue uma dica para efetuar o PING sequencialmente . . .
Crie um arquivo de texto com os IP'S que quer testar, um em cada linha, depois faça:
while read IP;do
count=$(ping -c4 $IP | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
CONTINUE SEU SCRIPT
.
.
done < listagem_ip.txt

Ou
HOST="192.168.0."
#Ajuste o "255", limitador do x, para a sua necessidade.
for ((x=1;x<255;x++));do
ping -c4 "$HOST""$x"
CONTINUE SEU SCRIPT
.
.
done

Simplificando o seu SCRIPT

#!bin/bash
#######################
## marcelo oliver ##
## Abril/2016-Rev:00 ##
#######################

#AJUSTE HOSTS PARA A SUA REDE.
HOSTS="192.168.0"

#AJUSTE "NN" PARA A SEQUENCIA DE IP's
NN="32"
#AJUSTE O "x=1" PARA O IP INICIAL.
#SE NÃO FOR NA SEQUENCIA, troque a linha "for ((x=1;x<=NN;x++));do" por
#for x in 194 197 199 200;do

for ((x=1;x<=NN;x++));do
if ping -c1 "$HOSTS"."$x" > /dev/null;then
echo "Alarme "$HOSTS"."$X" esta ONLINE" | mail -s "Alarme Teste" meue-mail@gmail.com
else
echo "Teste: "$HOSTS"."$X" esta OFFLINE" >> log.txt
fi
done



É isso...
----------------------------------------------------------------------------------------
Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como a MELHOR, dessa forma, ganho uns pontinhos,
o que incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
----------------------------------------------------------------------------------------
Abç.:
Marcelo






3. Re: Monitorador de hosts [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 05/04/2016 - 13:36h

Opa, tudo certo?!

Uma vez eu bolei algo parecido, se quiser usar como base para escrever o seu....

https://www.vivaolinux.com.br/artigo/Monitorar-servidores-e-enviar-alertas-por-e-mail-e-SMS/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts