-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf das Überwachen
eines informationstechnologischen Netzwerks (IT-Netzwerks) und insbesondere auf ein
Verfahren, System und ein Computerprogramm zum Überwachen von Objekten in einem IT-Netzwerk.
-
Hintergrund der Erfindung
-
Heutzutage,
da Informationssysteme allgegenwärtig
werden, und Unternehmen und Organisationen aller Bereiche drastisch
von ihren Computerressourcen abhängig
werden, erhöht
sich das Erfordernis der Verfügbarkeit
der Hardware- und Software-Komponenten eines IT-Netzwerks und von
Diensten, die auf diesem basiert sind (nachstehend werden alle drei
allgemein als „Objekte" bezeichnet), während die
Komplexität
von IT-Netzwerken wächst.
-
Es
sind Überwachungssysteme
verfügbar, die
ermöglichen,
dass die Verfügbarkeit
und das Verhalten von Objekten in einem IT-Netzwerk überwacht und
verwaltet werden.
-
Beispielsweise
bietet Hewlett-Packard ein derartiges Produkt unter dem Namen „OpenView VantagePoint" an. Ein Personalcomputer,
ein Server, eine Netzwerkzwischenverbindungsvorrichtung oder jegliches
System mit einer CPU (central processing unit, zentrale Verarbeitungseinheit)
wird ein Knoten genannt. Die Knoten eines IT-Netzwerks, die durch ein
derartiges Überwachungssystem überwacht
werden, werden überwachte
Knoten genannt. Auf einem überwachten
Knoten läuft
ein Programm oder ein Prozess als ein Hintergrundauftrag, der das
Stattfinden bestimmter Ereignisse (z. B. Fehlernachrichten) an dem
Knoten überwacht
und ereignisver wandte Nachrichten gemäß Regeln erzeugt, die durch
einen Benutzer definiert sein können.
Ein derartiges Programm oder ein derartiger Prozess wird „Agent" genannt. Ein Agent
ist nicht auf ein passives Überwachen
beschränkt,
z. B. durch ein Sammeln von Fehlernachrichten. Vielmehr kann derselbe
ein aktives Überwachen
von Hardware und Prozessen durchführen. Beispielsweise kann ein
Agent periodisch (z. B. alle fünf
Minuten) Anforderungen an einen Prozess (z. B. einen Oracle-Prozess)
senden, um herauszufinden, ob der Prozess noch aktiv ist. Eine Antwort, die
aussagt, dass der Prozess nicht mehr aktiv ist (oder das Fehlen
einer Antwort) kann ebenfalls ein „Ereignis" bilden. Die Nachrichten, die durch
die Agenten erzeugt werden, werden durch einen Überwachungsserver gesammelt,
der dieselben speichert und verarbeitet und die Verarbeitungsergebnisse
an eine Überwachungskonsole
leitet, mittels derer ein IT-Administrator
oder eine Bedienperson den Status und/oder das Verhalten der IT-Objekte
betrachten kann.
-
Ein Überwachungssystem
dieser Art erhöht die
Verfügbarkeit
der zu betrachtenden IT-Objekte, da dasselbe ermöglicht, dass ein Fehler oder
ein Ausfall einer Komponente des überwachten Netzwerks schnell
erfasst wird, so dass eine Behebungsaktion oder dergleichen sofort
gestartet werden kann.
-
Bei
einem derartigen bekannten Überwachungssystem
wird die Bedienperson oft mit einer großen Anzahl von Nachrichten überhäuft, die
an der Überwachungskonsole
angezeigt werden. Einige dieser Nachrichten sind mit anderen verwandt,
beispielsweise wenn eine Anwendung ausfällt und wieder hochfährt. Ein
anderes Beispiel für
verwandte Nachrichten ist der Fall, in dem ein Netzwerkrouter ausfällt, so
dass alle Knoten jenseits des Routers nicht mehr erreicht werden
können.
Folglich sendet der Agent, der dem Router zugeordnet ist, nicht
nur Nachrichten, die anzeigen, dass der Router ausgefallen ist,
sondern sendet auch eine größere Anzahl
von Nachrichten, dass die Knoten jenseits des Rou ters nicht verfügbar sind.
Ein anderer Anteil der großen Anzahl
von Nachrichten, die an die Überwachungskonsole
gesendet werden, sind Nachrichten, die über ähnliche oder identische Ereignisse
berichten, beispielsweise drei Nachrichten, die berichten, dass
ein Benutzer dreimal auf das Benutzer-„Hauptverzeichnis” (Root)
umschaltet. Ein anderer Anteil von Nachrichten berichtet darüber, wie
sich eine Problemsituation im Laufe der Zeit entwickelt, z. B. wie
sich die Menge an freiem Plattenraum an einem überwachten Knoten verringert
oder erhöht.
-
Bei
einigen Überwachungssystemen
können Nachrichten
korreliert werden, um redundante Nachrichten zu unterdrücken, z.
B. Nachrichten, die über identische
Ereignisse oder die Entwicklung einer Problemsituation berichten.
Dies wird durch eine Art von übergeordneter
Korrelationsanalyse erreicht, die durch den Überwachungsserver ausgeführt wird. Das
US-Patent 6 108 700 offenbart
eine Überwachungsprozedur,
die verwendet wird, um Netzwerkelemente eines informationstechnologischen
Netzwerks zu überwachen,
wobei über
Ereignisse, die an Netzwerkelementen stattfinden, in Form von Ereignisnachrichten
berichtet wird. In diesem Dokument weisen die Ereignisnachrichten
einen Nachrichtenschlüssel
(Informationen über
das Netzwerkereignis) und eine Nachrichtenkorrelationsinformation
(Korrelations-ID) auf. Die Korrelations-ID dieser Ereignisnachrichten
wird mit den Korrelations-IDs anderer Ereignisnachrichten verglichen.
Falls eine Übereinstimmung
von Korrelations-IDs festgestellt wird, werden die beiden verwandten
Nachrichten verknüpft.
Die Definition dieser Korrelationsanalyse, die durch den Benutzer
bereitgestellt werden muss, ist jedoch ziemlich kompliziert. Ferner
erfordert die Korrelationsanalyse beträchtliche Computer- und Datenbankzugriffsressourcen.
Eine Korrelation von Nachrichten ist nicht immer möglich, da
die verfügbaren
Nachrichten nicht immer die vollständigen Informationen enthalten,
die für
eine Korrelationsüberprüfung erforderlich
sind.
-
Daher
ist ein Überwachungssystem
erwünscht,
bei dem identische oder verwandte Ereignisse einfacher unterdrückt werden
können.
-
Zusammenfassung der Erfindung
-
Die
Erfindung sieht ein Verfahren zum Überwachen von Objekten in einem
informationstechnologischen Netzwerk (IT-Netzwerk) vor, das überwachte Knoten aufweist,
bei denen überwachungsrelevante Ereignisse
stattfinden. Das Verfahren weist folgende Schritte auf: Erzeugen
ereignisverwandter Nachrichten, die einen Nachrichtenschlüssel und
einen Nachrichtenbeziehungsschlüssel
aufweisen; Vergleichen des Nachrichtenbeziehungsschlüssels mit
dem Nachrichtenschlüssel
einer anderen Nachricht; und Verarbeiten der anderen Nachricht abhängig von dem
Ergebnis des Vergleichs.
-
Gemäß einem
anderen Aspekt sieht die Erfindung ein System zum Überwachen
von Objekten in einem IT-Netzwerk vor, das überwachte Knoten, bei denen überwachungsrelevante
Ereignisse stattfinden, und einen Nachrichtenprozessor aufweist. Agenten
sind den überwachten
Knoten zugeordnet und erzeugen ereignisverwandte Nachrichten, die
einen Nachrichtenschlüssel
und einen Nachrichtenbeziehungsschlüssel aufweisen. Der Nachrichtenprozessor
vergleicht den Nachrichtenbeziehungsschlüssel mit dem Nachrichtenschlüssel einer
anderen Nachricht und verarbeitet die andere Nachricht abhängig von
dem Ergebnis des Vergleichs.
-
Gemäß noch einem
anderen Aspekt betrifft die Erfindung ein Computerprogramm, das
einen Programmcode zur Ausführung
in einem Netzwerk umfasst, das überwachte
Knoten aufweist, in denen überwachungsrelevante
Ereignisse stattfinden. Das Computerprogramm weist den Programmcode
für Folgendes
auf: Erzeugen ereignisverwandter Nachrichten, die einen Nachrichtenschlüssel und
einen Nachrichtenbeziehungsschlüssel
aufweisen; Vergleichen des Nachrichtenbeziehungsschlüssels mit
dem Nachrichtenschlüssel
einer anderen Nachricht; und Verarbeiten der anderen Nachricht abhängig von dem
Ergebnis des Vergleichs.
-
Gemäß noch einem
weiteren Aspekt betrifft die Erfindung ein Computerprogramm, das
einen Programmcode zur Ausführung
in einem Netzwerk umfasst, das überwachte
Knoten aufweist, in denen überwachungsrelevante
Ereignisse stattfinden. Der Programmcode erzeugt ereignisverwandte
Nachrichten, die einen Nachrichtenschlüssel und einen Nachrichtenbeziehungsschlüssel aufweisen,
für einen Vergleich
des Nachrichtenbeziehungsschlüssels
mit dem Nachrichtenschlüssel
einer anderen Nachricht. Der Nachrichtenschlüssel und der Nachrichtenbeziehungsschlüssel werden
gemäß Schlüsselmustern
erzeugt, die auf der Basis eines Satzes von Musterdefinitionsregeln
definiert sein können,
wobei sowohl das Nachrichtenschlüsselmuster
als auch das Nachrichtenbeziehungsschlüsselmuster auf der Basis desselben
Satzes von Musterdefinitionsregeln definiert sind.
-
Andere
Merkmale sind dem offenbarten System, Computerprogramm und Verfahren
inhärent oder
werden Fachleuten anhand der folgenden detaillierten Beschreibung
von Ausführungsbeispielen und
der zugehörigen
Zeichnungen derselben offenkundig.
-
Beschreibung der Zeichnungen
-
In
den beiliegenden Zeichnungen gilt:
-
1 zeigt
ein Diagramm einer Architektur auf hoher Ebene eines überwachten
IT-Netzwerks;
-
2 zeigt
ein Beispiel für
ein Ereignis, ein Ereignismuster und ein Nachrichtenschlüsselmuster, sowie
einen Nachrichtenschlüssel;
-
3 veranschaulicht
die Erzeugung einer Nachricht mit einem Nachrichtenschlüssel und
einem Nachrichtenbeziehungsschlüssel;
-
4 veranschaulicht,
wie die Nachricht von 3 mit anderen Nachrichten verglichen
wird;
-
5a,
b zeigen eine exemplarische Ansicht von Nachrichtenschlüsseln, die
in einem Nachrichten-Browser vor und nach dem Vergleich, der gemäß 4 durchgeführt wird,
angezeigt wird;
-
6 veranschaulicht
die allgemeine bzw. gemeinsame Verwendung von Regeln für Nachrichtenschlüsselmuster
und Nachrichtenbeziehungsschlüsselmuster;
-
7 veranschaulicht,
dass das Nachrichtenschlüsselmuster
und das Nachrichtenbeziehungsschlüsselmuster an einer allgemeinen
bzw. gemeinsamen Stelle in einem Computerprogramm definiert sind;
-
8 ist
ein Flussdiagramm eines Nachrichtenkorrelationsprozesses, der durch
einen Agenten und einen Überwachungsserver
durchgeführt
wird.
-
Beschreibung der bevorzugten
Ausführungsbeispiele
-
1 zeigt
ein Diagramm einer Architektur auf hoher Ebene eines bevorzugten
Ausführungsbeispiels.
Bevor jedoch mit der Beschreibung weiter fortgefahren wird, werden
einige Elemente der bevorzugten Ausführungsbeispiele erörtert.
-
Bei
den bevorzugten Ausführungsbeispielen werden
Objekte eines IT-Netzwerks automatisch hinsichtlich ihrer Verfügbarkeit
und ihres Verhaltens durch ein Überwachungssystem überwacht.
Derartige überwachte
Objekte weisen Hardwarevorrichtungen, Software und Dienste auf.
Ein Knoten ist ein Netzwerkobjekt, wie z. B. ein PC (Personalcomputer),
Server oder jegliches System mit einer CPU. Ein Knoten wird „überwachter
Knoten" genannt,
falls derselbe und/oder Anwendungen oder Prozesse, die auf ihm laufen,
durch das Überwachungssystem überwacht
werden. Dienste sind beispielsweise kundenbasierte oder benutzerorientierte
Fähigkeiten,
die durch eine oder mehrere Hardware- oder Softwarekomponenten in
einer Computerumgebung bereitgestellt sind. Dienste können z.
B. kommerzielle Anwendungen (z. B. Oracle), Internetserveranwendungen
(z. B. Microsoft Exchange) oder die internen Windows NT 2000-Dienste
sein.
-
Das Überwachen
kann ein passives Überwachen
(z. B. ein Sammeln von Fehlernachrichten, die durch die Objekte
erzeugt werden) oder ein aktives Überwachen (z. B. durch ein
periodisches Senden einer Anforderung an das Objekt und ein Überprüfen, ob
dasselbe antwortet, und, falls zutreffend, ein Analysieren der Inhalte
der Antwort) umfassen. Neben reinen Überwachungsaufgaben kann das Überwachungssystem
bei den bevorzugten Ausführungsbeispielen
auch Verwaltungsaufgaben, beispielsweise Fehlerkorrektur- oder -Ausbesserungsaufgaben,
Einstellungsaufgaben und andere Netzwerkdienststeuerungsaufgaben,
durchführen.
-
Ein
Ereignis ist eine (im Allgemeinen unaufgeforderte) Benachrichtigung,
beispielsweise eine SNMP-Programmunterbrechung (SNMP-Trag, SNMP
= simple network management protocol, einfaches Netzwerkverwaltungsprotokoll),
eine CMIP-Benachrichtigung (CMIP = common management information
protocol, etwa: allgemeines Verwaltungsinformationsprotokoll) oder
ein TL1-Ereignis, die beispielsweise durch einen Prozess bei einem überwachten
Objekt oder durch eine Benutzeraktion oder durch einen Agenten erzeugt
wird. Gewöhnlich stellt
ein Ereignis eine Störung,
einen Fehler, eine Änderung
des Status oder des Verhaltens, eine Schwellenverletzung oder ein
Problem beim Betrieb dar. Wenn z. B. das Papierfach eines Druckers
leer ist, ändert
sich der Status des Druckers. Diese Änderung führt zu einem Ereignis.
-
Ein
Agent ist ein Programm oder ein Prozess, der bzw. das auf einer
entfernten Vorrichtung oder einem entfernten Computersystem läuft und
auf Überwachungs-
oder Verwaltungsanforderungen anspricht, Überwachungs- oder Verwaltungsoperationen
durchführt
und/oder eine Ereignisbenachrichtigung sendet. Bei den bevorzugten
Ausführungsbeispielen
sind die Agenten dahin gehend entworfen, auf dem überwachten
Knoten zu laufen. Vorzugsweise gibt es einen Agenten für jeden überwachten
Knoten. Falls mehrere Anwendungen oder Prozesse auf demselben überwachten
Knoten laufen, werden dieselben vorzugsweise durch ein und denselben
Agenten überwacht,
der diesem Knoten zugeordnet ist. Der Agent ist durch einen Satz
von Spezifikationen und Regeln für
jede zu überwachende
Anwendung oder jeden zu überwachenden
Prozess konfiguriert. Die Regeln sagen dem Agenten, auf was geachtet werden
soll und was getan werden soll, wenn ein Ereignis stattfindet (und
welche Ereignisse ausgelöst werden
sollen, falls der Agent eine aktive Überwachung durchführt). Beispielsweise
filtert ein Agent gemäß bestimmten
Regeln Ereignisse und erzeugt Nachrichten, die den Überwachungsserver über das Stattfinden
bestimmter Ereignisse und/oder den Status und das Verhalten der überwachten
Anwendung oder des überwachten
Prozesses informieren. Bei den bevorzugten Ausführungsbeispielen ist der Nachrichtenprozessor
ein Teil des Überwachungsservers.
Der Überwachungsserver
sammelt Ereignis- und Verhaltensdaten, verarbeitet diese und leitet
die Nachrichten und die Ergebnisse an eine Überwachungskonsole (eine Benutzerschnittstelle).
Bei den bevorzugten Ausführungsbeispielen
werden Dienste plattformunabhängig überwacht.
Beispielsweise können
unterschiedliche Betriebssysteme an den verschiedenen überwachten
Knoten implementiert sein.
-
Bei
den bevorzugten Ausführungsbeispielen weisen
die erzeugten ereignisverwandten Nachrichten einen so genannten
Nachrichtenschlüssel
auf. Vorzugsweise weist ein Nachrichtenschlüssel Attribute auf, die bestimmte
Charakteristika des Ereignisses, das diese Nachricht ausgelöst hat,
kennzeichnen, insbesondere jene Ereignischarakteristika, die für Überwachungszwecke
interessant sind. Falls das Ereignis beispielsweise ein Eintrag
in einer Protokolldatei einer Hardwarevorrichtung ist, umfasst der Nachrichtenschlüssel des
Ereignisses nur den Teil des Protokolldateieintrags, der für den Überwachungsprozess
als relevant angesehen wird. Somit kann die Nachrichtenschlüsselerzeugung
eine Datenfilterung darstellen, die irrelevante Ereignisinformationen
entfernt. Welche Daten in dem Nachrichtenschlüssel tatsächlich enthalten sind, kann
jedoch durch den Benutzer über
die Definition einer Nachrichtenschlüsselerzeugungsregel, die Nachrichtenschlüsselmuster
genannt wird, frei gewählt
werden.
-
Ferner
weisen zumindest einige der erzeugten Nachrichten einen so genannten
Nachrichtenbeziehungsschlüssel
auf. Der Nachrichtenbeziehungsschlüssel ist eine Anzeige dessen,
welche anderen Nachrichten (die zuvor erzeugte Nachrichten, gleichzeitig
oder nachfolgend erzeugte Nachrichten sind) mit der vorliegenden
Nachricht verwandt sind. Die Erzeugung des Nachrichtenbeziehungsschlüssels kann
auch durch den Benutzer mittels eines Nachrichtenbeziehungsschlüsselmusters
definiert werden.
-
Der
Nachrichtenbeziehungsschlüssel
kann identisch mit dem Nachrichtenschlüssel sein. In diesem Fall werden
nur identische Nachrichten als mit der vorliegenden Nachricht verwandt
betrachtet. Der Nachrichtenbeziehungsschlüssel weist jedoch vorzugsweise
zumindest ein Attribut auf, das ein Stellvertretersymbol (ein Platzhalter)
ist. Ein derartiger Platzhalter lässt den spezifischen Wert der
Daten, die an der Position des Platzhalters erscheinen, offen. Somit
bezieht ein Nachrichtenbeziehungsschlüssel mit einem Platzhalter
das vorliegende Ereignis auf eine Klasse anderer, vorzugsweise vorheriger
Ereignisse, die bei dem Attribut des Nachrichtenbeziehungsschlüssels mit
Ausnahme des Platzhalters identisch sind, die jedoch bei dem Attribut, das
durch den Platzhalter dargestellt ist, von demselben abweichen können. Falls
beispielsweise ein Nachrichtenschlüssel über den Anteil von verfügbarem Plattenraum
einer bestimmten Hardwarevorrichtung berichtet, bezieht ein Nachrichtenbeziehungsschlüssel mit einem
Platzhalter an dem Parameter Verfügbarer-Plattenraum-Anteil die
vorliegende Nachricht auf alle vorherigen Nachrichten, die über den
verfügbaren
Plattenraum dieser Hardwarevorrichtung berichteten (ungeachtet des
konkreten Anteilwerts, der bei diesen vorherigen Nachrichten angegeben
war).
-
Bei
den bevorzugten Ausführungsbeispielen wird
der Nachrichtenbeziehungsschlüssel
der vorliegenden Nachricht mit den Nachrichtenschlüsseln anderer,
z. B. vorheriger Nachrichten verglichen. Vorzugsweise ist der Vergleich
eine Überprüfung dahin gehend,
ob der Nachrichtenbeziehungsschlüssel
der vorliegenden Nachricht und der Nachrichtenschlüssel der
anderen Nachricht miteinander übereinstimmen,
wobei natürlich
mögliche
Platzhalter in dem oben erläuterten
Sinne berücksichtigt
werden.
-
Das
weitere Verarbeiten der anderen Nachrichten hängt von dem Ergebnis des Vergleichs
ab. Bei den bevorzugten Ausführungsbeispielen
wird die andere Nachricht gelöscht,
falls festgestellt wird, dass deren Nachrichtschlüssel mit
dem Nachrichtenbeziehungsschlüssel
der vorliegenden Nachricht übereinstimmt
(natürlich
unter Beachtung möglicher Platzhalter).
Anstelle eines Löschens
vorheriger verwandter Nachrichten kann das Feststellen einer Nachrichtenkorrelation
alternativ dazu verwendet werden, Nachrichten zusammen zu gruppieren,
korrelierte Nachrichten auf eine bestimmte Weise zu gewichten, dieselben
auf eine bestimmte Weise anzuzeigen usw.
-
Bei
den bevorzugten Ausführungsbeispielen ist
zumindest ein Überwachungsagent
einem überwachten
Knoten zugeordnet und erzeugt die ereignisverwandten Nachrichten,
die den Nachrichtenschlüssel
aufweisen. Falls die Nachrichten auch einen Nachrichtenbeziehungsschlüssel aufweisen, wird
dieser ebenfalls durch den Agenten erzeugt. Dies stellt einen Gegensatz
zu gebräuchlichen
Korrelationsverfahren dar, bei denen Beziehungen zwischen einzelnen
Ereignissen (z. B. Nachrichten) auf einer Ebene über der Erzeugung der einzelnen
Ereignisse (z. B. an einem Überwachungsserver)
ausgewertet werden. Bei den vorliegenden bevorzugten Ausführungsbeispielen
wird die Korrelationsregel jedoch auf der niedrigeren Ebene der
Erzeugung der einzelnen Nachricht eingegeben und dort zu einem nachrichtenspezifischen
Nachrichtenbeziehungsschlüssel
umgewandelt. Auf der höheren
Ebene (z. B. an dem Überwachungsserver)
wird nur ein einfacher Vergleich zwischen dem Nachrichtenbeziehungsschlüssel und
den anderen Nachrichten durchgeführt.
-
Bei
den bevorzugten Ausführungsbeispielen werden
der Nachrichtenschlüssel
und der Nachrichtenbeziehungsschlüssel gemäß Schlüsselmustern erzeugt. Ein Schlüsselmuster
ist eine allgemeine Regel, die angibt, ob ein Nachrichtenschlüssel erzeugt werden
soll und welche Ereignisdaten in dem Nachrichtenschlüssel oder
dem Nachrichtenbeziehungsschlüssel
enthalten sein sollen. Derartige Schlüsselmuster können durch
einen Benutzer auf der Basis eines Satzes von verfügbaren Musterdefinitionsregeln
definiert werden, was beispielsweise einem Skriptprogramm ähnelt, das
auf der Basis eines Satzes von verfügbaren Skriptdefinitionsregeln
definiert werden kann. Sowohl das Nachrichtenschlüsselmuster
als auch das Nachrichtenbeziehungsschlüsselmuster werden auf der Basis
desselben Satzes von Musterdefinitionsregeln, d. h. derselben Syntax,
definiert. Im Gegensatz dazu würde
sich die Definition von Schlüsselmustern
und Beziehungsmustern bei Lösungen,
bei denen die Nachrichtenschlüsselerzeugung
und die Korrelationsanalyse auf unterschiedlichen Ebenen durchgeführt werden
und daher logisch unterschiedlich sind, auf unterschiedliche Definitionsregeln
stützen.
-
Ferner
müsste
bei derartigen Lösungen
der Benutzer die Nachrichtenschlüsselmuster
und die Korrelationsmuster an unterschiedlichen Stellen des Überwachungscomputerprogramms
definieren. Im Gegensatz dazu können
das Nachrichtenschlüsselmuster
und das Nachrichtenbeziehungsschlüsselmuster bei den bevorzugten
Ausführungsbeispielen durch
den Benutzer über
eine Benutzerschnittstelle an einer allgemeinen bzw. gemeinsamen
Stelle des Überwachungscomputerprogramms
definiert werden, da beide Muster für die Nachrichtenschlüssel- und Nachrichtenbeziehungsschlüsselerzeugung durch
ein und denselben Agenten verwendet werden.
-
Die
bevorzugten Ausführungsbeispiele
des Computerprogramms weisen digitalen Programmcode auf, der beispielsweise
auf einem computerlesbaren Datenträger gespeichert ist oder in
Form von Signalen, die über
ein Computernetzwerk übertragen werden,
vorliegt. Die bevorzugten Ausführungsbeispiele
des Programmcodes sind in einer objektorientierten Programmiersprache
(z. B. Java oder C++) geschrieben. Der Programmcode kann in einem Computer
oder in vernetzten Computern, z. B. einem Überwachungsserver, der mit überwachten
Servern vernetzt ist, geladen (falls erforderlich, nach einer Kompilierung)
und ausgeführt
werden.
-
Unter
erneuter Bezugnahme auf 1 zeigt diese ein Diagramm einer
Architektur auf hoher Ebene eines bevorzugten Ausführungsbeispiels
eines Überwachungssystems 1.
Das System 1 weist überwachte
Knoten 2 auf, beispielsweise Servercomputer, auf denen
Anwendungen 3, z. B. SAPTM 3a oder OracleTM 3b, laufen. Die Server 2 sind
Knoten eines überwachten
IT-Netzwerks, das Netzwerk selbst und die Netzwerkzwischenverbindungen
sind in 1 nicht gezeigt. Die Anwendungen 3a, 3b können auf unterschiedlichen
Plattformen mit unterschiedlichen Betriebssystemen, die ein heterogenes
Netzwerk bilden, laufen. Eine Überwachungssoftwarekomponente 4 (ein „Agent") ist auf jedem der überwachten
Server 2 installiert, die automatisch als eine Hintergrundaufgabe
läuft.
Die Agenten 4 empfangen Ereignisbenachrichtungen und sammeln
Verhaltensdaten von den überwachten
Anwendungen 3a und 3b und von Hardwareressourcen
(Servercomputer 2), die von denselben verwendet werden.
Dieselben sammeln und werten diese Ereignisbenachrichtigungen und Verhaltensdaten
gemäß Regeln 5, 6 aus.
Die Regeln weisen Ereignismuster 5a, 6a, Nachrichtenschlüsselmuster 5b, 6b und
Nachrichtenbeziehungsschlüsselmuster 5c, 6c auf,
die durch einen Benutzer über eine
grafische Benutzerschnittstelle (GUI, GUI = graphical user interface) 7 definiert
werden.
-
Abhängig davon,
welche Ereignisse stattfinden und was durch die Ereignismuster 5a, 6a und
die Nachrichtenschlüsselmuster 5b, 6b angezeigt
wird, filtern die Agenten 4 die Ereignisdaten und erzeugen Überwachungsnachrichten 8', 8'', 8''' gemäß den Nachrichtenschlüsselmustern 5b, 6b und
senden die Überwachungsnachrichten 8', 8'', 8''' an einen Nachrichtenprozessor,
hier einen Überwachungsserver 9. Die
Nachrichten 8 weisen einen Nachrichtenschlüssel 10b auf,
der durch den entsprechenden Agenten 4 gemäß dem, was
durch die entsprechenden Nachrichtenschlüsselmuster 5b, 6b vorgeschrieben
wird, erzeugt wird. Die Nachrichten 8, die mit vorherigen Nachrichten
korreliert werden sollen, weisen ferner einen Nachrichtenbeziehungsschlüssel 10c auf,
der durch den entsprechenden Agenten 4 gemäß dem, was
durch die entsprechenden Nachrichtenbeziehungsschlüsselmuster 5c, 6c vorgeschrieben
ist, erzeugt wird. Der Überwachungsserver 9 speichert
die Nachrichten in einer Überwachungsdatenbank 11, verarbeitet
dieselben und sendet die Nachrichten und die Verarbeitungsergebnisse
an eine Navigatoranzeige 12, die einen Nachrichten-Browser 13 umfasst.
Bei der Navigatoranzeige 12 werden das Netzwerk und die
durch dasselbe vorgesehenen Dienste für den Benutzer in Form einer
zweidimensionalen Netzwerk- und -Dienstabbildung, die den Status
der einzelnen überwachten
Dienste zeigt, visualisiert. Bei dem Nachrichten-Browser 13 werden
die Nachrichten angezeigt.
-
Der Überwachungsserver 9 weist
eine Komparatorkomponente 14 auf, die den Nachrichtenbeziehungsschlüssel 10c einer
neu eingehenden Nachricht 8 mit den Nachrichtenschlüsseln 10b aller
vorherigen Nachrichten, die an dem Nachrichten-Browser 13 angezeigt werden,
vergleicht. Falls derselbe eine Übereinstimmung
zwischen dem Nachrichtenbeziehungsschlüssel 10c und einem
Nachrichtenschlüssel 10b einer
vorherigen Nachricht feststellt, löscht derselbe die vorherige
Nachricht, so dass diese nicht mehr an dem Nachrichten-Browser 13 angezeigt
wird. Die neu eingehende Nachricht wird jedoch an den Nachrichten-Browser 13 gesendet
und an diesem angezeigt, so dass dieselbe tatsächlich die übereinstimmende vorherige Nachricht
ersetzt. Die Netzwerkabbildung bei der Navigatoranzeige 12 wird
automatisch aktualisiert, so dass dieselbe einen Status wiedergibt,
der der neu eingehenden Nachricht und nicht der übereinstimmenden gelöschten Nachricht entspricht.
Bei anderen Ausführungsbeispielen
können
der Vergleich und das Löschen
von Nachrichten gleichermaßen
lokal an dem Nachrichten-Browser durchgeführt werden.
-
Bei
einigen der bevorzugten Ausführungsbeispiele
werden Nachrichten nur von dem Nachrichten-Browser 13 gelöscht, aber
die Datenbank 11 behält
eine vollständige
Aufzeichnung aller Nachrichten. Bei anderen Ausführungsbeispielen werden Nachrichten
auch von der Datenbank 11 gelöscht.
-
Wie
unten ausführlicher
erklärt
wird, kann die Korrelation unterschiedlicher Nachrichten durch die spezielle
Wahl der Nachrichtenbeziehungsschlüsselmuster 5c, 6c frei
definiert werden und muss daher nicht zwangsläufig identische Nachrichten
korrelieren (obgleich dieselbe ermöglicht, dass dies geschieht).
Vorzugsweise ist ein getrennter Mechanismus zur Unterdrückung von
doppelten Ereignissen vorgesehen. Da doppelte Ereignisse allgemein
auf denselben Agenten 4 zurückgehen, kann die Unterdrückung von
doppelten Ereignissen auf der Ebene der Agenten 4 durchgeführt werden.
Zu diesem Zweck speichert ein Agent 4 die letzte Nachricht, die derselbe
erzeugt und an den Überwachungsserver 9 weitergeleitet
hat. Falls sich herausstellt, dass die nächste Nachricht identisch mit
der gespeicherten vorherigen Nachricht ist, wird diese nicht an
einen Überwachungsserver 9 weitergeleitet.
Bei anderen Ausführungsbeispielen
jedoch leitet der Agent 4 auch doppelte Nachrichten zu
Zählungszwecken
an den Überwachungsserver 9 weiter.
Die doppelten Nachrichten werden dann durch den Überwachungsserver 9 identifiziert
und gelöscht.
In jedem Fall kann die Identifizierung von doppelten Ereignissen
auf einer einfachen Identitätsüberprüfung basieren
und erfordert keinen Vergleich eines Nachrichtenbeziehungsschlüssels mit
den Nachrichtenschlüsseln
vorheriger Nachrichten, wie es bei dem allgemeinen Korrelationsmechanismus,
der unten ausführlicher
erklärt wird,
der Fall ist.
-
2 veranschaulicht
die Erzeugung eines Nachrichtenschlüssels mittels eines Beispiels.
Das beispielhafte Ereignis ist eine fehlerhafte „Benutzerumschaltung" (SU, SU = Switch
User), die an einem Knoten namens „trex" von „franke" an „hauptverzeichnis" (root) aufgetreten
ist. Dieses Ereignis erscheint in einer Protokolldatei als ein Systemprotokolleintrag 21,
wie es in 2 angezeigt ist. Abgesehen von
den Daten „SU:-" (was „fehlerhafte
SU" bedeutet), „trex", „franke" und „root" („hauptverzeichnis") trägt der Protokolldateieintrag 21 eine
Datums- und Zeitanzeige, eine Endgerätetypanzeige („ttyp3” = „terminal
type3", „endgerätetyp3") und eine „syslog"-Anzeige („systemprotokoll”-Anzeige).
-
Die
Regeln 5 definieren, ob und wie ein Nachrichtenschlüssel 10b aus
dem Protokolldateieintrag 21 erzeugt wird. Die Regeln 5 weisen
ein Ereignismuster 5a und ein Ereignisbeziehungsmuster 5b auf,
falls eine Nachricht mit anderen Nachrichten korreliert werden soll,
weisen die Regeln ferner ein Nachrichtenbeziehungsschlüsselmuster
auf. Dies wird in Verbindung mit 3 erklärt. Das
Ereignismuster 5a erfüllt
zwei Funktionen: 1. Dasselbe stellt eine Bedin gung dar, da es erfordert,
dass der Protokolldateieintrag ein „systemprotokoll"-Eintrag ist und dass
eine fehlerhafte Benutzerumschaltung (d. h. „SU:-") aufgetreten ist. Nur falls diese Voraussetzung erfüllt wird,
wird ein Nachrichtenschlüssel 10b und somit
eine Nachricht 8 erzeugt; 2. Dasselbe definiert, dass den
Daten, die an den Stellen der Ausdrücke <.knoten> <*.von> und <*.an> (<.node> <*.from> und <*.to>) erscheinen, die Variablennamen „knoten", „von" und „an" zugewiesen werden.
Das Nachrichtenschlüsselmuster 5b stellt
eine Klausel dar, d. h. dasselbe definiert, wie ein Nachrichtenschlüssel 10b aus
dem Protokolldateieintrag 21 erzeugt wird, natürlich vorausgesetzt,
dass die Voraussetzung, die durch die Bedingung definiert ist, eingehalten
wird. In dem Beispiel von 2 umfasst
der Musternachrichtenschlüssel 5b einen
Text „Fehlerhafte
SU von ... an ... auf ..." und
zeigt an, dass die Werte der Variablen „von", „an" und „knoten" in den Text eingefügt werden müssen. Derselbe
umfasst keine Ereignisdaten, die als irrelevant betrachtet werden,
beispielsweise die Datums- und
Zeitanzeige, die Systemprotokollanzeige und die Endgerätetypanzeige.
Demzufolge wird der Nachrichtenschlüssel 10b „Fehlerhafte
SU von franke an hauptverzeichnis auf trex" erzeugt. Somit umfasst die Nachrichtenschlüsselerzeugung
ein Filtern von Daten (da ein Nachrichtenschlüssel nur erzeugt wird, falls
der Protokolleintrag 21 mit dem Ereignismuster 5a übereinstimmt)
sowie ein Komprimieren von Daten, da irrelevante Ereignisdaten in dem
Nachrichtenschlüssel 10b nicht
enthalten sind.
-
Bei
dem Beispiel von 3 ist das Ereignis, über das
durch eine Nachricht berichtet werden soll, eine Verletzung einer
Schwelle bei der Plattenausnutzung. Bei dem vorliegenden Beispiel
ist der Schwellenpegel auf 95% eingestellt. Somit findet ein Ereignis
statt, falls die Ausnutzung einer Platte 95% überschreitet. Das Nachrichtenschlüsselmuster 6b weist
den Text „platten_ausnutz:/...:...:95" auf. Falls die Schwellenverletzung
in einem Objekt/opt an einem Knoten trex stattfindet, werden die
entsprechenden Variablendaten in den Text eingefügt und der erzeugte Nachrichtenschlüssel 10b lautet: „platten_ausnutz:/opt:trex:95".
-
Ein
Beispiel für
ein Nachrichtenbeziehungsschlüsselmuster 6c ist
ebenfalls in 3 gezeigt. Der Zweck des Nachrichtenbeziehungsschlüsselmusters 6c ist,
dass alle vorherigen mit einer Plattenausnutzung verwandten Nachrichten,
die sich auf dasselbe Objekt und denselben Knoten beziehen, mit
der vorliegenden Nachricht korreliert werden sollen, ungeachtet
ihres Schwellenpegels. Daher ist das Nachrichtenbeziehungsschlüsselmuster 6c mit
dem Nachrichtenschlüsselmuster 6b identisch,
mit Ausnahme eines Platzhalters (<*>) an der Stelle des
spezifischen Schwellenpegels „95". Folglich ist der Nachrichtenbeziehungsschlüssel 10c,
der gemäß dem Nachrichtenbeziehungsschlüsselmuster 6c erzeugt
wird, mit dem Nachrichtenschlüssel 10b identisch,
mit Ausnahme eines Platzhalters, der den spezifischen Schwellenpegel
ersetzt. Somit lautet derselbe für
das beispielhafte Ereignis: platten_ausnutz:/opt:trex:<*>.
-
Der
Nachrichtenschlüssel 10b und
der Nachrichtenbeziehungsschlüssel 10c werden
dann von dem Agenten 5 an den Überwachungsserver 9 gesendet.
Wie es in 4 veranschaulicht ist, vergleicht
die Komparatorkomponente 14 des Überwachungsservers den vorliegenden
Nachrichtenbeziehungsschlüssel 10c mit
allen vorherigen Nachrichtenschlüsseln 10b', 10b'', die bei dem Nachrichten-Browser 13 angezeigt
werden. Bei dem Beispiel, das in 4 gezeigt
ist, gibt es einen vorherigen Plattenausnutzungsnachrichtenschlüssel 10b' von einem Knoten
trex, der anzeigt, dass die Plattenausnutzung 75% betrug. Diese
Nachricht ist jetzt veraltet, da die Plattenausnutzung an diesem
Knoten jetzt über
der Schwelle von 95% liegt. Der Nachrichtenschlüssel 10b' stimmt mit
dem Nachrichtenbeziehungsschlüssel 10c der
vorliegenden Nachricht überein.
Insbesondere wird der Platzhalter in dem Nachrichtenbeziehungsschlüssel 10c als übereinstimmend
mit dem Plattenausnutzungswert „75" des Nachrichtenschlüssels 10b' betrachtet.
Aufgrund der positiven Bestimmung des Übereinstimmungstests wird die
Nachricht mit dem Nachrichtenschlüssel 10b' von der Anzeige
gelöscht.
Im Gegensatz dazu wird auch eine andere Nachricht 10b'' gezeigt, die nicht mit dem Nachrichtenbeziehungsschlüssel 10b übereinstimmt
(da dieselbe sich auf einen Knoten „franke" und nicht auf „trex" bezieht). Da bestimmt ist, dass die Übereinstimmung
in diesem Fall negativ ist, wird die Nachricht mit dem Nachrichtenschlüssel 10b'' nicht von der Anzeige gelöscht.
-
5a zeigt,
was durch den Nachrichten-Browser 13 angezeigt wird, bevor
der Vergleich von 4 durchgeführt wird. Die Anzeige zeigt
zwei Nachrichtenschlüssel,
die anzeigen, dass die Plattenausnutzung an dem Knoten trex 75%
und an dem Knoten franke 95% beträgt. Nachdem der Vergleich von 4 durchgeführt wurde,
wurde der zuerst erwähnte
Nachrichtenschlüssel
durch den vorliegenden Nachrichtenschlüssel 10b ersetzt,
was anzeigt, dass die Plattenausnutzung an dem Knoten trex 95% beträgt. Somit
wird die veraltete Nachricht 10b' nicht mehr angezeigt, sobald eine
neuere Nachricht von dem entsprechenden Agenten 4 empfangen
wird.
-
Wie
in 3 und 4 bereits angezeigt ist, verwenden
die Nachrichtenschlüsselmuster
und die Nachrichtenbeziehungsschlüsselmuster dieselbe Regeldefinitionssyntax.
Dies ist weiter durch 6 veranschaulicht, die zeigt,
dass sowohl die Nachrichtenschlüsselmuster 5b als
auch die Nachrichtenbeziehungsschlüsselmuster 5c auf
der Basis desselben Satzes 22 von Regeln und Regelelementen
definiert sind. Diese Tatsache ist sehr vorteilhaft, da dieselbe den
Benutzer von der Notwendigkeit entbindet, zwei unterschiedliche
Regeldefinitionssprachen zu lernen und zu verwenden, und dadurch
die Einrichtungsprozedur und den Betrieb des Überwachungssystems vereinfacht.
-
Aufgrund
der Tatsache, dass sowohl der Nachrichtenschlüssel als auch der Nachrichtenbeziehungsschlüssel ansprechend
auf das Stattfinden eines Ereignisses durch ein und denselben Agenten erzeugt
werden, und dass beide auf derselben Regeldefinitionssyntax basiert
sind, können
das Nachrichtenschlüsselmuster 5b und
das Nachrichtenbeziehungsschlüsselmuster 5c durch
einen Benutzer über
eine allgemeine bzw. gemeinsame Benutzerschnittstelle 23 an
einer allgemeinen bzw. gemeinsamen Stelle 24 eines Überwachungscomputerprogramms 25 definiert
werden, wie es in 7 veranschaulicht ist. Die „allgemeine
bzw. gemeinsame Stelle" kann
beispielsweise eine allgemeine bzw. gemeinsame Klasse oder Routine
des Programms sein.
-
8 veranschaulicht
das Nachrichtenkorrelationsverfahren, das durch den Agenten 4 und
den Überwachungsserver 9 durchgeführt wird.
Bei Schritt S1 findet ein Ereignis statt. Bei Schritt S2 ermittelt
der Agent 4, ob das Ereignis mit einem der Ereignismuster 5a,
die in den Regeln 5 enthalten sind, übereinstimmt. Falls die Antwort
positiv ist, wird bei Schritt S3 ein Nachrichtenschlüssel 10b gemäß dem entsprechenden
Nachrichtenschlüsselmuster 5b erzeugt.
Falls die Regeln 5 auch ein Nachrichtenbeziehungsschlüsselmuster 5c enthalten,
wird bei Schritt S4 ein Nachrichtenbeziehungsschlüssel 10c gemäß dem Nachrichtenbeziehungsschlüsselmuster 5c erzeugt.
Die Schritte S2 bis S4 werden durch den Agenten ausgeführt, der
dem überwachten
Knoten 2 zugeordnet ist, an dem das Ereignis stattfand.
Anschließend
wird bei Schritt S5 die Nachricht 8 mit dem Nachrichtenschlüssel 5b und
dem Nachrichtenbeziehungsschlüssel 5c an
den Überwachungsserver 9 gesendet.
Bei Schritt S6 ermittelt der Überwachungsserver 9,
ob der Nachrichtenbeziehungsschlüssel 10c mit
den Nachrichtenschlüsseln 10b der vorherigen
Nachrichten übereinstimmt.
Falls derselbe eine übereinstimmende
vorherige Nachricht findet, löscht
derselbe diese bei Schritt S7 von einer Anzeige bei dem Nachrichten-Browser 13.
Bei Schritt S8 leitet der Überwachungsserver 9 die
Anzeige der vorliegenden Nachricht 8 bei dem Nachrich ten-Browser 13 ein,
so dass es erscheint, als ob die vorherige Nachricht durch die vorliegende
Nachricht 8 ersetzt worden wäre. Die Schritte S6 bis S8
werden durch den Überwachungsserver 9 zusammen
mit dem Nachrichten-Browser 13 durchgeführt. Sobald ein anderes Ereignis
stattfindet, wird die Sequenz der Schritte S1 bis S8 wieder ausgeführt und
somit eine quasi endlose Schleife gebildet.
-
Somit
ist ein allgemeiner Zweck der offenbarten Ausführungsbeispiele, ein verbessertes
Verfahren, Computersystem und Computerprogramm zum Überwachen
von Diensten in einem IT-Netzwerk zu schaffen. Insbesondere ermöglichen
die offenbarten Ausführungsbeispiele
eine Definition der Korrelationsanalyse durch den Benutzer. Die
für die
Korrelationsanalyse benötigten
Computer- und Datenbankzugriffsressourcen werden verringert. Eine
Korrelation von Nachrichten ist sogar dann möglich, falls die verfügbaren Nachrichten
nicht die vollständigen
Informationen enthalten, die für
eine Korrelationsüberprüfung benötigt werden.
Somit ermöglichen
die offenbarten Ausführungsbeispiele
eine einfachere Unterdrückung
identischer oder verwandter Ereignisse.