Tipps Und Skripts aus dem Leben eines Connections Admins

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

description

Session ADM01 auf der bccon.de Konferenz

Transcript of Tipps Und Skripts aus dem Leben eines Connections Admins

Page 1: 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

Page 2: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 3: Tipps Und Skripts aus dem Leben eines Connections Admins

§  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

Page 4: Tipps Und Skripts aus dem Leben eines Connections Admins

Ü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

Page 5: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 6: Tipps Und Skripts aus dem Leben eines Connections Admins

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!

Page 7: Tipps Und Skripts aus dem Leben eines Connections Admins

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)

Page 8: Tipps Und Skripts aus dem Leben eines Connections Admins

Installation und Konfiguration

Page 9: Tipps Und Skripts aus dem Leben eines Connections Admins

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!

Page 10: Tipps Und Skripts aus dem Leben eines Connections Admins

WebSphere Dienst unter Linux

Page 11: Tipps Und Skripts aus dem Leben eines Connections Admins

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"

Page 12: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 13: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 14: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 15: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 16: Tipps Und Skripts aus dem Leben eines Connections Admins

Konfigurieren der DataSources

Page 17: Tipps Und Skripts aus dem Leben eines Connections Admins

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!

Page 18: Tipps Und Skripts aus dem Leben eines Connections Admins

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!

Page 19: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 20: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 21: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 22: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 23: Tipps Und Skripts aus dem Leben eines Connections Admins

Konfigurieren der DataSources

Page 24: Tipps Und Skripts aus dem Leben eines Connections Admins

Täglicher Betrieb – Business as Usal

Page 25: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 26: Tipps Und Skripts aus dem Leben eines Connections Admins

Scriptumgebung einrichten (2)

Page 27: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 28: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 29: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 30: Tipps Und Skripts aus dem Leben eines Connections Admins

Arbeiten mit Policies

Page 31: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 32: Tipps Und Skripts aus dem Leben eines Connections Admins

Verschieben von Communities

Page 33: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 34: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 35: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 36: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 37: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 38: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 39: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 40: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 41: Tipps Und Skripts aus dem Leben eines Connections Admins

Ressourcen

Page 42: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 43: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 44: Tipps Und Skripts aus dem Leben eines Connections Admins

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

Page 45: Tipps Und Skripts aus dem Leben eines Connections Admins

§  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