1. Adm01: Tipps und
Skripts aus dem Leben
eines Connections
Admins
Christoph Stöttner, Fritz & Macziol GmbH
Klaus Bild, Belsoft AG
2. Klaus Bild
Zürcher, Heimweh Bayer,
Vater von 2 Söhnen
§ Consultant
§ Fachgebiete IBM Connections &
IBM Sametime
§ Windows, Linux...
Christoph Stöttner
Bayer, liebt Wandern,
Vater von 2 Töchtern
§ Consultant
§ Fachgebiete IBM Connections &
IBM Domino Infrastrukturen
§ Linux, Linux, Linux,
Windows, System I, AIX
Über uns
3. § Einleitung
§ Installation und Konfiguration
§ Autostart
§ Performance Tuning der
DataSources
§ Einrichten der J2EE Sicherheits
Rollen
§ Konfigurieren der JVM Log Dateien
§ Setzen der JVM Heap Size
§ Täglicher Betrieb –
Business as Usal
§ Testen der External ID gegen LDAP
§ Aktivieren und Deaktivieren von
Benutzern
§ Synchronisation der externen Ids
§ Arbeiten mit Policies
§ Verschieben von Communities
§ Reorganisieren der Datenbanken
§ Backup der Datenbanken
§ Restore der Datenbanken
Agenda
4. Über diesen Vortrag
§ IBM Connect 2014 - BP307 –
Practical Solutions for Connections Administrators - Tips and Scripts
for Your Daily Business
http://www.slideshare.net/ChristophStoettner/ibm-connect-2014-bp307
5. Einleitung
§ Administration/Konfiguration einer IBM Connections Umgebung
passiert zum Hauptteil über:
§ Integrated Solution Console:
§ Browserbasiert, Mausklick intensiv, träge, Zeitintensiv
§ wsadmin:
§ Verschiedene Befehlssätze für WAS/Connections, komplexe Befehle,
Eingabe Fehler anfällig
-> Nutzung von Skripts um Zeit zu sparen und Fehler zu
vermeiden
6. Warnung
§ Mit Skripts
§ Shell / BASH / ZSH / KSH / SH, Jython / JACL
§ Powershell / Batch / VB, SQL
§ Kann man...
§ Viel Zeit sparen!
§ Sehr viel in sehr kurzer Zeit ändern/zerstören!
§ Darum sollten Sie:
§ Vorsicht walten lassen, zweimal Überlegen!
§ Backups erstellen
§ Ein Testsystem benutzen
§ Änderungen dokumentieren Die Benutzung aller Skripts auf diesen
Folien und in den angegebenen Download
Repositories erfolgt auf eigene Gefahr und
ohne Garantie!
7. Jython
§ Gut lesbarer Code
§ Shell und Command Line Interpreter
§ Kann direkt in Shell getestet werden
§ Variablen: Typzuweisung unnötig, Integer mit “ oder ‘
§ Range: Praktisch für Schleifen, startet mit 0!
§ Listen
§ Dictionaries
§ if – elif – else
§ Achtung: Websphere 8 nutzt Python/Jython Version 2.1 (aktuell 3.3.5)
9. Autostart IBM WebSphere Application Server
§ Verschiedene Möglichkeiten gefunden und diskutiert
§ Einfachster und stabilster Weg:
§ Deployment Manager und Node Agents als Dienst
§ Application Server über Monitoring Policy
§ Starten der Application Server über Dienst, Batch oder Skript?
§ Probleme mit Cluster Failover
§ Abhängigkeiten
§ Dienst mit wasservice.sh|bat registrieren
§ Monitoring Policy auf "Stopped" für Installation und Update!
12. Monitoring Policy
§ ISC:
§ jeden Application Server öffnen (1 – 15x)
§ Server – Infrastructure – Java and Process Management – Monitoring Pol.
§ "Node restart state" auf "Running" setzen
§ wsadmin:
§ cfgMonitoringPolicy.py
13. Autostart HTTP Server
§ Windows Installer legt Dienst für IHS und Admin Service an
§ httpd.exe –k install (-c admin.conf) –n "IBM HTTP Admin"
§ Linux / AIX:
§ Symbolic Links
§ ln –s /opt/IBM/HTTPServer/bin/apachectl /etc/init.d/
§ ln –s /opt/IBM/HTTPServer/bin/adminctl /etc/init.d/
§ Dienst hinzufügen
§ chkconfig –add apachectl
§ chkconfig –add adminctl
14. Performance Tuning der DataSources
§ Performance Tuning IBM Connections
§ Erhöhen der Werte für min- und maxConnections der DataSources
§ Grundlage für Werte:
§ Performance Tuning Guide IBM Connections 4.0
§ Performance Tuning Guide Addendum for 4.5
§ Diese Einstellungen sollten regelmässig mit dem “Tivoli Performance
Viewer” kontrolliert werden
15. Konfigurieren der DataSources
§ 18 DataSources müssen geändert werden (ca. 100 Mausklicks)
§ Wie wär es ein Skript zu nutzen:
§ wsadmin.sh -lang jython -f cfgDataSource.py
§ Dauert ca. 30 Sekunden
um alle Parameter der
DataSources anzupassen
17. Einrichten der J2EE Sicherheits Rollen
§ Initiales setzen der Rollen über
§ cfgJ2EERolesRestricted.py (kein Zugriff für Anonymous)
§ cfgJ2EERolesUnRestricted.py
§ Zeitersparnis ca. 30 Minuten gegen ISC
§ Es können Benutzer und Gruppen gesetzt werden
§ Nach dem Speichern (AdminConfig.save()) starten alle Applikationen
neu!
18. J2EE Rollen für spezielle Anwendungen
§ Skripts für initiale Rollenkonfiguration für viele Umgebungen nicht
granular genug
§ Deaktivierung und Aktivierung für einzelne Benutzer und/oder Gruppen:
§ Global Moderation – cfgJ2EERoleGlobalModerator.py
§ Metrics Reader – cfgJ2EERoleMetricsReader.py
§ Metrics Report Run – cfgJ2EERoleMetricsReportRun.py
§ Mailintegration (Socialmail) – cfgJ2EERoleSocialMail.py
§ Vorsicht: auch hier starten die geänderten Applikationen neu!
19. J2EE Rollen – Backup – cfgJ2EERoleBackup
§ bis Version 4.0 wurden oft bei Fixpackinstallationen die J2EE Rollen auf
Default gesetzt
§ Problem:
§ geschlossene Umgebungen plötzlich public
§ wurden die Einstellungen dokumentiert (wer hat welche Rolle)?
§ Skript:
§ Backup der J2EE Rollen aller Anwendungen (nicht nur Connections)
§ Backup als Text-Dateien in einem anzugebenden Ordner
20. J2EE Rollen – Restore – cfgJ2EERoleRestore
§ Backup kann auch wiederhergestellt werden
§ Vorteile:
§ alle Rollen gesetzt wie zum Zeitpunkt des Backups
§ Dateien können editiert und angepasst werden (ersetzen eines Benutzers)
§ Restore von Rollenbackups eines DEV oder QA Systems
21. Konfigurieren der JVM Logs - cfgLogFiles
§ Default für JVM Logs (SystemOut & SystemErr):
§ Grösse: 1MB
§ 5 historische Logs
§ Zu klein für Troubleshooting!
§ Besser:
§ 20 – 40 MB
§ 5 – 10 Log Datei Rotation
§ wsadmin.sh -lang jython -f cfgLogFiles.py
22. Setzen der JVM Heap Size – cfgJVMHeap
§ Performance Tuning Guide gibt Empfehlung für JVM Max und Initial Heap
§ Konfiguration für Deployment Manager, Node Agents und Application Server
§ Monitoring über Verbose Garbage Collection
§ initial Heap = max Heap (bis zu 10% Performance Gewinn)
§ Performance Tuning Guide Addendum für 4.5 empfiehlt das Gleichsetzen der
Parameter
§ wsadmin.sh -lang jython -f cfgJVMHeap.py
§ Zeigt aktuelle Grösse der initial- und maximumHeapSize für alle JVMs an
§ Fragt nach Wert für initialHeapSize und maximumHeapSize für alle JVMs
§ “Return” lässt den Wert unverändert
27. Testen der External ID gegen LDAP
§ Manchmal können sich einzelne Benutzer nicht anmelden
§ oft nur einzelne Connections Apps betroffen
§ UUID und GUID nicht mehr synchron
§ Umbenennungen planen
§ Skript, welches die LDAP GUID und Connections UUID überprüft
§ cnxMemberCheckExIDByEmail
§ Skript liest die PROF_GUID der peopleDB
28. Aktivieren und Deaktivieren von Benutzern
§ Nach Umbenennung und auch manchmal ohne Grund
§ Benutzerinformation nicht synchron über Applikationen
§ Profiles kann geöffnet werden, aber einzelne Anwendungen nicht
§ Deaktivieren und Aktivieren ist oft die Lösung
§ Manuell aufwändig, da UID und E-Mail nach Deaktivierung gesetzt
werden müssen (wurden beim Deaktivieren gelöscht)
§ Skript cnxMemberDeactandActByEmail
§ speichert E-Mail und UID
§ JDBC notwendig
29. Arbeiten mit Policies
§ Erstellen und anpassen von Policies ist meist sehr mühsam
§ Library Grösse muss als Long definiert werden
(z.B. 2 GB = 2147483648L)
§ Ein Beispiel:
§ FilesPolicyService.edit("2d93497d-065a-4022ae25-a4b52598d11a", "My Policy",
2147483648L)
§ Um zu editieren muss die UUID der Policy herausgefunden werden, Grösse in
Long berechnet und kopiert werden...
§ wsadmin.sh -lang jython -f CnxFilesPolicies.py
31. Verschieben von Communities
§ Seit der Connections Version 4.5 CR3 können Communities verschoben
werden (Sub-Community->Community / Community->Sub-Community)
§ Kann über wsadmin Befehl ausgeführt werden, dazu muss man aber
Community ID‘s wissen
§ Einfacher über:
§ wsadmin.sh –lang jython –f cnxCommunitiesReparenting.py
33. DB2 – Datenbank Optimierung
§ Performance Tuning Guide:
§ Reorganisation (Ändern der physischen Datenanordnung auf HDD) sollte
immer dann durchgeführt werden, wenn eine grosse Menge an Daten
hinzugefügt wurde
§ Runstat (Sammeln von Statistikdaten) sollte regelmässig durchgeführt
werden, damit DB Abfragen möglichst optimal ausgeführt werden
§ Reorganisation und Runstat können mit Skripts ausgeführt werden,
welche im connections.sql Verzeichnis gefunden werden
§ Es gibt auch die Möglichkeit beides über die Automatische Wartung zu
konfigurieren
34. DB2 - Reorganisieren der Datenbanken
§ Reorg sollte nur ausgeführt werden, wenn alle Applikationen gestoppt
sind, DBs werden Offline genommen -> während Wartungsfenstern
§ Ausführen von 10 Skripts durch unterschiedliche Aufrufe -> mühsam
§ Einfacher über Skript reorg.sh/reorg.bat
35. DB2 - Runstats
§ Runstats sollte regelmässig ausgeführt werden, Applikationen dürfen
gestartet sein, DBs werden nicht Offline genommen
-> während Randzeiten
§ Ausführen von 10 Skripts durch unterschiedliche Aufrufe -> mühsam
§ Einfacher über Skript runstats.sh/runstats.bat
36. DB2 - Runstats
§ Erstellen eines geplanten
Tasks (Windows)
§ Erstellen eines Cron Jobs (Linux)
§ crontab -e
§ 0 1 * * * cd /opt/install/Wizards/connections.sql;./reorg.sh
§ -> Ausführen des Skripts jeden Tag um 01:00
37. Backup der Datenbanken
§ Anpassen der Datenbankkonfiguration
§ db2 update database configuration for BLOGS using
AUTO_DEL_REC_OBJ ON num_db_backups 1 rec_his_retentn 0 logarchmeth1 disk:D:DB2LOGS
Automatisches
Löschen von
Recovery-Objekten
Anzahl der
Datenbank-
Backups
Aufbewahrungs-zeitraum
für
Recoveryprotokoll
Primäre
Protokollarchivie-rungsmethode
§ Skript configureArchiveLogs.sh/configureArchiveLogs.bat
38. Backup der Datenbanken
§ Erstellen eines Offline Backup
§ Nach dem Ändern der DB Konfiguration muss zuerst ein Offline
Backup erstellt werden, ansonsten können Sie (oder Websphere) nicht
auf die DBs zugreifen
§ Skript backupDatabasesOffline.sh/backupDatabasesOffline.bat
39. Backup der Datenbanken
§ Ab nun können Online Backup erstellt werden, sprich Backup während
des Betriebs -> geplanter Task, Cron Job
§ Skript backupDatabasesOnline.sh/backupDatabasesOnline.bat
40. Restore der Datenbanken
§ Löschen der Datenbank, welche wiederhergestellt werden soll (Bsp. BLOGS)
§ DB2 drop database BLOGS
§ Die Datenbank mit dem DB Wizard neu erstellen
§ Restore der Daten mit dem Backup
§ db2 restore database BLOGS from /opt/db2backup REPLACE EXISTING
§ db2 restore database BLOGS LOGS from /opt/db2backup LOGTARGET /opt/db2logs
§ db2 rollforward database BLOGS to end of logs overflow log path "(/opt/db2logs)"
§ db2 rollforward database BLOGS complete overflow log path "(/opt/db2logs) “
§ Reorganisieren der Datenbank
§ db2 -td@ -vf reorg.sql
42. Add On – cnxmenu.py
§ Menu für alle vorhandenen Jython Skripts
43. Download aller gezeigter Skripts
§ Alle gezeigten Skripts (und weitere) können unter folgendem Link
heruntergeladen werden (Nutzung auf eigene Gefahr und ohne
Garantie):
§ https://github.com/stoeps13/ibmcnxscripting
§ Seit 21. November 2013 ist diese Sammlung auch ein OpenNTF Projekt
– Administration Scripts for WebSphere
§ http://preview.tinyurl.com/otmq6mj
44. Wir sind froh um Hilfe
§ Helfen Sie uns diese Skripts zu erweitern
§ Diskutieren Sie mit uns neue Ideen
§ Sie können uns auch gerne bei folgenden Punkten unterstützen:
§ Erstellen der Dokumentation
§ Testen von Skripts in ihrer Umgebung