Autor Thema: Events mit unterschiedlicher Herkunft in ein gemeinsames Log schreiben  (Gelesen 1958 mal)

Offline Tim Pistor

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
    • www.pistor.is - Tim Pistor IT-Beratung
Hallo zusammen,

ich bin gerade dabei ein Identity Management Tool zu schreiben. Eine Notesanwendung die alle Benutzerdaten enthält
und je nach der zugewiesenen Stelle (bzw. Rollen und Gruppen) werden der Person Berechtigungen zugeteilt. Die Meta-
daten und Zugriffsrechte werden dann auch prompt in die jeweiligen Zielsysteme (Active Direcotry, Novell, LDAP, NAB, SQL
und diverse andere) übertragen und sind auch gleich wirksam...

Bei der ganzen Sache sind eine Reihe von Systemen beteiligt. Die Notesanwendung steht dabei im Vordergrund und
"gibt den Ton an".

Die Systeme teilen mir Ihre Events, Messages und Fehler auf verschiedensten Wegen mit - per Webservice, per E-Mail
und per Agent. Mein Ziel ist es all diese Informationen in ein gemeinsames Log zu bringen - ähnlich dem Domino Konsolen-
log. Ein Dokument mit RichTextfeld mit den Nachrichten eines gewissen Zeitraums.

Verschiedene Varianten habe ich schon druchgedacht - die Optimale war noch nicht dabei... Hier ein paar Ideen:

Einfach direkt ins Dokument schreiben
Es passiert mit Sicherheit das mehrere Prozesse gleichzeitig ins Log schreiben möchten.

NotesLog Klasse
Entweder Dateien auf der Platte (mag ich nich) oder für jeden Eintrag ein einzelnes Dokument (mag ich auch nicht -
könnt ich aber, wenn auch nur schweren Herzens und mit ordentlicher Archivierung, damit leben). Bei OpenLog ists
ähnlich.

JavaAddIn Task
Ein Serveraddin das alles entgegennimmt, cached und dann sporadisch ins Dokument schreibt. (Kanonen auf Spatzen?)

"Logging Service"
Gefällt mir bisher am besten : Ich leite alles per Webservice an die "Logging Anwendung" um. Wird der Provider nun
gleichzeitig mehrmals aufgerufen wartet dieser bis seine anderen Instanzen fertig sind. Jedoch entsteht hier ein Nadelöhr
das man im Auge behalten sollte...

Standet Ihr schonmal vor einem ähnlichen Problem? Wie habt Ihr das Ganze gelöst?

Plan B ist für jedes Zielsystem einen eigenes Log zu schreiben - minimiert zumindest das Risiko von gleichzeitigen
Zugriffen. Dies würde aber das Verfolgen von Abläufen für den Anwender schwieriger machen...

Achja, der Dominoserver ist exklusiv für das Identitymanagement abgestellt. Keine MailDBs und keine anderen Applikationen.

lg Tim

Offline Tim Pistor

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
    • www.pistor.is - Tim Pistor IT-Beratung
Es ist doch immer wieder schön wenn man sich die Frage selbst beanworten kann bzw. sich die Lösung
schon aus der Fragestellung selbst ergibt:

Zitat
Achja, der Dominoserver ist exklusiv für das Identitymanagement abgestellt. Keine MailDBs und keine anderen Applikationen.

In diesem speziellen Fall könnte man doch tatsächlich das Eventlog direkt in die Serverkonsole schreiben und
die log.nsf nutzen. Es passiert ja eh nicht viel auf dem Server ausser das Identity Management. Klar man muss
sich ein bisschen um die Archivierung der log.nsf kümmern, aber sonst...

Ich würde das Thema aber trotzdem gerne offen lassen - evlt. finden sich ja noch andere Ideen bzw. ein allgemeiner
Ansatz.
« Letzte Änderung: 18.02.10 - 13:31:01 von Tim Pistor »

Offline mind1

  • Junior Mitglied
  • **
  • Beiträge: 93
