uso tutorial programación mvc mediante libro framework español desarrollo book aplicaciones tomcat

tutorial - ¿Tomcat está corriendo?



spring mvc 4 tutorial español (16)

Interesado en saber cómo la gente suele verificar si Tomcat se está ejecutando en un entorno Unix.

Yo compruebo que el proceso se está ejecutando usando

ps -ef | grep java ps -ef | grep logging

o compruebo que el número de puerto esté activo

netstat -a | grep 8080

¿Hay alguna forma mejor de verificar que Tomcat se esté ejecutando? Lo anterior parece ser una manera "hacky" de comprobar que Tomcat se está ejecutando.


¿Estás tratando de configurar un sistema de alerta? Para un simple "latido", haga una solicitud HTTP al puerto Tomcat.

Para una supervisión más elaborada, puede configurar JMX y / o SNMP para ver las estadísticas de JVM. Ejecutamos Nagios con el complemento SNMP (puentes a JMX) para verificar el uso de la memoria Tomcat y solicitar el tamaño del grupo de subprocesos cada 10-15 minutos.

http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html

Actualización (2012):

Hemos actualizado nuestros sistemas para usar "monit" para verificar el proceso de tomcat. Me gusta mucho. Con muy poca configuración, verifica automáticamente si el servicio se está ejecutando y se reinicia automáticamente si no es así. (enviando una alerta por correo electrónico). Se puede integrar con las secuencias de comandos /etc/init.d o verificar por nombre de proceso.


¿Por qué grep ps , cuando el pid ha sido escrito en el archivo $CATALINA_PID ?

Tengo una secuencia de comandos cron checker que envía un correo electrónico cuando tomcat está inactivo:

kill -0 `cat $CATALINA_PID` > /dev/null 2>&1 if [ $? -gt 0 ] then echo "Check tomcat" | mailx -s "Tomcat not running" [email protected] fi

Supongo que también podrías usar wget para verificar el estado de tu tomcat. Si tiene una página de diagnóstico con la carga del usuario, etc., podría buscarla periódicamente y analizarla para determinar si algo anda mal.


Aquí están mis dos centavos.

Tengo varias instancias de tomcat ejecutándose en diferentes puertos para la configuración de mi clúster. Uso el siguiente comando para verificar cada proceso que se ejecuta en diferentes puertos.

/sbin/fuser 8080/tcp

Reemplace el número de puerto según su necesidad.

Y para matar el proceso use -k en el comando anterior.

  • Esto es mucho más rápido que el modo ps -ef o cualquier otro comando donde se llame a un comando y se llame a otro grep en la parte superior.
  • Funciona bien con múltiples instalaciones de tomcat, o cualquier otro servidor que utiliza un puerto corriendo en el mismo servidor.

El comando equivalente en los sistemas operativos BSD es fstat


Básicamente quieres probar

  1. Conectividad a su instancia de tomcat
  2. Reúne algunas estadísticas básicas
  3. Si el proceso de Unix se está ejecutando

Evaluaré las 2 primeras opciones, ya que la tercera ya ha recibido suficiente respuesta.

Lo más fácil es simplemente desarrollar una página web en su WebApp que reúna algunas métricas básicas y tenga un cliente que pueda leer los resultados o detectar problemas de conectividad.

Para hacerlo, tienes varios problemas


Cree un script de Shell que compruebe si tomcat está activo o inactivo y configure un cron para sh para que lo compruebe cada pocos minutos, y arranque automáticamente tomcat si está inactivo. Fragmento de muestra de código a continuación

TOMCAT_PID=$(ps -ef | awk ''/[t]omcat/{print $2}'') echo TOMCAT PROCESSID $TOMCAT_PID if [ -z "$TOMCAT_PID" ] then echo "TOMCAT NOT RUNNING" sudo /opt/tomcat/bin/startup.sh else echo "TOMCAT RUNNING" fi


Dado que mis instancias de tomcat se nombran como tomcat_. Por ejemplo. tomcat_8086, yo uso

#

ps aux | grep tomcat

Otro método es usar la utilidad nc

nc -l 8086 (número de puerto)

O

ps aux | grep java


Descubrí que Tomcat es bastante quisquilloso, ya que un proceso en ejecución o un puerto abierto no necesariamente significa que realmente esté manejando solicitudes. Normalmente trato de tomar una página conocida y comparar su contenido con un valor precalculado esperado.


En mi sistema Linux, inicio Tomcat con el script startup.sh. Para saber si se está ejecutando o no, yo uso

ps -ef | grep tomcat

Si el resultado de salida contiene toda la ruta a mi carpeta tomcat, entonces se está ejecutando


Prueba este comando

ps -ef | awk ''/[t]omcat/{print $2}''

Devolverá el pid si tomcat se está ejecutando.


Puede verificar el estado de tomcat de las siguientes maneras:

ps -ef | grep tomcat

Esto devolverá la ruta de Tomcat si el tomcat se está ejecutando

netstat -a | grep 8080

donde 8080 es el puerto Tomcat


Si tomcat se instala localmente, escriba la siguiente url en una ventana del navegador: {localhost: 8080}

Esto mostrará la página de inicio de Tomcat con el siguiente mensaje.

Si está viendo esto, ha instalado con éxito Tomcat. ¡Felicitaciones!

Si tomcat está instalado en un servidor separado, puede escribir replace localhost por un nombre de host válido o Iess donde está instalado tomcat.

Lo anterior se aplica a una instalación estándar en la que tomcat usa el puerto predeterminado 8080


Siempre hago

tail -f logs/catalina.out

Cuando veo allí

INFO: Server startup in 77037 ms

entonces sé que el servidor está listo.


intente esto en su lugar y porque necesita privilegios de root use sudo

sudo service tomcat7 status


netstat -lnp | grep 8080 netstat -lnp | grep 8080 sería probablemente la mejor manera, si conoce el puerto de escucha de Tomcat. Si quiere estar seguro de que es funcional, deberá establecer una conexión y enviar una solicitud HTTP para obtener una respuesta. Puede hacerlo programáticamente o usando cualquier navegador web.


wget url o curl url donde url es una url del servidor tomcat que debería estar disponible, por ejemplo: wget http://localhost:8080 . Luego, compruebe el código de salida, si es 0 - Tomcat está activo.


$ sudo netstat -lpn |grep :8080

Para verificar el número de puerto

$ ps -aef|grep tomcat

Es cualquier tomcat se está ejecutando en el servidor.

tsssinfotech-K53U infotech # ps -aef|grep tomcat

raíz 9586 9567 0 11:35 pts / 6 00:00:00 grep --colour = auto tomcat