Betreiberhandbuch PICTURE Prozessplattform
Dieses Dokument befindet sich im Aufbau und ist noch nicht für die Öffentlichkeit freigegeben. Es basiert auf der Betreiberdokumentation zur PPP 2.6 und enthält gegenwärtig stellenweise noch verhaltete und daher inzwischen falsche Informationen. Bei Rückfragen bitte an MaSt wenden.
Zweck dieses Dokuments
Dieses Dokument hat die folgenden Zwecke:
- Mindestvoraussetzungen (Hardware, Software) für den Betrieb der PICTURE-Prozessplattform (PPP) nennen
- Installationsanleitung am Beispiel der Referenzumgebung "Debian Linux" geben
- Hinweise für den sicheren Betrieb (Sicherstellung der gewünschten Verfügbarkeit, Datensicherheit) geben
Empfehlungen und Anforderungen
Hardware
Für Installation und Betrieb der PPP gelten folgende Hardware-Anforderungen (lediglich Empfehlung für zwei Szenarien angeben):
- Acht-Kern-CPU, z. B. „Dual Quad Core AMD Opteron; 2.5GHz” (64-Bit-System)
- 16 GB DDR2 RAM
- RAID-5-Festplattensystem
- insgesamt 300 GB Festplattenspeicher (mit Möglichkeit zum nachträglichem Ausbau)
- zusätzliche Sicherheitskomponenten
- redundante Netzteile
- redundante Netzwerkkarten
- Unterbrechungsfreie Stromversorgung
- ggf. Ersatzsystem (Stand-by-System bei Hardwareausfall)
- Anbindung an eine Backup-Lösung (z. B. Bandmaschine)
Die konkreten Anforderungen bzgl. CPU und RAM richten sich nach der Anzahl der gleichzeitig eingeloggten Nutzer, die benötigte Festplattenkapazität hängt ab von der Anzahl der modellierten Prozesse.
Software
Unterstützte Plattformen
Die Prozessplattform in der vorliegenden Version 2.6 (nachfolgend PPP) kann unter den folgenden Betriebssystem-Plattformen verwendet werden:
- Linux, 64 Bit (Debian Linux 6.0) [JS1]
- Microsoft Windows (Referenzumgebung: MS Windows 2003 Server, 32 oder 64 Bit). [JS2]
In diesem Dokument sind die notwendigen Schritte zur Installation und zum sicheren Betrieb der PPP für die Referenzumgebung beschrieben. Weitere Plattformen, die die Anforderungen unter „Benötigte Drittsoftware“ erfüllen, können theoretisch ebenfalls zum Betrieb der PPP eingesetzt werden. Der Hersteller übernimmt jedoch keine Gewähr für die Funktionsfähigkeit der PPP auf anderen als den o. g. explizit unterstützten Plattformen und Referenzumgebungen.
Benötigte Software von Drittanbietern
Als Voraussetzung für den Betrieb der PPP muss mindestens die folgende Drittanbieter-Software auf dem System, auf welchem die PPP installiert werden soll, vorhanden sein:
- Sun Java Development Kit („JDK“; Version 1.6.x)
- Apache Tomcat-Server (6.0.x) [JS3]
Zur Speicherung seiner Nutzdaten greift die PPP auf ein relationales Datenbankmanagement-System (RDBMS) zurück. Daher muss ebenfalls ein vom Hersteller offiziell unterstützter RDBMS-Server installiert sein. Dieser kann entweder auf demselben System wie die PPP oder auf einem externen System betrieben werden. Offiziell unterstützt wird z. Zt. das folgende RDBMS-System:
- MySQL (Version 5.1.x) [JS4]
Installation benötigter Drittanbieter-Software
Voraussetzungen
Die unten stehenden Ausführungen gehen davon aus, dass die folgenden Voraussetzungen auf dem Zielsystem der PPP-Installation bereits erfüllt sind. Die nötigen Schritte hierzu werden nicht im Rahmen dieses Dokuments beschrieben, es wird lediglich auf weiterführende Informationsquellen verwiesen:
- Es ist eine Minimal-Installation von Debian Linux 6.0 für die Hardware-Plattform des Zielsystems (hier: 64 Bit/AMD64) installiert.[1],[2]
- Es sind die Pakete der Programmgruppe „Standard (Standard-System)“ installiert.[3]
- Die Netzwerkverbindung des Systems (inkl. Zugang zum Internet) ist ordnungsgemäß eingerichtet.
- Das Debian-Paketverwaltungssystem „apt“ ist so konfiguriert, dass die Pakete aus den offiziellen Paketquellen problemlos nachinstalliert werden können.[4]
- Die Person, die die Installation der PPP durchführen soll, kann sich mit einem Administrator-Benutzerkonto („root“-Rechte) in das Zielsystem einloggen (Konsole). Dies kann entweder durch einen lokalen Login erfolgen oder über einen entfernten Login, z. B. per SSH. In letzterem Fall muss zusätzlich vorab ein SSH-Server auf dem Zielsystem konfiguriert werden.[5]
- Ist dem System eine Firewall vorgeschaltet, so ist sicherzustellen, dass der externe Zugriff auf die Ports 80 sowie – falls SSL-verschlüsselte Verbindungen zur PPP möglich sein sollen – zusätzlich auf Port 443 möglich ist. Erfolgt die Wartung des Systems per SSH-Verbinndung, ist zusätzlich der entsprechende Port des SSH-Servers
Installation von Drittanbietersoftware mittels Debian-Paketverwaltung
Folgende Drittanbieter-Software wird über das Debian-Paketverwaltungswerkzeug „apt“ installiert:
- Sun JDK
- MySQL Server
Das Java Development Kit in der Implementierung von Sun ist prinzipiell aus den offiziellen Debian-Paketquellen erhältlich. Um die Installation durchführen zu können, ist vorab eine Änderung in der Datei /etc/apt/sources.list nötig. Dort müssen den einzelnen Repository-Definitionen die Branches contrib und non-free hinzugefügt werden. Im Folgenden wird der relevante Abschnitt der Datei vor und nach der Änderung gegenübergestellt:
Vorher:
deb http://ftp.de.debian.org/debian/ squeeze main deb-src http://ftp.de.debian.org/debian/ squeeze main deb http://security.debian.org/ squeeze/updates main deb-src http://security.debian.org/ squeeze/updates main # squeeze-updates, previously known as 'volatile' deb http://ftp.de.debian.org/debian/ squeeze-updates main deb-src http://ftp.de.debian.org/debian/ squeeze-updates main
deb http://ftp.de.debian.org/debian/ squeeze main non-free deb-src http://ftp.de.debian.org/debian/ squeeze main non-free deb http://security.debian.org/ squeeze/updates main non-free deb-src http://security.debian.org/ squeeze/updates main non-free # squeeze-updates, previously known as 'volatile' deb http://ftp.de.debian.org/debian/ squeeze-updates main non-free deb-src http://ftp.de.debian.org/debian/ squeeze-updates main non-free
Anschließend müssen die folgenden Debian-Pakete installiert werden:
- mysql-server
- mysql-client
- sun-java6-jdk
- authbind
- tomcat6
- tomcat6-admin
Zur Installation der o. g. Pakete sind folgende Konsolen-Befehle auszuführen:
- einmalig: apt-get update
- für jedes der o. g. Pakete: apt-get install <<paketname>>
Im Anschluss an die Installation der Pakete muss der folgende Befehl ausgeführt werden (Konsole), damit das System künftig standardmäßig die Sun-Implementierung des JDK benutzt:
update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java
Bei der Einrichtung des MySQL-Servers wird i. d. R. ein Administrator-Zugang angelegt (das Installationsprogramm sollte nach einem Passwort für diesen Zugang fragen). Diese Zugangsdaten werden im weiteren Verlauf der Installation erneut benötigt. Im Folgenden wird davon ausgegangen, dass der Benutzername root und das Passwort MySQLRootGeheim1234! verwendet wird.
Manuelle Installation von Drittanbietersoftware
MySQL-JDBC-Treiber
Im Verzeichnis /opt/tomcat/lib muss die JAR-Datei des MySQL-JDBC-Treibers abgelegt werden.
Diese ist auf der Website[JS9] [6] von dessen Hersteller erhältlich und kann z. B. mit wget heruntergeladen werden.[7]
Konfiguration benötigter Drittanbieter-Software
MySQL
Damit das Zusammenspiel von PPP und dem MySQL-Datenbankserver ordnungsgemäß funktioniert, müssen in der Datei /etc/my.cnf in der Gruppe „[mysqld]“ im Vergleich zur Standard-Installation die folgenden Einstellungen ergänzt bzw. auf die angegebenen Werte geändert werden.
Hierbei ist zu beachten, dass sich alle u. g. Einstellungen prinzipiell auf den kompletten MySQL-Server auswirken. Wird dieser nicht ausschließlich für die Speicherung der Daten der PICTURE-Prozessplattform verwendet, sind unbedingt die Auswirkungen dieser Einstellungen auf die anderen Client-Anwendungen dieses Servers zu prüfen!
Timeouts
interactive_timeout=87000 wait_timeout=87000
Die o. g. Timeouts bestimmen, nach wie vielen Sekunden (inaktive) Datenbankverbindungen vom MySQL-Server getrennt werden (d. h. im konkreten Fall nach etwas mehr als einem Tag). Um ein ordnungsgemäßes Funktionieren der PICTURE-Prozessplattform zu gewährleisten, muss die PPP bei Verwendung der o. g. Werte einmal pro Tag neu gestartet werden.
Anzahl Verbindungen
max_user_connections=30
Dieser Wert ist abhängig von der erwarteten Anzahl gleichzeitiger Nutzer der PPP. Je angemeldetem Nutzer sollte i. d. R. eine Verbindung einkalkuliert werden.
Tabellennamen
lower_case_table_names=1
Wenn Datenbankschemata verwendet werden sollen, die auf Windows-Systemen bearbeitet wurden (z. B. initiale Erstellung, Wartung o. ä.), ist diese Einstellung zu verwenden. Dadurch werden Probleme aufgrund der unterschiedlichen Case-Sensitivität[8] von Dateinamen zwischen den Dateisystemen beider Plattformen vermieden.
Paketgröße
max_allowed_packet = 16M
Dieser Wert bestimmt die maximale Größe von Kommunikationspaketen für den Datenaustausch zwischen DB-Client und DB-Server. Wird der MySQL-Server auch als Datenbank-Backend des Moduls "Content Broker" verwendet, so muss hier ein angemessener Wert gesetzt werden, sodass es nicht zu Fehlern kommt, wenn große Prozessmodelle in der Datenbank der Content Brokers persistiert werden sollen. Die MySQL-Vorgabeeinstellung beträgt 1 MB, empfehlenswert ist z.B. 16MB.
Zur Aktivierung der geänderten Einstellungen muss der MySQL-Server mit den folgenden Konsolen-Befehlen abschließend neu gestartet werden:
/etc/init.d/mysql stop /etc/init.d/mysql start
Tomcat
Init-Script erstellen
Um den Tomcat-Server komfortabel starten und stoppen zu können, muss zunächst ein sogenanntes Init-Script erstellt werden. Hierzu wird die Datei /etc/init.d/tomcat angelegt. Eine Vorlage für diese Datei befindet sich im Anhang. Nach dem Speichern der Vorlage im Verzeichnis /etc/init.d unter dem o. g. Namen tomcat muss die Datei noch ausführbar gemacht werden. Dies geschieht folgendem Befehl:
chmod 755 /etc/init.d/tomcat
Damit der Tomcat-Server automatisch beim Systemstart hochgefahren wird, muss im Verzeichnis /etc/rc2.d unter dem Namen S99tomcat ein symbolischer Link auf das Init-Script angelegt werden.
Nach dem Abarbeiten dieser Schritte kann der Tomcat-Server in der Linux-Konsole mit den folgenden Befehlen gestartet bzw. beendet werden:
/etc/init.d/tomcat start /etc/init.d/tomcat stop
Nach dem Ausführen des o .g. Stop-Kommandos können evtl. noch einige Sekunden vergehen, bis der Server vollständig heruntergefahren ist, da z. B. auf die Abarbeitung laufender Anfragen an den Server gewartet wird. Soll der Tomcat-Server sofort beendet werden und soll nicht auf ein geordnetes Herunterfahren gewartet werden (z. B. nach einem Absturz), kann der folgende Befehl benutzt werden:
/etc/init.d/tomcat force-stop
JVM-Optionen setzen
Um ein ordnungsgemäßes Funktionieren der PICTURE-Prozessplattform sicherzustellen, müssen einige Optionen der Instanz der Java Virtual Machine (JVM) angepasst werden, welche vom Tomcat-Server benutzt wird. Hierzu muss die folgende Zeile im Start-Script des Tomcat-Servers (Datei /opt/tomcat/bin/catalina.sh) eingetragen werden. Eine ggf. bereits vorhandene Definition der Variablen JAVA_OPTS ist entsprechend zu ersetzen bzw. zu ergänzen (Eingabe erfolgt in einer Zeile):
JAVA_OPTS="-XX:MaxPermSize=256m -Xmx2048m -Duser.timezone=CET -Duser.country=DE -Dppp.config_directory=/opt/tomcat/conf -Djxl.nogc=true"
Im Einzelnen sind folgende Einstellungen für den Betrieb der PPP relevant:
Einstellung | Bedeutung | Beispielwert |
---|---|---|
-Xmx | -Xmx8g | |
-XX:MaxPermSize | -XX:MaxPermSize=3072m | |
-XX:ReservedCodeCacheSize | -XX:ReservedCodeCacheSize=128m | |
-Dppp.config_directory | -Dppp.config_directory=/srv/tomcat/tomcat1/conf | |
-Duser.timezone | -Duser.timezone=CET | |
-Duser.counry | -Duser.counry=DE | |
-Djxl.nogc | -Djxl.nogc=true | |
-Djavax.net.ssl.trustStore | -Djavax.net.ssl.trustStore=/srv/tomcat/picture-truststore.jks | |
-Djavax.net.ssl.trustStorePassword | -Djavax.net.ssl.trustStorePassword=StrengGeheim1234! |
Die hier verwendeten Werte für den Speicher sind Erfahrungswerte, die nach der derzeitigen Spezifikation genügen dürften; ggf. sind bei größeren Nutzerzahlen angepasste Werte zu verwenden.
Konfigurationsdateien anpassen
Die Tomcat-Konfigurationsdatei /opt/tomcat/conf/server.xml muss im Rahmen der Installation der PICTURE-Prozessplattform angepasst werden. Es ist sicherzustellen, dass die folgenden Einträge ergänzt bzw. die evtl. vorhandenden Einstellungen entsprechend angepasst werden:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="35000" redirectPort="8443" /> <Host name="domain.de" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Alias>www.domain.de</Alias> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/opt/tomcat/logs" prefix="tomcat_access_" suffix=".log" pattern="common" resolveHosts="false" /> </Host>
[JS11]
Als Hostname bzw. Alias sind die Domain-Namen anzugeben, unter denen die PPP erreichbar sein soll; gegebenenfalls ist als Hostname lediglich "localhost" einzutragen. Die anzugebenden Verzeichnisnamen für appBase und AccessLogValve sind prinzipiell frei wählbar. Es muss lediglich sichergestellt werden, dass diese Verzeichnisse existieren, wenn der Tomcat-Server in Betrieb genommen wird. In das appBase-Verzeichnis erfolgt später das Deployment der PPP-Webanwendung.
Wird der Tomcat-Manager verwendet, so ist in der Datei /opt/tomcat/conf/tomcat-users.xml eine entsprechende Rolle und ein Passwort angelegt werden:
<tomcat-users> <role rolename="manager" /> <fole rolename="admin" /> <user username="BENUTZERNAME" password="PASSWORT" roles="admin,manager" /> </tomcat-users>
Um die durchgeführten Konfigurationsänderungen zu aktivieren muss der Tomcat-Server wie oben beschrieben neu gestartet werden.
Installation der PPP-Webanwendung
Zum Anlegen der Datenbank wird der MySQL-Kommandozeilen-Client verwendet. Der Login erfolgt mit den Daten des MySQL-Administrator-Benutzerkontos (wurde bei der Installation des MySQL-Servers festgelegt).
- Befehl auf der Linux-Konsole:[11] mysql -u root –p
- Befehl im MySQL-Kommandozeilen-Client: create database ppp;[12]
Für die PPP-Datenbank sollte im MySQL-Server aus Sicherheitsgründen ein eigenes Benutzerkonto verwendet werden, welches nur Zugriff auf die PPP-Datenbank hat. Dieses kann im MySQL-Kommandozeilen-Client mit dem folgenden Befehl erzeugt werden. Die Benutzerrechte werden dabei gleich passend gesetzt:
GRANT ALL PRIVILEGES ON ppp.* TO 'ppp'@'localhost' IDENTIFIED BY 'GeheimesPasswort';
Hierdurch wird der MySQL-Benutzer ppp mit dem Passwort GeheimesPasswort angelegt. Dieser kann sich nur von dem System, auf dem auch der MySQL-Server betrieben wird, mit dem MySQL-Server verbinden.[13]
Nachdem das (leere) Datenbankschema und das MySQL-Benutzerkonto angelegt sind, kann nun die Vorlage für das Datenbankschema in Form einer SQL-Datei eingespielt werden:
mysql -u ppp -p ppp < ppp.sql
Bei der Passwort-Abfrage muss das Passwort des erstellten MySQL-Benutzers eingegeben werden.
Konfigurationsdatei anpassen
Bevor die PPP-Webanwendung installiert werden kann, müssen ihre Konfigurationsdateien (config.properties, log4j.xml) und ihre Lizenzdateien (license.properties), edition.properties auf das Zielsystem kopiert werden. Zusätzlich kann eine Datei email_footer.txt angelegt werden, die den E-Mail-Footer für den gesamten Mailverkehr der PICTURE-Prozessplattform repräsentiert.[JS14]
Diese Dateien müssen in einem Unterverzeichnis desjenigen Verzeichnisses gespeichert werden, welches in den JVM-Optionen per Parameter ppp.config_directory angegeben wurde. Der Name des Unterverzeichnisses ergibt sich aus dem Namen der WAR-Datei der PPP-Webanwendung ohne die Endung .war. Bei der Referenzinstallation hat die Einstellung ppp.config_directory den Wert /opt/tomcat/conf, die WAR-Datei heißt prozessplattform.war. Die Konfigurationsdatei muss daher im Verzeichnis /opt/tomcat/conf/prozessplattform abgelegt werden. Die Vorlagen für die Lizenzdatei (license.properties) sowie die Editionsdatei (edition.properties) dürfen nicht verändert werden und sind in das Konfigurationsverzeichnis zu kopieren. In der Vorlage für die Konfigurationsdatei „config.properties“ müssen hingegen Anpassungen vorgenommen werden. In der folgenden Tabelle sind die Konfigurationsoptionen und ihre Bedeutung dokumentiert.
Einstellung | Bedeutung | Beispielwert |
db.driver |
| com.mysql.jdbc.Driver |
db.sqlDialectClass |
| org.hibernate.dialect.MySQL5InnoDBDialect |
db.connectionUrl |
| |
db.username |
| ppp |
db.password |
| GeheimesPasswort |
db.debug |
| disabled |
installation.uploadDirectory |
| /PICTURE/tomcat-uploads/ppp |
installation.reportDefinitionDirectory |
| /PICTURE/tomcat-reports/ppp |
installation.officialUrl |
| |
email.sendMails |
| true |
email.debugMode.active |
| false |
email.senderDisplayName |
| [PPP 2.8] |
email.senderAddress |
| |
email.username |
| ppp-mailer |
email.password |
| pAssWoRt-1337 |
email.host |
| |
email.port |
| 25 |
email.debugMode.defaultRecipient |
| |
email.passwordChangedAdminNotification |
| Ja |
Bei der Datei log4.xml handelt es sich um eine Standard-Konfigurationsdatei (in XML-Notation) für das Logging-Framework „Log4j“, in welcher die von der PPP verwendeten Logger-Ziele definiert sind. Hier können ggf. die Pfade zur Speicherung der einzelnen Log-Dateien angepasst werden. Die mit der PPP ausgelieferte Version enthält jedoch sinnvolle Vorgaben, sodass dieser Schritt i.d.R. nicht nötig sein sollte.
Besondere Anpassung der Konfigurationsdateien bei Verwendung eines Reverse-Proxy-Servers
Erfolgt der Zugriff der Clients (Browser) nicht direkt auf den Tomcat-Server, auf welchem das Prozessplattform betrieben wird, sondern ist ein Reverse-Proxy-Server zwischengeschaltet, so sind einige Anpassungen an den o.g. Konfigurationsdateien nötig, um einen fehlerfreien Betrieb zu gewährleisten. Insbesondere müssen die folgenden Einstellungen vorgenommen werden:
Tomcat-Startscript /opt/tomcat/bin/catalina.sh:
Hat der Tomcat-Server keinen direkten Internetzugang, muss ein Proxy-Server konfiguriert werden, über den externe Aufrufe geleitet werden können. Hierzu sind im Tomcat-Startscript in der Zeile mit der Anweisung zum Setzen der Umgebungsvariable JAVA_OPTS folgende Parameter zusätzlich zu setzen (die u. g. Beispiel-Werte sind geeignet zu ersetzen):-Dhttp.proxyHost=proxy.mydomain.com -Dhttp.proxyPort=8080
Konfigurationsdatei /opt/tomcat/conf/Catalina/localhost/prozessplattform.xml (evtl. muss die Datei angelegt werden):
Die (extern erreichbare) URL zum Aufruf der Hinweis-Seite bei clientseitig deaktiviertem JavaScript muss in dieser Datei ergänzt werden. Hierzu muss innerhalb des XML-Tags „context“ folgender Eintrag ergänzt werden (Hostname in der URL ggf. geeignet anpassen):<Parameter name="com.icesoft.faces.javascriptBlockedRedirectURI" value="https://web1.extranet.xyz.de/prozessplattform/nojavascript.html" override="false" />
Die (extern erreichbare) URL, welche zum erneuten Verbinden mit dem Webserver im Anschluss an eine automatisch auf Grund von Inaktivität getrennte Session aufgerufen wird, muss ebenfalls in dieser Datei ergänzt werden. Hierzu muss innerhalb des XML-Tags „context“ folgender Eintrag ergänzt werden (Hostname in der URL ggf. geeignet anpassen):<Parameter name="com.icesoft.faces.sessionExpiredRedirectURI" value="https://web1.extranet.xyz.de/prozessplattform" override="false" /
Webanwendung deployen
Nun kann abschließend das Deployment der PPP-Webanwendung erfolgen. Hierzu wird die Datei prozessplattform.war bei laufendem Tomcat-Server in das webapp-Verzeichnis des Tomcat-Servers kopiert. Bei der Referenzinstallation handelt es sich um das Verzeichnis /opt/tomcat/webapps. Wenige Sekunden nach dem Kopieren der Datei in das o. g. Verzeichnis führt der Tomcat-Server das Deployment automatisch aus. Nach dem Abschluss des Deployments (dies dauert i. d. R. ca. 10 – 30 Sekunden) steht die PPP zum externen Zugriff bereit. Ist das Zielsystem beispielsweise unter dem Hostnamen domain.de erreichbar, so kann die PPP in einem Webbrowser durch Aufruf der URL http://domain.de/prozessplattform geöffnet werden.
Betrieb
Allgemeine Betriebs- und Wartungshinweise
- Aus technischen Gründen ist es derzeit erforderlich, dass der Tomcat-Server, auf dem die PPP betrieben wird, einmal pro Tag neu gestartet wird. Hierzu kann ein Cron-Job eingerichtet werden, der das Init-Script des Tomcat-Servers mit den entsprechenden Parametern aufruft.
#!/bin/bash # # Skript zum Neustarten des Tomcat-Servers (wird im Normalfall einmal pro Nacht durchgeführt) # # Date: 17.09.2009 # Author: Johannes Schwall <schwall@picture-gmbh.de> # # make sure everything is setup correctly export PATH=$PATH:/PICTURE:/opt/tomcat/bin export LC_ALL=de_DE.UTF-8 # Variablen CTRLSCRIPTS=/etc/init.d # main echo 'Tomcat wird neu gestartet.' ${CTRLSCRIPTS}/tomcat force-stop sleep 3 ${CTRLSCRIPTS}/tomcat start
Einen Cronjob können Sie anlegen, indem Sie folgende Zeile der Datei /etc/crontab hinzufügen:
# m h dom mon dow user command 34 0 * * * root /pfad_zum_skript/server-restart.sh
- Werden zu Wartungszwecken die Inhalte der PPP-Datenbank direkt auf Datenbank-Ebene geändert (d. h. nicht über die GUI oder offiziell vom Hersteller zertifizierte Wartungsprogramme für Stapelverarbeitungsaufgaben; beim Einspielen eines Datenbank-Backups handelt es sich z. B. um einen solchen Fall), muss anschließend zwingend der Tomcat-Server, der die PPP-Webanwendung bereitstellt, neu gestartet werden.
Einspielen von Aktualisierungen
TODO - zu berücksichtigen: DB-Update-Skripte, neue Berichte, Aktualisierung der WAR-Datei
Sicherheitskopien
Backup
Um einen sicheren Betrieb der PICTURE-Prozessplattform zu gewährleisten, ist die regelmäßige Anfertigung von Sicherheitskopien zwingend erforderlich! Bei der Erstellung solcher Kopien ist im Hinblick auf die PPP zwischen den folgenden Kategorien von Daten zu unterscheiden:
- Betriebssystemumgebung und benötigte Drittanbieter-Software inkl. deren Konfigurationseinstellungen: Diese Daten ändern sich sehr selten (i. d. R. nur bei Sicherheits- oder Systemupdates). Dies ist bei der Häufigkeit der Sicherungen zu berücksichtigen. Bei der Anfertigung von Sicherungskopien für diese Daten sind keine PPP-spezifischen Anforderungen zu beachten. Daher wird in diesem Dokument nicht näher auf die Sicherung dieser Daten eingegangen und die Durchführung regelmäßiger Sicherungsmaßnahmen als gegeben vorausgesetzt.
- PPP-Webanwendung (WAR-Datei und Konfigurationsdateien): Die WAR-Datei sowie die Lizenzdatei ändern sich nur im Rahmen von Updates der PICTURE-Prozessplattform. Es sollte jeweils die aktuell lauffähige Variante gesichert werden, gesonderten Sicherungsmaßnahmen sind nicht nötig. Die Konfigurationsdatei kann sich im Rahmen von Wartungsarbeiten ändern. Nach Durchführung dieser Arbeiten ist es daher empfehlenswert, eine Kopie auf einem externen Datenträger anzufertigen.
- Nutzdaten der PPP: Hierbei handelt es sich um die in der Datenbank abgelegten Inhalte der PPP. Diese unterliegen im Betrieb einer ständigen Änderung und müssen daher entsprechend häufig auf externe Datenträger gesichert werden (i. d. R. mindestens einmal täglich). Zur Anfertigung eines Datenbank-Backups kann der folgende Befehl auf der Linux-Konsole eingegeben werden, mit welchem ein SQL-Dump der angegebenen Datenbank in der Datei /var/backup/db.sql abgelegt wird:
mysqldump --skip-comments --single-transaction --opt --host=localhost --port=3306 --user=Benutzername --password=Passwort NameDerDatenbank > /var/backup/db.sql
Die markierten Angaben sind an die lokalen Gegebenheiten anzupassen. Diese Datei sollte dann anschließend auf einen externen Datenträger kopiert werden. Es ist zu empfehlen, die Anfertigung des SQL-Dumps sowie den Kopiervorgang auf einen externen Datenträger (z. B. Netzwerk-Dateifreigabe, die z. B. regelmäßig per Bandmaschine gesichert und archiviert wird) durch einen Cron-Job zu automatisieren. - Dateiuploads, die während der Nutzung der PPP getätigt werden, stellen einen Teil der in der Anwendung erfassten Inhalte dar. Diese werden jedoch nicht in der Datenbank gespeichert, sondern in einem in der Konfigurationsdatei angegebenen Verzeichnis abgelegt und sind somit ebenfalls zu sichern.[JS18]
- Falls gewünscht, können ebenfalls die vom Server und der Web-Anwendung geschriebenen Log-Dateien bei einem Backup berücksichtigt werden.
Restore
Zur Wiederherstellung des o. g. SQL-Dumps muss – bei abgeschaltetem Tomcat-Server – der folgende Befehl auf der Konsole ausgeführt werden:
mysql -u Benutzername -p NameDerDatenbank < PfadZurBackupdatei
Die markierten Angaben sind an die lokalen Gegebenheiten anzupassen.
Log-Dateien
In der Referenz-Konfiguration legt die PPP-Webanwendung im Verzeichnis /opt/tomcat/logs/prozessplattform Protokoll-Dateien ab, in denen zentrale Systemereignisse und Systemfehler mitgeschrieben werden. Insbesondere relevant sind hier die Dateien info.log (reguläre Systemereignisse) und warn.log (Systemfehler, bei der Analyse von Fehlern von zentraler Bedeutung).
Überwachung des Systems
Zur Sicherstellung der Verfügbarkeits-Anforderungen an die PPP sollte die Verfügbarkeit der Webanwendung sowie der benötigten Drittsoftware mittels geeigneter Werkzeuge kontinuierlich überprüft werden. Somit können im Falle eines Ausfalls einer Komponente oder des gesamten Systems die verantwortlichen Personen zeitnah informiert werden und Maßnahmen zur Wiederherstellung der Verfügbarkeit ergriffen werden.
Der Hersteller empfiehlt die Verwendung des Monitoring-Systems „Hyperic HQ Community“. [JS19] In diesem oder vergleichbaren Werkzeugen ist insbesondere die Überwachung der folgenden Dienste zu konfigurieren:
- Tomcat-Server
- MySQL-Server
Skripte
Tomcat-Start, -Stop und -Neustart für Stand-Alone-Betrieb
# Title: Tomcat Autostart # # Usage: Skript startet und beendet den Tomcat-Server # Date: 29.04.2010 # Author1: Johannes Schwall, schwall@picture-gmbh.de # Author2: Malte Stockmann, stockmann@picture-gmbh.de TOMCAT_WORKER_LABEL=standalone JAVA_HOME=/usr JAVA_OPTS="-Xmx384m -Duser.timezone=CET -Duser.counry=DE -Dppp.config_directory=/srv/tomcat/tomcat-$TOMCAT_WORKER_LABEL/conf -Dppp.tomcat_label=$TOMCAT_WORKER_LABEL"[JS21] CATALINA_HOME=/opt/tomcat CATALINA_BASE=/opt/tomcat export JAVA_HOME CATALINA_HOME CATALINA_BASE case $1 in start) export JAVA_OPTS sh /opt/tomcat/bin/startup.sh ;; stop) sh /opt/tomcat/bin/shutdown.sh ;; force-stop) ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | grep "ppp.tomcat_label=$TOMCAT_WORKER_LABEL" | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/tomcat_process_count.txt read line < /tmp/tomcat_process_count.txt if [ $line -gt 0 ]; then kill -9 `ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | grep "ppp.tomcat_label=$TOMCAT_WORKER_LABEL" | awk '{printf $1}'` echo "Tomcat server process terminated." else echo "Tomcat was not running." fi rm /tmp/tomcat_process_count.txt ;; status) ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | grep "ppp.tomcat_label=$TOMCAT_WORKER_LABEL" | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/tomcat_process_count.txt read line < /tmp/tomcat_process_count.txt if [ $line -gt 0 ]; then echo -n "tomcatd ( pid " ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | grep "ppp.tomcat_label=$TOMCAT_WORKER_LABEL" | awk '{printf $1 " "}' echo -n ") is running ..." echo else echo "Tomcat is NOT running." fi rm /tmp/tomcat_process_count.txt ;; esac exit 0
[7] wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.10.tar.gz/from/ftp://ftp.fu-berlin.de/unix/databases/mysql/
[8] Linux-Systeme unterscheiden zwischen groß- und kleingeschriebenen Wörtern, während auf Windows-Systemen „TABELLE“, „Tabelle“ und „tabelle“ ein und dasselbe Objekt sind.
[9] Hier wird der oben angelegte Link verwendet; es kann auch das Verzeichnis direkt benutzt werden, allerdings muss dann diese Datei bei jedem Update des Tomcat aktualisiert werden.
[10] Beide Dateien sind i. d. R. vom Aussteller des SSL-Zertifikats erhältlich.
[11] In der Referenzinstallation wird davon ausgegangen, dass der MySQL-Server auf demselben System betrieben wird wie die PPP-Webanwendung. Daher müssen beim Login in den MySQL-Kommandozeilen-Client keine Angaben zur Host-Adresse und zum Port des MySQL-Servers gemacht werden; es wird automatisch eine Verbindung zum MySQL-Server auf „localhost“ unter Verwendung des Standard-Ports 3306 aufgebaut.
[12] Der Name der Datenbank wird in der Datei config.properties der jeweiligen PPP-Installation eingetragen.
[13] Hierbei wird wiederum davon ausgegangen, dass die PPP-Webanwendung und der MySQL-Server auf demselben System betrieben werden.
[JS1]Referenzumgebung
[JS2]möglich, ohne Gewähr
[JS3]prüfen
[JS4]prüfen
[JS5]geht auch ohne den – nur noch auf die Möglichkeit hinweisen; Basis ohne http-Server, zus. Kapitel mit „was tun wenn ich den will“
[THFA6]rausnehmen hier und in den Anhang als optionale Komponente, hier lediglich Verweis, dass es optional ist
[JS8]Versionsnummern/Dateinamen prüfen
[JS9]URLs in Fußnoten prüfen
[JS10]prüfen/erweitern/anpassen
[JS11]anpassen für Stand-alone-Tomcat
[JS12]abhängig von Nutzung des http (ggf. als Anhang?)
[JS13]Optionen prüfen (nicht alle Rechte benötigt!?) -- restriktiver
[JS18]Verzeichnis angeben (Verweis auf config.properties)
[JS19]umformulieren – nur: welche Dienste überwacht werden sollen
[JS21]Optionen prüfen; Konsistenz zu Daten oben