SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Tanuki Service Wrapper 101

JVM Verwaltung mit der Community Edition



           Alexander Pacnik
         Karlsruhe, 05.04.2013
Agenda
... worum es in diesem Vortrag geht.




         Integration      Konfiguration   Betrieb   Überwachung




                                                                  2
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
Einleitung
... die Bestandteile des Java Service Wrapper




Wesentliche 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
Einleitung
... Base vs. Home?




Unterscheidung zwischen Base und Home
‣  Base Verzeichnis   Konfiguration und Daten
‣  Home Verzeichnis   Applikation




                                                5
Integrationsarten
... wie kann der Java Service Wrapper verwendet werden?




              Integration             Konfiguration           Betrieb   Überwachung




http://wrapper.tanukisoftware.com/doc/german/integrate.html                           6
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
Integrationsarten
... wrapperJarApp am Beispiel Winstone & Jenkins

Funktionsweise
‣  Start der ausführbaren JAR Applikation
‣  Stop der Applikation über System.exit() in der JVM


Verzeichnisstruktur




                                                        8
Integrationsarten
... wrapperJarApp am Beispiel Winstone & Jenkins

Konfiguration (wrapper.conf)
‣  wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperJarApp
‣  wrapper.java.classpath.1=lib/wrapper/wrapper.jar
‣  wrapper.app.parameter.<n> – Kommandozeilenparameter


Beispiel




                                                                     9
Integrationsarten
... wrapperSimpleApp am Beispiel JBoss AS & Jenkins

Funktionsweise (empfohlen wenn möglich)
‣  Start der Applikation über deren Start-Klasse mit dem Wrapper
‣  Stop der Applikation über System.exit() in der JVM


Verzeichnisstruktur




                                                                   10
Integrationsarten
... wrapperSimpleApp am Beispiel JBoss AS & Jenkins

