Haciendo ping a una máquina Linux para verificar si está en línea

0

Estoy usando ping para verificar si una máquina Linux está en línea y lista para ser utilizada. Sin embargo, ping realmente no le dice si el sistema está haciendo algo útil, solo que el subsistema de red del kernel está activo y configurado. ¿Hay alguna forma de saber que la máquina está completamente lista para realizar tareas?

EDITAR:

Lo siento, no estaba claro. Las tareas que necesito las máquinas para realizar son variadas. Algunos simplemente ejecutan pruebas muy pequeñas. Otros hablan a bases de datos. Y probablemente habrá nuevas tareas que las máquinas de la red deberán realizar en el futuro. ¿Hay un solo comando que me dice que todos los servicios centrales (predeterminados) se están ejecutando?

rainman_s
fuente
2
Realizar que tareas? Puede hacer un escaneo de puertos para tener una idea de qué servicios orientados a la red se están ejecutando en la máquina.
us2012
Lo único que sabe con el ping es que la red reenvía los paquetes ICMP a la dirección de destino, y el enpoint procesa el paquete. Período.
YvesLeBorg
Para cualquier aspecto de mod: selección de bandera pobre, mis disculpas por eso. En segundo lugar, la pregunta parece demasiado amplia, o tal vez poco clara: esencialmente parece una recomendación de producto, pero la pregunta en sí es bastante amplia.
Thor

Respuestas:

1

Creo que tu propia pregunta es una respuesta de alguna manera. Is there any way to tell that the machine is completely ready to perform tasks?

Que tareas Digamos que desea que realice tareas utilizando servicios web y de base de datos y DNS. Puede escribir un script que verifique si todos esos servicios se están ejecutando y el servidor no está sobrecargado. Aparte de eso, a menos que esas tareas no estén definidas, no hay una manera útil de saber si el servidor está listo para realizar (cuáles) tareas.

A veces sucede que uno de nuestros servidores funciona perfectamente bien, pero el servicio DKIM se detiene, luego PostFix no puede enviar correo electrónico, puede pasar desapercibido fácilmente si no comprobáramos el servicio DKIM. Así que realmente tiene que definir y luego verificar los servicios especificados para estar seguro.

Hanky Panky
fuente
1

Recomiendo configurar software de monitoreo y alerta como Nagios http://www.nagios.org/ o Zenoss .

Ambos tienen complementos para todos los servicios (tareas) que planea ofrecer en su servidor y configurarán el ritmo y las cosas analíticas para alertarlo cuando las cosas vayan mal.

Al igual que otros han publicado, ping solo verifica la conectividad entre la computadora de ping y el host. Nagios, después de la configuración inicial, puede monitorear la conectividad, verificar si Oracle está activo, verificar que su servidor web y los servidores de aplicaciones estén funcionando, uso de memoria / CPU, y cualquier otra cosa que pueda imaginar ...

edición: estoy bastante seguro de que no hay un solo comando que pueda obtener todo lo que está pidiendo fuera de la caja, ¡pero avíseme si hay uno! :) Hasta entonces, tendrás un poco de trabajo ~

Espero que esto ayude, -Minh


fuente
0

Esa es una pregunta compleja ... Supongo que la mejor manera de comprobar cómo va todo es conectarse a la máquina Linux mediante ssh y ejecutar comandos desde allí para verificar todos los servicios. De todos modos, tenga en cuenta que no puede hacer esto si la máquina a la que intenta conectarse no tiene un demonio ssh en ejecución (o tiene el puerto 22 bloqueado, por ejemplo).

Que yo sepa, no hay otra forma de comprobarlo.


fuente
Por qué no? Escriba un programa web que pueda verificar esos servicios e informar. Y en caso de que el programa no se cargue, eso significa que incluso el servidor web está inactivo.
Por "ninguna otra forma de comprobarlo" quiero decir que tiene que revisar todos los servicios. Ya sea un script de shell o una interfaz web, debe codificarlo manualmente ya que no hay una solución integrada, AFAIK.
0

Además de hacer ping a un host, probablemente podría verificar si un puerto específico está abierto sin ningún conocimiento previo y sin acceso a la máquina. Para una máquina que ejecute un servicio web que usted controle, recomendaría crear una página específica con la información que le interesa (por ejemplo, carga de mem, procesos, ...) en el formato que elija (xml, json, .. .) y obtener y evaluar esto de forma regular.

Alternativamente, eso es algo que usé en el pasado, escriba un demonio específico para su servidor que recopile información que sea útil para usted (como antes, carga de memoria, procesos, ...) y transmítala a su sitio de supervisión con regularidad. Pero tendrá que asegurarse de detectar y manejar el caso en el que ya no llegan las actualizaciones.

Dirigiendo su edición - No creo que haya un solo comando para verificar los servicios predeterminados de forma remota, ya que los servicios predeterminados varían dependiendo de su tarea. El enfoque más básico, si solo quiere ver lo que está haciendo una máquina sería utilizar algún tipo de

ps -ef

o

top

en la línea de comandos para ver los procesos activos (asumiendo una máquina Linux).

Incluso podría envolver esto en una declaración php exec y transferirlo a una máquina cliente cuando la máquina está ejecutando un servidor web.

Morphine
fuente
0

Podría instalar un servidor web simple (al menos debe poder enviar archivos html) para verificar si se envía un contenido de archivo html específico con curl. ( curl http://adress escribirá el contenido de la respuesta del servidor web a stdout).

FSMaxB
fuente