Monitoreo simple del servidor web (vivo)

8

¿Algún consejo sobre el software para monitorear si un servidor web está funcionando en Linux? Debería poder ejecutarse sin saber nada más que la URL. Y debe tener funcionalidad para enviar una alerta por correo electrónico cuando el sitio deja de funcionar. No debería ser difícil escribir un guión para esto, pero parece inútil si ya hay algo bueno por ahí.

Tenga en cuenta que voy a monitorear los servidores internos, por lo que esta debe ser una herramienta que se ejecute en mi máquina en la misma red, no servicios externos basados ​​en la web.

Y tenga en cuenta que se prefieren soluciones pequeñas y simples.

Actualización : Eventualmente creé un pequeño script de Python que actualmente estoy usando para esto, se puede encontrar aquí .

Zitrax
fuente
Consulte también: serverfault.com/questions/44/… : este tema se ha cubierto ampliamente en un alto nivel.
Warner

Respuestas:

12

Puedes usar wget en un script como este

wget --timeout=3 --tries=1 --spider --no-check-certificate http://serverfault.com

if [ $? -ne 0 ];then
  echo "Site Down" | mail -s "Site Down" [email protected]
fi

Y recibirá un correo electrónico si wget no puede acceder al sitio por primera vez en tres segundos.

Configure un trabajo cron para ejecutar el script cada pocos minutos.

Hay muchas otras alternativas, pero esta es probablemente la más sencilla de configurar desde cero.

Richard Holloway
fuente
77
siempre y cuando no lo ejecute en el servidor que está monitoreando, no tiene idea de la frecuencia con que lo he visto hacer ;-)
Geraint Jones
Gracias. Además, descubrí que --spider también es una opción útil, ya que evita guardar la página en el disco.
Zitrax
2
Y sin instalar 'postfix' el comando de correo simplemente no puede enviar en silencio.
Zitrax
3
@Zitrax: Y sin instalar wget, obtendrá un error. Sin la red activa, el wget fallará. Sin el script ejecutable, el trabajo cron fallará y así sucesivamente. Además, no tengo instalado 'postfix' y funciona bien para mí porque estoy usando exim.
Richard Holloway
1
¿Por qué el --no-check-certificate? Ser advertido sobre la implementación de TLS rota también es información valiosa.
Avamander
7

Tienes muchas opciones, te daré dos.

  • Nagios es una aplicación de monitoreo completa capaz de monitorear mucho más que http, pero también maneja eso. También puede crear todo tipo de repots ("Dime el porcentaje de tiempo de actividad de nuestro servidor / servicio X esta semana / mes / año ...")

  • Monit es otra opción popular. Tal vez no esté tan lleno de funciones como Nagios, pero sin embargo es agradable.

Janne Pikkarainen
fuente
Estaba buscando algo pequeño y simple, por lo que Monit parece estar más cerca de eso.
Zitrax
1

Bueno, si quieres correr algo tú mismo.

Estas son algunas opciones:

O si desea una solución administrada:

Personalmente, creo que Zabbix y Zenoss son excesivos si simplemente desea monitorear el estado de un servidor web. Pero si también planea monitorear cualquier otra cosa, tienen más funciones de las que necesitará;)

Wolph
fuente
Supongo que pingdom y las tendencias alcistas no pueden monitorear los sitios en mi red interna.
Zitrax
@Zitrax: no, no pueden. Leí esa parte.
Wolph
1

He votado a favor de la respuesta de Richard y Janne, pero si desea más detalles sobre lo que su servidor web está enviando y recibiendo, los primeros capítulos del libro de O'Reilly "Web Client Programming with Perl" de Clinton Wong ofrecen una excelente visión general del protocolo HTTP. Si desea un monitoreo más detallado que solo arriba / abajo y desea incluir códigos de respuesta, etc., es un buen lugar para comenzar.

El libro es viejo, pero sigue siendo válido. Publicado en 1997, O'Reilly ha publicado el contenido del libro en línea de forma gratuita en http://oreilly.com/openbook/webclient/ como parte de su iniciativa OpenBook.

gWaldo
fuente
0

Votaría la respuesta de Janne si tuviera representante.

Nota importante sobre Nagios, el hecho de que esté completamente desarrollado no significa que sea una instalación dura y larga, es bastante simple y amigable.

En segundo lugar, debe verificar lo que su proveedor de hardware tiene para ofrecer. Por ejemplo, estoy usando HP Proliants y tienen muy buenas rpm que ayudan.

bangolio
fuente
0

Si te gusta lo que hace Nagios, pero no quieres profundizar en lo interno, también puedes consultar Opsview . Es Nagios y un par de otras herramientas, pero se entrega a través de una buena GUI. Es un buen punto de partida.

SystemParadox
fuente
0

Estoy de acuerdo en que Nagios es un gran software, pero si desea un programa gratuito, le sugiero que eche un vistazo a AppPerfect Agentless Monitor . La supervisión del servidor Linux con AppPerfect es extremadamente ligera y agrega una sobrecarga insignificante al sistema de destino durante la supervisión. Puede monitorear todas las estadísticas importantes relacionadas con la CPU, el disco, la red y la memoria con esta herramienta. La configuración es muy simple y el software es muy fácil de usar. Una documentación clara y un tutorial también están disponibles aquí para la supervisión del servidor Linux

Steve Young
fuente
0

Una solución que he estado usando es el cónsul de HashiCorp .

Ciertamente es más que un simple script con salida de correo electrónico, pero configurar el tipo de monitoreo del que estás hablando sigue siendo muy fácil (unas pocas líneas de YAML o JSON).

Lo más probable es que cree una plantilla, pero la supervisión de un solo servidor podría hacerse de la siguiente manera:

{
  "service": {
    "name": "web", 
    "tags": ["production"], 
    "port": 80,
    "check": {
      "id": "front-end",
      "name": "HTTP front-end for web service",
      "http": "http://web.domain.tld",
      "interval": "10s",
      "timeout": "1s"
    }
  }
}

Una razón para sugerirlo es que le permite ir más allá de monitorear 'solo' el front-end web si lo desea, y también le permite agrupar cheques por servicio (por ejemplo, su report_serverservicio podría tener un cheque para el front-web). final, uno para el back-end web y otro para el DB primario, todo lo cual proporcionaría alertas vinculadas a este servicio).

iwaseatenbyagrue
fuente