Konfiguration (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
Integrationsarten
... wrapperStartStopApp am Beispiel Apache Tomcat & Jenkins

Funktionsweise
‣  Start der Applikation über deren Start-Klasse mit dem Wrapper
‣  Stop der Applikation über deren Stop-Klasse mit dem Wrapper


Verzeichnisstruktur




                                                                   12
Integrationsarten
... wrapperStartStopApp am Beispiel Apache Tomcat & Jenkins

Konfiguration (wrapper.conf)
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp
wrapper.java.classpath.1=lib/wrapper/wrapper.jar
wrapper.java.classpath.2=/usr/local/apache-tomcat/6.0.35/bin/bootstrap.jar


Beispiel




                                                                             13
Konfiguration
... wichtige Konfigurationsmöglichkeiten.




              Integration             Konfiguration            Betrieb   Überwachung




http://wrapper.tanukisoftware.com/doc/german/properties.html                           14
Konfiguration
... General Properties




Properties
‣  # 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
Konfiguration
... JAVA Properties




Properties
‣  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
Konfiguration
... Logging Properties




Properties
‣  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
Konfiguration
... Ping Properties




Ping
‣  wrapper.ping.interval=5                          alle 5s wird die JVM auf Reaktion prüfen
‣  wrapper.ping.timeout=30                          nach 30s ohne Reaktion Restart auslösen


Bemerkung
‣  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
Betrieb
... wie der Java Service Wrapper verwendet wird.




             Integration              Konfiguration        Betrieb   Überwachung




http://wrapper.tanukisoftware.com/doc/german/launch.html                           19
Betrieb
... Möglichkeiten des Control Skripts




Optionen
‣  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
Betrieb
... Konfigurationen innerhalb des Control-Skripts




Konfiguration
‣  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
Agenda
... JMX und JVM.




             Integration              Konfiguration     Betrieb   Überwachung




http://wrapper.tanukisoftware.com/doc/german/jmx.html                           22
Überwachung
... Möglichkeiten der Community Edition




JMX
‣  stop, restart und thread dump können über JMX angesteuert werden


Sinnvolle 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
Überwachung
... am Beispiel jmxquery




jmxquery
‣  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
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
Anhang
Anhang



Lizenz 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.zip


Quellen
‣    http://wrapper.tanukisoftware.com




                                                                                                    27

Mais conteúdo relacionado

Mais procurados

DAOG SIG: HA Architekturen mit MySQL
DAOG SIG: HA Architekturen mit MySQLDAOG SIG: HA Architekturen mit MySQL
DAOG SIG: HA Architekturen mit MySQLFromDual GmbH
 
OSMC 2015: OMD 5 Jahre Best Practice mit Matthias Gallinger
OSMC 2015: OMD 5 Jahre Best Practice mit Matthias GallingerOSMC 2015: OMD 5 Jahre Best Practice mit Matthias Gallinger
OSMC 2015: OMD 5 Jahre Best Practice mit Matthias GallingerNETWAYS
 
DOAG 2010: MySQL Architekturen für Oracle DBA's
DOAG 2010: MySQL Architekturen für Oracle DBA'sDOAG 2010: MySQL Architekturen für Oracle DBA's
DOAG 2010: MySQL Architekturen für Oracle DBA'sFromDual GmbH
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtOPITZ CONSULTING Deutschland
 
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo LatschnerNagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo LatschnerNETWAYS
 
Internet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQLInternet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQLFromDual GmbH
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenLenz Grimmer
 
MySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterMySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterFromDual GmbH
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Thorsten Kamann
 

Mais procurados (15)

DAOG SIG: HA Architekturen mit MySQL
DAOG SIG: HA Architekturen mit MySQLDAOG SIG: HA Architekturen mit MySQL
DAOG SIG: HA Architekturen mit MySQL
 
OSMC 2015: OMD 5 Jahre Best Practice mit Matthias Gallinger
OSMC 2015: OMD 5 Jahre Best Practice mit Matthias GallingerOSMC 2015: OMD 5 Jahre Best Practice mit Matthias Gallinger
OSMC 2015: OMD 5 Jahre Best Practice mit Matthias Gallinger
 
DOAG 2010: MySQL Architekturen für Oracle DBA's
DOAG 2010: MySQL Architekturen für Oracle DBA'sDOAG 2010: MySQL Architekturen für Oracle DBA's
DOAG 2010: MySQL Architekturen für Oracle DBA's
 
Automatisierungmit NANT
Automatisierungmit NANTAutomatisierungmit NANT
Automatisierungmit NANT
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
 
Einführung Maven
Einführung MavenEinführung Maven
Einführung Maven
 
coshsh
coshshcoshsh
coshsh
 
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo LatschnerNagios Conference 2007 | Vmware Monitoring by Ingo Latschner
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
 
Internet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQLInternet Briefing 2011: NoSQL with MySQL
Internet Briefing 2011: NoSQL with MySQL
 
Einsteiger Workshop
Einsteiger WorkshopEinsteiger Workshop
Einsteiger Workshop
 
MySQL Hochverfügbarkeitslösungen
MySQL HochverfügbarkeitslösungenMySQL Hochverfügbarkeitslösungen
MySQL Hochverfügbarkeitslösungen
 
MySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterMySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und Cluster
 
check_sap_health
check_sap_healthcheck_sap_health
check_sap_health
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 
JRuby
JRubyJRuby
JRuby
 

Semelhante a Tanuki service wrapper_101

OSMC 2015 | OMD - 5 Jahre Best Practice by Matthias Gallinger
OSMC 2015 | OMD - 5 Jahre Best Practice by Matthias GallingerOSMC 2015 | OMD - 5 Jahre Best Practice by Matthias Gallinger
OSMC 2015 | OMD - 5 Jahre Best Practice by Matthias GallingerNETWAYS
 
Serverprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen InfrastrukturServerprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen Infrastrukturinovex GmbH
 
High performance mit PHP
High performance mit PHPHigh performance mit PHP
High performance mit PHPThomas Burgard
 
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Ralf Sigmund
 
Brownbag: Java Applikationen und die JVM für „Ops“
Brownbag: Java Applikationen und die JVM für „Ops“Brownbag: Java Applikationen und die JVM für „Ops“
Brownbag: Java Applikationen und die JVM für „Ops“inovex GmbH
 
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwaltenInfrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalteninovex GmbH
 
Java Flight Recorder Javamagazin May 2017
Java Flight Recorder Javamagazin May 2017Java Flight Recorder Javamagazin May 2017
Java Flight Recorder Javamagazin May 2017Wolfgang Weigend
 
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwaltenDevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwaltenDevDay Dresden
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungTilo Baller
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenICS User Group
 
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsbccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsICS User Group
 
Tipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsTipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsKlaus Bild
 
Anleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für OpencmsAnleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für OpencmsStefan Hilpp
 
Managen von ovm server sparc mit dem vm manager, o ps center oder vdcf-roman ...
Managen von ovm server sparc mit dem vm manager, o ps center oder vdcf-roman ...Managen von ovm server sparc mit dem vm manager, o ps center oder vdcf-roman ...
Managen von ovm server sparc mit dem vm manager, o ps center oder vdcf-roman ...Trivadis
 
Managen von OVM Server SPARC mit dem VM Manager OpsCenter oder VDCF-Roman Gäc...
Managen von OVM Server SPARC mit dem VM Manager OpsCenter oder VDCF-Roman Gäc...Managen von OVM Server SPARC mit dem VM Manager OpsCenter oder VDCF-Roman Gäc...
Managen von OVM Server SPARC mit dem VM Manager OpsCenter oder VDCF-Roman Gäc...Désirée Pfister
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSPChristian Guenther
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...inovex GmbH
 

Semelhante a Tanuki service wrapper_101 (20)

OSMC 2015 | OMD - 5 Jahre Best Practice by Matthias Gallinger
OSMC 2015 | OMD - 5 Jahre Best Practice by Matthias GallingerOSMC 2015 | OMD - 5 Jahre Best Practice by Matthias Gallinger
OSMC 2015 | OMD - 5 Jahre Best Practice by Matthias Gallinger
 
Serverprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen InfrastrukturServerprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen Infrastruktur
 
High performance mit PHP
High performance mit PHPHigh performance mit PHP
High performance mit PHP
 
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
 
Brownbag: Java Applikationen und die JVM für „Ops“
Brownbag: Java Applikationen und die JVM für „Ops“Brownbag: Java Applikationen und die JVM für „Ops“
Brownbag: Java Applikationen und die JVM für „Ops“
 
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwaltenInfrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
 
Java Flight Recorder Javamagazin May 2017
Java Flight Recorder Javamagazin May 2017Java Flight Recorder Javamagazin May 2017
Java Flight Recorder Javamagazin May 2017
 
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwaltenDevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & Verwendung
 
Best Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in ContainernBest Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in Containern
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
 
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsbccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
 
Tipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsTipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections Admins
 
Anleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für OpencmsAnleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für Opencms
 
Managen von ovm server sparc mit dem vm manager, o ps center oder vdcf-roman ...
Managen von ovm server sparc mit dem vm manager, o ps center oder vdcf-roman ...Managen von ovm server sparc mit dem vm manager, o ps center oder vdcf-roman ...
Managen von ovm server sparc mit dem vm manager, o ps center oder vdcf-roman ...
 
Managen von OVM Server SPARC mit dem VM Manager OpsCenter oder VDCF-Roman Gäc...
Managen von OVM Server SPARC mit dem VM Manager OpsCenter oder VDCF-Roman Gäc...Managen von OVM Server SPARC mit dem VM Manager OpsCenter oder VDCF-Roman Gäc...
Managen von OVM Server SPARC mit dem VM Manager OpsCenter oder VDCF-Roman Gäc...
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
 

Mais de inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegeninovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolutioninovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policiesinovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learninginovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeteninovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetesinovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systemsinovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreiheninovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenteninovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Projectinovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretabilityinovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessinovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
 

Mais de inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Tanuki service wrapper_101

  • 1. Tanuki Service Wrapper 101 JVM Verwaltung mit der Community Edition Alexander Pacnik Karlsruhe, 05.04.2013
  • 2. Agenda ... worum es in diesem Vortrag geht. Integration Konfiguration Betrieb Überwachung 2
  • 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. Einleitung ... die Bestandteile des Java Service Wrapper Wesentliche 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. Einleitung ... Base vs. Home? Unterscheidung zwischen Base und Home ‣  Base Verzeichnis Konfiguration und Daten ‣  Home Verzeichnis Applikation 5
  • 6. Integrationsarten ... wie kann der Java Service Wrapper verwendet werden? Integration Konfiguration Betrieb Überwachung http://wrapper.tanukisoftware.com/doc/german/integrate.html 6
  • 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. Integrationsarten ... wrapperJarApp am Beispiel Winstone & Jenkins Funktionsweise ‣  Start der ausführbaren JAR Applikation ‣  Stop der Applikation über System.exit() in der JVM Verzeichnisstruktur 8
  • 9. Integrationsarten ... wrapperJarApp am Beispiel Winstone & Jenkins Konfiguration (wrapper.conf) ‣  wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperJarApp ‣  wrapper.java.classpath.1=lib/wrapper/wrapper.jar ‣  wrapper.app.parameter.<n> – Kommandozeilenparameter Beispiel 9
  • 10. Integrationsarten ... wrapperSimpleApp am Beispiel JBoss AS & Jenkins Funktionsweise (empfohlen wenn möglich) ‣  Start der Applikation über deren Start-Klasse mit dem Wrapper ‣  Stop der Applikation über System.exit() in der JVM Verzeichnisstruktur 10
  • 11. Integrationsarten ... wrapperSimpleApp am Beispiel JBoss AS & Jenkins Konfiguration (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. Integrationsarten ... wrapperStartStopApp am Beispiel Apache Tomcat & Jenkins Funktionsweise ‣  Start der Applikation über deren Start-Klasse mit dem Wrapper ‣  Stop der Applikation über deren Stop-Klasse mit dem Wrapper Verzeichnisstruktur 12
  • 13. Integrationsarten ... wrapperStartStopApp am Beispiel Apache Tomcat & Jenkins Konfiguration (wrapper.conf) wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp wrapper.java.classpath.1=lib/wrapper/wrapper.jar wrapper.java.classpath.2=/usr/local/apache-tomcat/6.0.35/bin/bootstrap.jar Beispiel 13
  • 14. Konfiguration ... wichtige Konfigurationsmöglichkeiten. Integration Konfiguration Betrieb Überwachung http://wrapper.tanukisoftware.com/doc/german/properties.html 14
  • 15. Konfiguration ... General Properties Properties ‣  # 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. Konfiguration ... JAVA Properties Properties ‣  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. Konfiguration ... Logging Properties Properties ‣  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. Konfiguration ... Ping Properties Ping ‣  wrapper.ping.interval=5 alle 5s wird die JVM auf Reaktion prüfen ‣  wrapper.ping.timeout=30 nach 30s ohne Reaktion Restart auslösen Bemerkung ‣  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. Betrieb ... wie der Java Service Wrapper verwendet wird. Integration Konfiguration Betrieb Überwachung http://wrapper.tanukisoftware.com/doc/german/launch.html 19
  • 20. Betrieb ... Möglichkeiten des Control Skripts Optionen ‣  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. Betrieb ... Konfigurationen innerhalb des Control-Skripts Konfiguration ‣  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. Agenda ... JMX und JVM. Integration Konfiguration Betrieb Überwachung http://wrapper.tanukisoftware.com/doc/german/jmx.html 22
  • 23. Überwachung ... Möglichkeiten der Community Edition JMX ‣  stop, restart und thread dump können über JMX angesteuert werden Sinnvolle 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. Überwachung ... am Beispiel jmxquery jmxquery ‣  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. 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
  • 27. Anhang Lizenz 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.zip Quellen ‣  http://wrapper.tanukisoftware.com 27