Архив метки: Apache Tomcat

Nagios: мониторинг Tomcat

3 июля 2015
 

 Плагин написан на Python. Имеет возможность отслеживать статус, использование памяти, количество потоков и .т.д. Предполагается, что Nagios установлен согласно посту Nagios: установка на CentOS 7 + NGINX. Загружаем файл плагина: # cd /tmp # wget https://github.com/dduenasd/check_tomcat.py/archive/v2.0.tar.gz # tar xfp v2.0.tar.gz # cd check_tomcat.py-2.0

CentOS: установка Tomcat 7 из репозитория с помощью yum

24 июня 2015
 

 Установить Tomcat 7 можно из репозитория JPackage 6. Устанавливаем сам репозиторий: # yum localinstall http://mirrors.dotsrc.org/jpackage/6.0/generic/free/RPMS/jpackage-release-6-3.jpp6.noarch.rpm Обновляем установленные приложения: # yum update

Tomcat: включить JMX-коннектор

19 июня 2015
 

 Задача – добавить JMX, что бы девелоперы могли мониторить состояние сервера с помощью VisualVM. Tomcat установлен из пакетов, с помощью yum. Создаём файл /usr/share/tomcat7/bin/setenv.sh. В него вписываем параметры JMX: #!/usr/bin/env bash export JAVA_OPTS=”-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=54.***.***.65″

Python: скрипт LogParcer

11 сентября 2014
 

 Задача скрипта – выполнять постоянную проверку лога приложения и, в случае обнаружения сообщений об ошибке подключения к базе данных, останавливать Tomcat. Т.к. после трёх неудачных попыток подключения аккаунт на Oracle-сервере блокируется – необходимо было жестко останавливать приложение до того, как аккаунт будет заблокирован. Для PROD-сервера – конечно, “убивать” приложение нельзя, поэтому – там скрипт только… Читать далее »

Tomcat: Tomcat did not stop in time. PID file was not removed.

3 сентября 2014
 

 Когда приложение в Tomcat-а становится достаточно большим, при выключении сервера можно увидеть такое сообщение: $ ./bin/shutdown.sh Using CATALINA_BASE: /home/user/APP/app-server Using CATALINA_HOME: /home/user/APP/app-server Using CATALINA_TMPDIR: /home/user/APP/app-server/temp Using JRE_HOME: /home/user/APP/Java/jdk1.6.0_45/jre Using CLASSPATH: /home/user/APP/app-server/bin/bootstrap.jar:/home/user/APP/app-server/bin/tomcat-juli.jar Using CATALINA_PID: /home/lms/APP/app-server/conf/catalina.pid Tomcat did not stop in time. PID file was not removed. To aid diagnostics a thread dump has been written to… Читать далее »

BASH: консольный график использования памяти Java-машиной

10 июля 2014
 

 Задача – сделать консольную утилиту, которая выводила бы информацию аналогично visualvm – Used heap + писать в лог. Для получения данных от Java-машины – используем jmap. Предполагается, что мониторить мы будем Tomcat с заданной переменной CATALINA_PID.

Tomcat: log4j – Cannot set web app root system property when WAR file is not expanded

18 июня 2014
 

 При запуске Tomcat с установленным параметром unpackWARs=”false” – приложение падает с ошибкой: Jun 17, 2014 5:47:12 PM org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener java.lang.IllegalStateException: Cannot set web app root system property when WAR file is not expanded Как видно из ошибки – проблема вызвана Log4jConfigListener.

Tomcat: autoDeploy=”true” – деплой приложения без перезапуска сервера

5 июня 2014
 

 У Tomcat имеется удобная возможность для обновления приложения без остановки самого сервера. Включается она опцией autoDeploy=”true” в описании элемента <Host> файла server.xml . Рассмотрим его работу на примере. Имеется приложение: $ curl http://localhost:8084 First file

Tomcat: подключение внешнего файла в конфигурацию server.xml

3 июня 2014
 

 Задача – иметь возможность подключить дополнительную конфигурацию в файл server.xml сервера Tomcat. Так как сам файл конфигурации server.xml является простым XML-файлом, то и выполнять это мы будем с помощью XML entity includes. В начале файла добавляем строки: <!DOCTYPE server [ <!ENTITY jdbcrealm SYSTEM “jdbcrealm.xml”> ]>

Tomcat: опции catalina.sh

2 июня 2014
 

 Сервер Apache Tomcat можно запускать/останавливать не только с помощью скриптов bin/startup.sh и bin/shutdown.sh – но и напрямую вызывая скрипт catalina.sh, передавая ему нужный аргумент. Если рассмотреть скрипт bin/startup.sh – то всё, что он делает – это вызывает сам catalina.sh передавая ему команду start и полученные аргументы: …PRGDIR=`dirname “$PRG”` EXECUTABLE=catalina.sh … exec “$PRGDIR”/”$EXECUTABLE” start “$@”