Sistema de monitor simple (solo ping)

Cuáles son las opciones para un sistema de monitoreo simple:

  • Sistema Operativo a instalar en: Linux
  • Solo necesita hacer ping al dispositivo.
  • Envíe alertas si los dispositivos no responden al ping.
  • Fácil de agregar dispositivos, como agregar la dirección IP en un archivo de texto con una descripción.
  • Alertas que se enviarán por correo electrónico cuando los hosts no respondan.
  • Estará monitoreando 25-75 dispositivos.
  • No necesita ninguna interfaz web ni nada más que ping, pero si lo tiene, no es un problema.
  • Un script programado con Cron estaría bien. Pero lo mejor sería algo con un poco de inteligencia, como notificar cuando el host vuelve a funcionar después de una caída.
  • Libre.

Nota : un script estaría bien.

Respuestas (1)

Solía ​​​​usar el siguiente script, hace todo lo que pediste. Solo necesita agregar una entrada de cronjob para que se ejecute regularmente:

#!/bin/bash
# Simple SHELL script for Linux and UNIX system monitoring with
# ping command
# -------------------------------------------------------------------------
# Copyright (c) 2006 nixCraft project <http://www.cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
# Setup email ID below
# See URL for more info:
# http://www.cyberciti.biz/tips/simple-linux-and-unix-system-monitoring-with-ping-command-and-scripts.html
# -------------------------------------------------------------------------

# add ip / hostname separated by while space
HOSTS='cat server_list.txt'

# no ping request
COUNT=1

# email report when
SUBJECT="Ping failed"
EMAILID="test@domain.com"
for myHost in $HOSTS
do
  count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
  if [ $count -eq 0 ]; then
    # 100% failed
    echo "Host : $myHost is down (ping failed) at $(date)" | mail -s "$SUBJECT" $EMAILID
  fi
done
¡Iba a escribir uno, pero parece que me ganaste! +1