Hallo,

ich würde nicht die log.nsf nutzen. Da rührt Notes selbst viel zu viel drin rum. Wie z.B. das purging nach 7 Tagen (je nach ini Eintrag)
Ich habe eine Anwendung mit ca. 50 Datenbanken und mehreren Servern. Teils Web, teils reine Notes-Server. Alles was wichtig ist, schreibt in eine zentrale DB ein separates Doc. Darin gibt es einen Button, der alle Enträge löscht, "die nicht von heute sind". Ich schaue dort jeden morgen hinein, verschaffe mir einen überblick und drücke wenn alles gut ist den erwähnten Knopf. Bin damit sehr zufrieden.

Gruss, Bernd

Offline Tim Pistor

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
    • www.pistor.is - Tim Pistor IT-Beratung
Hi Bernd,

um zu sehen ob irgendwo etwas schief gelaufen ist wäre das schon ok. Nur könnte es sein das ein bestimmtes Ereignis
auch nach 6-7 Monaten nachvollzogen werden muss. Ein solches Ereignis kann so aussehen :

Zitat
10:02 IDM Client : Max Muster hat die Person "Ein User" angelegt
10:02 IDM Client : Max Muster hat die Stelle Vertrieb-Süd dem User "Ein User" zugewiesen.
10:02 IDM Connector : Die Gruppen "Notes User", "Intranet User", "Kundenstammdaten-Leser" wurden dem User "Ein user" zugewiesen.
10:03 IDM Conenctor : Der Benutzer "Ein User/Domain" wurde in "Domino" registriert
10:03 IDM Conenctor : Der Benutzer "Ein User/Domain" wurde in "Intranet" angelegt
10:03 IDM Conenctor : Der Benutzer "Ein User/Domain" wurde in "Kundenstammdaten" angelegt
10:04 IDM Connecotr : Die Maildatenbank "mail/euser.nsf" wurde dem User "Ein User" zugewiesen.
10:20 IDM Client : Max Muster hat die Gruppe "Domino Administrator" der Stelle "Systemadministrator" hinzugefügt.
10:21 IDM Connector : FEHLER Die Gruppe "Domino Administrator" wurde nicht im Zielsystem "Domnino" gefunden!

Sowas eben. Wer hat wann was gemacht...

Offline mind1

  • Junior Mitglied
  • **
  • Beiträge: 93
Also bei so langen Zeiträumen kannst Du natürlich nicht mit einzelnen Docs pro Meldung arbeiten. Ich würde aber trotzdem ein separates Log anlegen, und nicht in die log.nsf schreiben.

Zusammengefasste Logs haben allerdings den großen Nachteil, dass man die Wichtigkeit eines einzelnen Eintrags nicht hervorheben kann. Das würde ich dann mit separaten docs für wichtige und weniger wichtige Dokumente lösen. Also so wie das in der log.nsf nach Mail-Events und Miscellaneous-Events aufgeteilt ist.

Gruss, Bernd

Offline Werner Götz

  • Aktives Mitglied
  • ***
  • Beiträge: 249
  • Geschlecht: Männlich
Hallo Tim,

ist es denn IMMER möglich, die Aktion sofort abzuarbeiten - oder kann es auch mal sein, dass ein Auftrag sowieso zwischenspeichern muss, damit das dann mehrfach probiert / durchgeführt wird (z.B. weil ein Connector zur Zeit nicht zur Verfügung steht usw.). In diesem Fall würde ich pro Auftrag ein Dokument anlegen und dort dann hinterlegen, wann es abgearbeitet wurde.

Man kann dann auch hervorragend auswerten bzw. die Daten später in Dokumenten zusammenfassen (also z.B. pro geänderter Gruppe usw.).

Auch wenn man mehrere Protokolleinträge in 1 Dokument zusammenfasst sollte man pro durchgeführter Aktion das Dokument speichern, damit auch bei einem Absturz jede Aktion protokolliert ist.

-Werner

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz