Tanuki service wrapper_101

1,024 views
922 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,024
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tanuki service wrapper_101

  1. 1. Tanuki Service Wrapper 101JVM Verwaltung mit der Community Edition Alexander Pacnik Karlsruhe, 05.04.2013
  2. 2. Agenda... worum es in diesem Vortrag geht. Integration Konfiguration Betrieb Überwachung 2
  3. 3. Einleitung... was kann der Java Service Wrapper?Funktionen der Community Edition‣  Verwaltung als Dienst‣  Verwaltung der JVM (Start, Stop, Thread Dump)‣  Überwachung der JVM (Logging, JVM freeze / crash Detection)‣  Zentrale Konfiguration der JVM, Container und Applikationen‣  Plattformunabhänige Verwaltung (Linux, Windows, OSX, ...) 3
  4. 4. Einleitung... die Bestandteile des Java Service WrapperWesentliche Bestandteile‣  bin/wrapper (System Applikation)‣  lib/libwrapper.so (Library)‣  lib/wrapper.jar (Java Applikation)‣  src/bin/sh.script.in (Vorlage für control)‣  src/conf/wrapper.conf.in (Vorlage für wrapper.conf) 4
  5. 5. Einleitung... Base vs. Home?Unterscheidung zwischen Base und Home‣  Base Verzeichnis Konfiguration und Daten‣  Home Verzeichnis Applikation 5
  6. 6. Integrationsarten... wie kann der Java Service Wrapper verwendet werden? Integration Konfiguration Betrieb Überwachunghttp://wrapper.tanukisoftware.com/doc/german/integrate.html 6
  7. 7. Integrationsarten... wie kann der Java Service Wrapper verwendet werden?Integrationsarten‣  wrapperJarApp (beispielsweise Winstone)‣  wrapperSimpleApp (beispielsweise JBoss AS)‣  wrapperStartStopApp (beispielsweise Apache Tomcat)‣  WrapperListener (Integration in die Software) 7
  8. 8. Integrationsarten... wrapperJarApp am Beispiel Winstone & JenkinsFunktionsweise‣  Start der ausführbaren JAR Applikation‣  Stop der Applikation über System.exit() in der JVMVerzeichnisstruktur 8
  9. 9. Integrationsarten... wrapperJarApp am Beispiel Winstone & JenkinsKonfiguration (wrapper.conf)‣  wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperJarApp‣  wrapper.java.classpath.1=lib/wrapper/wrapper.jar‣  wrapper.app.parameter.<n> – KommandozeilenparameterBeispiel 9
  10. 10. Integrationsarten... wrapperSimpleApp am Beispiel JBoss AS & JenkinsFunktionsweise (empfohlen wenn möglich)‣  Start der Applikation über deren Start-Klasse mit dem Wrapper‣  Stop der Applikation über System.exit() in der JVMVerzeichnisstruktur 10
  11. 11. Integrationsarten... wrapperSimpleApp am Beispiel JBoss AS & JenkinsKonfiguration (wrapper.conf)‣  wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp‣  wrapper.java.classpath.1=lib/wrapper/wrapper.jar‣  wrapper.java.classpath.2=/usr/local/jboss-server/5.1.0/bin/run.jar‣  wraper.app.parameter.1=<Main Class>Beispiel 11
  12. 12. Integrationsarten... wrapperStartStopApp am Beispiel Apache Tomcat & JenkinsFunktionsweise‣  Start der Applikation über deren Start-Klasse mit dem Wrapper‣  Stop der Applikation über deren Stop-Klasse mit dem WrapperVerzeichnisstruktur 12
  13. 13. Integrationsarten... wrapperStartStopApp am Beispiel Apache Tomcat & JenkinsKonfiguration (wrapper.conf)wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopAppwrapper.java.classpath.1=lib/wrapper/wrapper.jarwrapper.java.classpath.2=/usr/local/apache-tomcat/6.0.35/bin/bootstrap.jarBeispiel 13
  14. 14. Konfiguration... wichtige Konfigurationsmöglichkeiten. Integration Konfiguration Betrieb Überwachunghttp://wrapper.tanukisoftware.com/doc/german/properties.html 14
  15. 15. Konfiguration... General PropertiesProperties‣  # Lücken in der Nummerierung der Properties zulassen‣  wrapper.ignore_sequence_gaps=TRUE‣  # Nicht starten wenn die PID bereits vorhanden ist‣  wrapper.pidfile.strict=TRUE‣  # das Basisverzeichnis welches für relative Pfade verwendet wird‣  wrapper.working.dir=<path> 15
  16. 16. Konfiguration... JAVA PropertiesProperties‣  wrapper.java.command Pfad zum Java Binary‣  wrapper.java.mainclass Wrapper Startklasse z.B. WrapperJarApp‣  wrapper.java.classpath Java Class-Pfad (z.B. wrapper.jar)‣  wrapper.java.library.path Java Library-Pfad (z.B. libwrapper.so)‣  wrapper.java.additional.<n> Zusätzliche JVM Parameter‣  wrapper.java.initmemory Initiale Java Heap Größe(in MB)‣  wrapper.java.maxmemory Maximale Java Heap Größe(in MB) 16
  17. 17. Konfiguration... Logging PropertiesProperties‣  wrapper.debug=FALSE Debugging aus‣  wrapper.logfile=logs/wrapper.log Pfad zum Logfile‣  wrapper.logfile.loglevel=INFO Loglevel‣  wrapper.logfile.rollmode=SIZE Rotationskriterium‣  wrapper.logfile.maxsize=10M Größe bei der rotiert wird‣  wrapper.logfile.maxfiles=5 Anzahl der Logfiles‣  wrapper.syslog.loglevel=NONE Nach Syslog schreiben 17
  18. 18. Konfiguration... Ping PropertiesPing‣  wrapper.ping.interval=5 alle 5s wird die JVM auf Reaktion prüfen‣  wrapper.ping.timeout=30 nach 30s ohne Reaktion Restart auslösenBemerkung‣  Unter hoher Last kann es u. Umständen sinnvoll sein diese Zeiten anzupassen, da der Wrapper ggf. fälschlicherweise ein „JVM Hung“ erkennt und einen Restart der JVM auslöst. Timeout=0 deaktiviert die Detection vollständig. Dies sollte nur in Ausnahmefällen notwendig sein.http://wrapper.tanukisoftware.com/doc/german/properties.html 18
  19. 19. Betrieb... wie der Java Service Wrapper verwendet wird. Integration Konfiguration Betrieb Überwachunghttp://wrapper.tanukisoftware.com/doc/german/launch.html 19
  20. 20. Betrieb... Möglichkeiten des Control SkriptsOptionen‣  console In der aktuellen Shell starten‣  start Als Daemon starten‣  stop Daemon oder Shell Ausführung beenden‣  restart Falls der Prozess läuft stoppen und dann starten‣  condrestart Nur durchstarten wenn er schon läuft‣  status Prozess Status abfragen‣  install Als Dienst einrichten, der beim Systemstart gestartet wird‣  remove Dienst wieder deinstallieren‣  dump Java Thread Dump anlegen, falls der Dienst läuft 20
  21. 21. Betrieb... Konfigurationen innerhalb des Control-SkriptsKonfiguration‣  INSTANCE_PATH= Pfad zur Instanz‣  APP_NAME= Name für das Init Skript‣  APP_LONG_NAME= Beschreibung‣  WRAPPER_CMD=wrapper Pfad zum Wrapper Binary‣  WRAPPER_LIB=lib/wrapper Pfad zu Wrapper Library‣  WRAPPER_CONF=wrapper.conf Pfad zur Wrapper Konfiguration‣  PRIORITY= Nice-Level des Prozesses‣  PIDDDIR= Pfad zurm PID-File‣  RUN_AS_USER= Benutzer des Prozesses 21
  22. 22. Agenda... JMX und JVM. Integration Konfiguration Betrieb Überwachunghttp://wrapper.tanukisoftware.com/doc/german/jmx.html 22
  23. 23. Überwachung... Möglichkeiten der Community EditionJMX‣  stop, restart und thread dump können über JMX angesteuert werdenSinnvolle JVM Optionen‣  -showversion Schreibt die JVM Version in das wrapper.log‣  -XX:+PrintCommandLineFlags Schreibt die JVM Parameter in das wrapper.log‣  -XX:+PrintGCDetails GC Logging aktivieren‣  -XX:+PrintGCTimeStamps Log-Einträge um Zeitstempel ergänzen‣  -XX:+PrintGCDateStamps Log-Einträge um Datumsstempel ergänzen‣  -Xloggc:/path/to/jvm-gc.log Pfad zum GC Log 23
  24. 24. Überwachung... am Beispiel jmxqueryjmxquery‣  java -cp jmxquery.jar jmxquery.JMXQuery -U service:jmx:rmi:///jndi/rmi://localhost:50000/jmxrmi -O "java.lang:type=MemoryPool,name=PS Perm Gen" -A Usage -K used -I Usage -username <user> -password <password> 24
  25. 25. Vielen Dank für Ihre Aufmerksamkeit Kontakt Alexander Pacnik Systems Engineering inovex GmbH Office Karlsruhe Zur Gießerei 16 76227 Karlsruhe +49 (0)173 3181 040 alexander.pacnik@inovex.de 25
  26. 26. Anhang
  27. 27. AnhangLizenz des Vortrags‣  Creative Commons (by-nc-nd)Software‣  http://wrapper.tanukisoftware.com/download/3.5.17/wrapper-delta-pack-3.5.17.zip‣  http://mirrors.jenkins-ci.org/war/1.508/jenkins.war‣  http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.36/bin/apache-tomcat-6.0.36.zip‣  http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA.zip/download‣  http://jmxquery.googlecode.com/files/jmxquery-1.3-bin.zipQuellen‣  http://wrapper.tanukisoftware.com 27

×