Tipps Und Skripts aus dem Leben eines Connections Admins

  • 1,188 views
Uploaded on

Session ADM01 auf der bccon.de Konferenz

Session ADM01 auf der bccon.de Konferenz

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,188
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
8
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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)
  • 8. Installation und Konfiguration
  • 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!
  • 10. WebSphere Dienst unter Linux
  • 11. WebSphere Dienst unter Windows cd %WAS_HOME%/bin wasservice.bat -add Dmgr -serverName dmgr -profilePath D:IBMWebSphere AppServerprofilesDmgr01 -encodeParams -restart true -startType automatic -stopArgs "-username wasadmin -password password" wasservice.bat -add Node -serverName nodeagent -profilePath D:IBM WebSphereAppServerprofilesAppSrv01 -encodeParams -restart true - startType automatic -stopArgs "-username wasadmin -password password – stopservers"
  • 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
  • 16. Konfigurieren der DataSources
  • 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
  • 23. Konfigurieren der DataSources
  • 24. Täglicher Betrieb – Business as Usal
  • 25. Scriptumgebung einrichten §  cnxMember* Skripts benutzen JDBC um Datenbanken auszulesen §  Einfacher Weg: §  %WAS_HOME%profilesDmgr01binsetupCmdLine.bat editieren §  JDBC Pfad (z.B. D:IBMSQLIBjava) an WAS_EXT_DIRS anhängen §  Besser: §  wsadmin.bat und setupCmdLine.bat kopieren und anpassen §  cnxMember* Skripts anpassen §  DB Benutzer §  Passwort §  Hostname und DB
  • 26. Scriptumgebung einrichten (2)
  • 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
  • 30. Arbeiten mit Policies
  • 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
  • 32. Verschieben von Communities
  • 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 §  Skript configureArchiveLogs.sh/configureArchiveLogs.bat Automatisches Löschen von Recovery-Objekten Anzahl der Datenbank- Backups Aufbewahrungs- zeitraum für Recoveryprotokoll Primäre Protokollarchivie- rungsmethode
  • 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
  • 41. Ressourcen
  • 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
  • 45. §  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