Tipps und Skripts aus dem Leben eines Connections Admins
-
Upload
klaus-bild -
Category
Self Improvement
-
view
766 -
download
17
Embed Size (px)
description
Transcript of Tipps und Skripts aus dem Leben eines Connections Admins

Adm01: Tipps und
Skripts aus dem Leben
eines Connections
Admins Christoph Stöttner, Fritz & Macziol GmbH Klaus Bild, Belsoft AG

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

§ 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

Ü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

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

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!

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)

Installation und Konfiguration

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!

WebSphere Dienst unter Linux

WebSphere Dienst unter Windows cd %WAS_HOME%/bin wasservice.bat -add Dmgr -serverName dmgr -profilePath D:\IBM\WebSphere\AppServer\profiles\Dmgr01 -encodeParams -restart true -startType automatic -stopArgs "-username wasadmin -password password" wasservice.bat -add Node -serverName nodeagent -profilePath D:\IBM\WebSphere\AppServer\profiles\AppSrv01 -encodeParams -restart true -startType automatic -stopArgs "-username wasadmin -password password –stopservers"

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

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

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

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

Konfigurieren der DataSources

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!

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!

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

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

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

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

Konfigurieren der DataSources

Täglicher Betrieb – Business as Usal

Scriptumgebung einrichten § cnxMember* Skripts benutzen JDBC um Datenbanken auszulesen
§ Einfacher Weg: § %WAS_HOME%\profiles\Dmgr01\bin\setupCmdLine.bat editieren § JDBC Pfad (z.B. D:\IBM\SQLIB\java) an WAS_EXT_DIRS anhängen
§ Besser: § wsadmin.bat und setupCmdLine.bat kopieren und anpassen
§ cnxMember* Skripts anpassen § DB Benutzer § Passwort § Hostname und DB

Scriptumgebung einrichten (2)

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

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

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

Arbeiten mit Policies

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

Verschieben von Communities

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

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

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

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

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:\DB2\LOGS
§ Skript configureArchiveLogs.sh/configureArchiveLogs.bat
Automatisches Löschen von
Recovery-Objekten
Anzahl der Datenbank-
Backups
Aufbewahrungs-zeitraum für
Recoveryprotokoll
Primäre Protokollarchivie-
rungsmethode

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

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

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

Ressourcen

Add On – cnxmenu.py § Menu für alle vorhandenen Jython Skripts

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

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

§ Klaus Bild
§ Skype: kbuilder
§ Twitter: kbild
§ Blog: http://kbild.ch
§ http://about.me/kbild
§ Christoph Stoettner
§ Skype: christophstoettner
§ Twitter: stoeps
§ Blog: http://www.stoeps.de
§ http://about.me/stoeps
Unsere Kontaktdaten