-
TECHNISCHES GEBIET
-
Der Gegenstand dieser Erfindung bezieht sich im Allgemeinen auf das Management von Computersystemen. Insbesondere stellen Aspekte der vorliegenden Erfindung eine Lösung für ein verbessertes passives Überwachen in einer komplexen virtuellen Umgebung bereit.
-
HINTERGRUND
-
In der heutigen elektronischen Umgebung unterliegen Computersysteme ständigen Veränderungen. Um mit diesen Veränderungen Schritt zu halten, ist es wichtig, dass Benutzer dieser Systeme in der Lage sind, die Systeme zu überwachen. Ein Überwachen kann in mehrere verschiedene Typen klassifiziert werden, zu denen aktives Überwachen und passives Überwachen gehören. Zu passivem Überwachen gehört jede Art von Beobachtungen, die das Computersystem nicht verändern. Dabei kann passives Überwachen ein Abtasten eines Dateisystems, um eine Konformitätsprüfung auszuführen, ein Abtasten einer Registratur, um zu ermitteln, welche Anwendungen aktuell in dem System installiert sind, eine Sicherheitsabtastung, eine Dateisystem-Prüfung, ein Überwachen der Lizenznutzung und dergleichen beinhalten. Im Unterschied dazu werden Aktivitäten wie etwa Fehlerbehebung, Anwenden eines Sicherheits-Update usw., die eine Modifikation des Computersystems beinhalten, als aktives Überwachen bezeichnet.
-
Standardisierung kann ein Gewinn beim Verwalten von effektiven Systemen darstellen. Standardisierung eines Datenzentrums hilft Kunden, Unterhaltungskosten durch Begrenzen der Anzahl der verschiedenen Systemvarianten zu kontrollieren, die in dem Datenzentrum betrieben werden. Dadurch können Kosten proportional zu der Anzahl von unterschiedlichen Software-Konfigurationen und nicht proportional zu den verschiedenen Instanzen dieser Konfigurationen ansteigen.
-
Um einige der Vorteile der Standardisierung zu realisieren, können Anbieter eines Computersystems sicherstellen, dass alle verwendeten Instanzen ihren Lebenszyklus an einem oder mehreren Standard-„Abbildern” oder im Voraus konfigurierten Software-Paketen beginnen. Um Ressourcen zu sparen, wird jeder einzelne Typ der verwendeten Instanz häufig auf einen Typ einer Task zugeschnitten, die der Benutzer der Instanz auszuführen wünscht. Das kann erfolgen, indem Funktionen eingeschlossen werden, die für ein Ausführen des bestimmten Typs von Task nützlich sind, und jene Funktionen weggelassen werden, bei denen das nicht der Fall ist. Außerdem kann die Wirksamkeit durch das Verwenden spezieller Betriebssysteme, Middleware und/oder Anwendungen verbessert werden, die den bestimmten Typ von Task wirksam ausführen, zu Lasten jener, bei denen das nicht der Fall ist. Dadurch können mehrere unterschiedliche Typen der verwendeten Instanzen erforderlich werden, die aus verschiedenen im Voraus konfigurierten Software-Paketen erzeugt werden, die unterschiedliche Kombinationen von Betriebssystemen, Middleware, Anwendungen usw. aufweisen, die auf demselben Computer ausgeführt werden.
-
Das kann problematisch werden, wenn es dazu kommt, Operationen des passiven Überwachens auszuführen, die an einer großen Anzahl der verwendeten Instanzen auszuführen sind. Ein Beispiel dieses Operationstyps ist die Drift-Erkennung. Nachdem eine verwendete Instanz die Ausführung beginnt, kann sie infolge von Änderungen in der Instanz von dem standardisierten Zustand abweichen. Diese Änderungen können zufällig, beabsichtigt, jedoch ohne schädlichen Vorsatz, oder von Natur aus böswillig sein. In jedem Fall können diese nicht gewollten Abweichungen bewirken, dass die bestimmte Instanz nicht korrekt funktioniert und/oder die Leistungsfähigkeit der Instanz im gesamten Computersystem beeinflusst wird, wobei möglicherweise weitere Instanzen beeinträchtigt werden. Wenn jedoch die Anzahl der Typen von Instanzen zunimmt, kann es bei der ansteigenden Zahl von Betriebssystemen, Middleware und Anwendungen immer schwieriger werden, ein einzelnes Tool für passives Überwachen bereitzustellen, das für alle Typen verwendet werden kann. Des Weiteren kann jeder Versuch, das Tool zu aktualisieren oder anzupassen, bewirken, dass das Tool immer mehr Ressourcen benötigt oder instabil wird.
-
ZUSAMMENFASSUNG
-
Im Allgemeinen stellen Aspekte der vorliegenden Erfindung eine Lösung zum passiven Überwachen eines Computersystems bereit. Bei einer Ausführungsform wirkt ein Indexierungsagent in einem physischen Server, der eine Vielzahl von virtuellen Servern aufweist. Der Indexierungsagent weist eine Struktur mit einer Vielzahl von Indexierungsschichten auf. Jede dieser Indexierungsschichten ist so ausgelegt, dass sie einen virtuellen Server auf einer anderen Abstraktionsebene indexiert, um Merkmale der Abstraktionsebene zu extrahieren, die Änderungen in dem virtuellen Server angeben. Des Weiteren weist jede der Indexierungsschichten eine Anwendungsprogrammierschnittstelle auf, die so ausgelegt ist, dass sie ein oder mehrere externe Indexierungsmodule aufnimmt, die in die Struktur einzufügen sind. Jedes Indexierungsmodul ist so ausgelegt, dass es dem Indexierungsagenten Befehle bereitstellt, während die Indexierungsschicht, in die es einzufügen ist, die zugehörige Abstraktionsebene der virtuellen Maschine indexiert.
-
Ein erster Aspekt der Erfindung stellt ein Verfahren zum passiven Überwachen eines Computersystems bereit, wobei das Verfahren aufweist: Zugreifen auf einen virtuellen Server durch einen Indexierungsagenten, wobei der Indexierungsagent aufweist: eine Indexierungsstruktur mit einer Vielzahl von Indexierungsschichten, wobei jede Indexierungsschicht von der Vielzahl von Indexierungsschichten eine Anwendungsprogrammierschnittstelle (API) aufweist; und ein erstes Indexierungsmodul, das in eine erste Indexierungsschicht von der Vielzahl von Indexierungsschichten unter Verwendung einer API der ersten Schicht eingefügt ist; Abrufen eines virtuellen Abbilds des virtuellen Servers durch den Indexierungsagenten; für jede Indexierungsebene von der Vielzahl von Indexierungsebenen Indexieren einer Abstraktionsebene von der Vielzahl von eindeutigen Abstraktionsebenen des virtuellen Abbilds durch den Indexierungsagenten, um Merkmale der Abstraktionsebene zu extrahieren, die Änderungen in dem virtuellen Server angeben, wobei das Indexieren das erste Indexierungsmodul beinhaltet, das Befehle an den Indexierungsagenten bereitstellt, während die erste Indexierungsschicht eine erste Abstraktionsebene des virtuellen Systems indexiert, das durch die erste Indexierungsschicht indexiert wird; und Analysieren wenigstens eines der Merkmale der Abstraktionsebene, um passives Überwachen des virtuellen Servers auszuführen.
-
Ein zweiter Aspekt der Erfindung stellt ein System zum passiven Überwachen eines Computersystems bereit, wobei das System aufweist: einen physischen Server mit einer Vielzahl von Instanzen des virtuellen Systems, die darin ausgeführt werden; und einen Indexierungsagenten, der in dem physischen Server betrieben wird, wobei der Indexierungsagent aufweist: eine Indexierungsstruktur mit einer Vielzahl von Indexierungsschichten, wobei jede von der Vielzahl von Indexierungsschichten so ausgelegt ist, dass sie eine Instanz eines virtuellen Systems auf einer eindeutigen Abstraktionsebene indexiert, um Merkmale der Abstraktionsebene zu extrahieren, die Änderungen in dem virtuellen Server angeben, und eine Anwendungsprogrammierschnittstelle (API) aufweist; und ein Indexierungsmodul, wobei das Indexierungsmodul so ausgelegt ist, dass es in eine erste Schicht von der Vielzahl von Indexierungsschichten unter Verwendung einer API der ersten Schicht eingefügt wird, und so ausgelegt ist, dass es Befehle an den Indexierungsagenten bereitstellt, während die erste Indexierungsschicht eine Abstraktionsebene des virtuellen Systems indexiert, das durch die erste Indexierungsschicht indexiert wird.
-
Ein dritter Aspekt der Erfindung stellt ein Computerprogrammprodukt bereit, das in einem computerlesbaren Medium verkörpert ist, um ein Verfahrens zum passiven Überwachen eines Computersystems umzusetzen, wobei das Verfahren aufweist: Zugreifen auf einen virtuellen Server durch einen Indexierungsagenten, wobei der Indexierungsagent aufweist: eine Indexierungsstruktur mit einer Vielzahl von Indexierungsschichten, wobei jede aus der Vielzahl von Indexierungsschichten eine Anwendungsprogrammierschnittstelle (API) aufweist; und ein erstes Indexierungsmodul, das in eine erste Indexierungsschicht aus der Vielzahl von Indexierungsschichten unter Verwendung einer API der ersten Schicht eingefügt wird; Abrufen eines virtuellen Abbilds des virtuellen Servers durch den Indexierungsagenten; für jede aus der Vielzahl von Indexierungsebenen Indexieren von einer aus einer Vielzahl von eindeutigen Indexierungsebenen des virtuellen Abbilds durch den Indexierungsagenten, um Merkmale der Abstraktionsebene zu extrahieren, die Änderungen in dem virtuellen Server angeben, wobei das Indexieren das erste Indexierungsmodul enthält, das Befehle an den Indexierungsagenten bereitstellt, während die erste Indexierungsschicht eine erste Abstraktionsebene des virtuellen Systems indexiert, das durch die erste Indexierungsschicht indexiert wird; und Analysieren wenigstens eines der Merkmale der Abstraktionsebene, um ein passives Überwachen des virtuellen Servers auszuführen.
-
Ein vierter Aspekt der Erfindung stellt ein Verfahren zum Verwenden einer Anwendung zum passiven Überwachen eines Computersystems bereit, wobei das Verfahren aufweist: Bereitstellen einer Computerinfrastruktur, die in der Lage ist: auf einen virtuellen Server durch einen Indexierungsagenten zuzugreifen, wobei der Indexierungsagent aufweist: eine Indexierungsstruktur mit einer Vielzahl von Indexierungsschichten, wobei jede der Indexierungsschichten eine Anwendungsprogrammierschnittstelle (API) aufweist; und ein erstes Indexierungsmodul, das in eine erste Indexierungsschicht aus der Vielzahl von Indexierungsschichten unter Verwendung einer API der ersten Schicht eingefügt wird; ein virtuelles Abbild des virtuellen Servers durch den Indexierungsagenten abzurufen; für jede aus der Vielzahl von Indexierungsebenen eine von einer Vielzahl von eindeutigen Abstraktionsebenen des virtuellen Abbilds durch den Indexierungsagenten zu indexieren, um Merkmale der Abstraktionsebene zu extrahieren, die Änderungen in dem virtuellen Server angeben, wobei das Indexieren das erste Indexierungsmodul enthält, das Befehle an den Indexierungsagenten bereitstellt, während die erste Indexierungsschicht die erste Abstraktionsebene des virtuellen Systems indexiert, das durch die erste Indexierungsschicht indexiert wird; und wenigstens eines der Merkmale der Abstraktionsebene zu analysieren, um ein passives Überwachen des virtuellen Servers auszuführen. Des Weiteren könnte jede der Komponenten der vorliegenden Erfindung durch einen Dienstanbieter verwendet, verwaltet, bedient usw. werden, der anbietet, ein passives Überwachen in einem Computersystem umzusetzen.
-
Ausführungsformen der vorliegenden Erfindung stellen außerdem verwandte Systeme, Verfahren und/oder Programmprodukte bereit.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Diese und weitere Merkmale dieser Erfindung werden aus der folgenden genauen Beschreibung der verschiedenen Aspekte leichter verstanden, die in Verbindung mit den beigefügten Zeichnungen erfolgt, bei denen:
-
1 ein veranschaulichendes Computersystem gemäß Ausführungsformen der vorliegenden Erfindung zeigt.
-
2 eine Umgebung eines virtualisierten Datenzentrums gemäß Ausführungsformen der Erfindung zeigt.
-
3 einen beispielhaften virtuellen Server gemäß Ausführungsformen der Erfindung zeigt.
-
4 einen Indexierungsagenten gemäß Ausführungsformen der Erfindung zeigt.
-
5 einen beispielhaften Server zeigt, der einen Indexierungsagenten gemäß Ausführungsformen der Erfindung aufweist.
-
6 die Funktionsweise einer Indexierungsebene in einem Indexierungsagenten gemäß Ausführungsformen der Erfindung zeigt.
-
7 eine beispielhafte Vergleichsanalyse gemäß Ausführungsformen der Erfindung zeigt.
-
Die Zeichnungen sind nicht zwingend maßstabsgerecht. Die Zeichnungen sind lediglich schematische Darstellungen, die nicht vorgesehen sind, um spezifische Parameter der Erfindung genau darzustellen. Die Zeichnungen sollen lediglich typische Ausführungsformen der Erfindung darstellen und sollten daher nicht als den Umfang der Erfindung beschränkend betrachtet werden. In den Zeichnungen repräsentieren gleiche Nummerierungen gleiche Elemente.
-
GENAUE BESCHREIBUNG
-
Wie oben angegeben wird in Aspekten der vorliegenden Erfindung eine Lösung zum passiven Überwachen eines Computersystems bereitgestellt. Ein Indexierungsagent wird in einem physischen Server betrieben, der eine Vielzahl von virtuellen Servern aufweist. Der Indexierungsagent weist eine Struktur mit einer Vielzahl von Indexierungsschichten auf. Jede dieser Indexierungsschichten ist so ausgelegt, dass sie den virtuellen Server auf einer anderen Abstraktionsebene indexiert, um Merkmale der Abstraktionsebene zu extrahieren, die Änderungen in dem virtuellen Server angeben. Des Weiteren weist jede der Indexierungsschichten eine Anwendungsprogrammierschnittstelle auf, die so ausgelegt ist, dass sie ein oder mehrere externe Indexierungsmodule aufnimmt, die in die Struktur einzufügen sind. Jedes Indexierungsmodul ist so ausgelegt, dass es Befehle an den Indexierungsagenten bereitstellt, wenn die Indexierungsschicht, in die es eingefügt ist, die zugehörige Abstraktionsebene der virtuellen Maschine indexiert.
-
In den Zeichnungen zeigt 1 eine beispielhafte Umgebung 100 zum passiven Überwachen eines Computersystems. Dabei enthält die Umgebung 100 ein Computersystem 102, das einen hier beschriebenen Prozess ausführen kann, um ein Computersystem passiv zu überwachen. Das Computersystem 102 ist insbesondere so gezeigt, dass es eine Datenverarbeitungseinheit 104 enthält, die ein Programm 140 zum passiven Überwachen enthält, damit die Datenverarbeitungseinheit 104 funktionsmäßig in der Lage ist, ein Computersystem durch Ausführen eines hier beschriebenen Prozesses passiv zu überwachen.
-
Die gezeigte Datenverarbeitungseinheit 104 enthält eine Verarbeitungskomponente 106 (z. B. einen oder mehrere Prozessoren), einen Speicher 110, ein Speichersystem 118 (z. B. eine Speicherhierarchie), eine Eingabe/Ausgabe-(E/A-)-Schnittstellenkomponente 114 (z. B. eine oder mehrere E/A-Schnittstellen und/oder -Einheiten) und einen Datenübertragungspfad 112. Die Verarbeitungskomponente 106 führt im Allgemeinen Programmcode aus wie etwa ein Programm 140 zum passiven Überwachen, das wenigstens teilweise im Speicher 110 gespeichert ist. Dabei kann die Verarbeitungskomponente 106 eine einzelne Verarbeitungseinheit aufweisen oder kann über eine oder mehrere Verarbeitungseinheiten an einem oder mehreren Standorten verteilt sein.
-
Der Speicher 110 kann außerdem einen lokalen Speicher, der während einer tatsächlichen Ausführung des Programmcode verwendet wird, Massenspeicher (Speicher 118) und/oder Cache-Speicher (nicht gezeigt) enthalten, die eine vorübergehende Speicherung von wenigstens einem bestimmten Programmcode gewährleisten, um die Häufigkeit zu vermindern, wie oft Code während der Ausführung vom Massenspeicher 118 abgerufen werden muss. Daher kann der Speicher 110 jeden bekannten Typ von temporären oder dauerhaften Datenspeichermedien aufweisen, darunter magnetische Medien, optische Medien, Direktzugriffsspeicher (RAM), Festwertspeicher (ROM), einen Daten-Cachespeicher, ein Datenobjekt usw. Darüber hinaus kann sich der Speicher 110 ähnlich wie die Verarbeitungseinheit 116 an einem einzigen physischen Standort befinden, einen oder mehrere Typen des Datenspeichers aufweisen oder über eine Vielzahl von physischen Systemen in verschiedenen Formen verteilt sein.
-
Während Programmcode ausgeführt wird, kann die Verarbeitungskomponente 106 Daten verarbeiten, was ein Lesen und/oder Schreiben von transformierten Daten vom/zum Speicher 110 und/oder von/zur E/A-Komponente 114 für eine weitere Verarbeitung zur Folge haben kann. Der Pfad 112 stellt eine direkte oder indirekte Datenübertragungsverbindung zwischen allen Komponenten im Computersystem 102 bereit. Bei der E/A-Schnittstellenkomponente 114 kann es sich um eine oder mehrere manuelle E/A-Einheiten handeln, die es einer Benutzerperson ermöglichen, mit einem Computersystem 102 und/oder einer oder mehreren Datenübertragungseinheiten zu interagieren, damit ein Systembenutzer 120 mit dem Computersystem 102 unter Verwendung eines beliebigen Typs von Datenübertragungsverbindung kommunizieren kann.
-
Dabei kann das Programm 140 zum passiven Überwachen eine Gruppe von Schnittstellen (z. B. grafische Benutzeroberfläche(n), Anwendungsprogrammoberfläche und/oder dergleichen) verwalten, die ermöglichen, dass eine Person und/oder Systembenutzer 120 mit dem Programm 140 zum passiven Überwachen interagieren. Zu Benutzern 120 könnten System-Administratoren und/oder Clients gehören, die unter anderem Ressourcen in einer Umgebung 200 eines virtuellen Datenzentrums nutzen (2). Des Weiteren kann das Programm 140 zum passiven Überwachen die Daten im Speichersystem 118, darunter eine Indexierungsstruktur 152 und/oder Indexierungsmodule 154, ohne auf diese beschränkt zu sein, unter Verwendung einer beliebigen Lösung verwalten (z. B. speichern, abrufen, erzeugen, manipulieren, organisieren, präsentieren usw.).
-
In jedem Fall kann das Computersystem 102 eine oder mehrere Datenverarbeitungseinheiten 104 (z. B. Universal-Datenverarbeitungs-Produkte) aufweisen, die in der Lage sind, Programmcode auszuführen wie etwa das Programm 140 zum passiven Überwachen, das darin installiert ist. Es ist klar, dass der hier verwendete Ausdruck „Programmcode” für jede Sammlung von Befehlen, in jeder Sprache, jedem Code oder jeder Schreibweise, verwendet wird, die bewirken, dass eine Datenverarbeitungseinheit, die eine Informationsverarbeitungskapazität aufweist, eine bestimmte Aktion entweder direkt oder nach einer Kombination aus Folgendem ausführt: (a) Umsetzung in eine andere Sprache, einen anderen Code oder eine andere Schreibweise; (b) Reproduktion in einer anderen materiellen Form; und/oder (c) Dekompression. Dabei kann das Programm 140 zum passiven Überwachen als beliebige Kombination aus Systemsoftware und/oder Anwendungssoftware verkörpert sein. In jedem Fall besteht die technische Wirkung des Computersystems 102 darin, Verarbeitungsbefehle an eine Datenverarbeitungseinheit 104 bereitzustellen, um in einem Computersystem 102 passiv zu überwachen.
-
Des Weiteren kann das Programm 140 zum passiven Überwachen unter Verwendung einer Gruppe von Modulen 142 bis 148 umgesetzt sein. In diesem Fall kann ein Modul 142 bis 148 das Computersystem 102 befähigen, eine Gruppe von Tasks auszuführen, die durch das Programm 140 zum passiven Überwachen verwendet wird, und kann getrennt von anderen Abschnitten des Programms 140 zum passiven Überwachen separat entwickelt und/oder umgesetzt werden. Der hier verwendete Ausdruck „Komponente” wird für jede Konfiguration aus Hardware mit oder ohne Software verwendet, die die in Verbindung mit ihr beschriebene Funktionalität unter Verwendung einer beliebigen Lösung umsetzt, während der Ausdruck „Modul” Programmcode bezeichnet, der ein Computersystem 102 befähigt, die in Verbindung mit ihm beschriebenen Aktionen unter Verwendung einer beliebigen Lösung umzusetzen. Wenn sich ein Modul in einem Speicher 110 eines Computersystems 102 befindet, das eine Verarbeitungskomponente 106 enthält, ist es ein wesentlicher Teil einer Komponente, die die Aktionen umsetzt. Es ist trotzdem klar, dass zwei oder mehrere Komponenten, Module und/oder Systeme einen bestimmten Teil/die Gesamtheit ihrer entsprechenden Hardware und/oder Software gemeinsam nutzen können. Es ist ferner klar, dass ein bestimmter Teil der hier erläuterten Funktionalität möglicherweise nicht umgesetzt wird oder als Teil des Computersystems 102 eine zusätzliche Funktionalität enthalten sein kann.
-
Wenn das Computersystem 102 mehrere Datenverarbeitungseinheiten 104 aufweist, befindet sich in jeder Datenverarbeitungseinheit 104 möglicherweise lediglich ein Abschnitt des Programms 140 zur passiven Überwachung (z. B. ein oder mehrere Module 142 bis 148). Es ist jedoch klar, dass das Computersystem 102 und das Programm 140 zum passiven Überwachen lediglich Beispiele von verschiedenen möglichen gleichwertigen Computersystemen sind, die einen hier beschriebenen Prozess ausführen können. Dabei kann bei anderen Ausführungsformen die durch das Computersystem 102 und das Programm 140 zum passiven Überwachen bereitgestellte Funktionalität wenigstens teilweise durch eine oder mehrere Datenverarbeitungseinheiten umgesetzt werden, die eine beliebige Kombination aus Universal- und/oder Spezial-Hardware mit oder ohne Programmcode enthalten. Bei jeder Ausführungsform können Hardware und Programmcode gegebenenfalls unter Verwendung von Standard-Konstruktions- bzw. Programmiertechniken erzeugt werden.
-
Wenn das Computersystem 102 mehrere Datenverarbeitungseinheiten 104 aufweist, können die Datenverarbeitungseinheiten trotzdem über einen beliebigen Typ der Datenübertragungsverbindung Daten austauschen. Während ein hier beschriebener Prozess ausgeführt wird, kann das Computersystem 102 des Weiteren mit einem oder mehreren anderen Computersystemen unter Verwendung von einem beliebigen Typ der Datenübertragungsverbindung Daten austauschen. Die Datenübertragungsverbindung kann in jedem Fall eine beliebige Kombination aus verschiedenen Typen von leitungsgestützten und/oder drahtlosen Verbindungen aufweisen, eine beliebige Kombination aus einem oder mehreren Typen von Netzwerken aufweisen; und/oder eine beliebige Kombination aus verschiedenen Typen von Übertragungstechniken und -protokollen nutzen.
-
Wie hier erläutert ermöglicht das Programm 140 zum passiven Überwachen dem Computersystem 102, in einem Computersystem passiv zu überwachen. Dabei ist das Programm 140 zum passiven Überwachen so gezeigt, dass es ein Zugriffs-Modul 142 zum Zugreifen auf den virtuellen Server, ein Modul 144 zum Abrufen des virtuellen Abbilds, ein Modul 146 zum Indexieren des virtuellen Abbilds und ein Modul 148 zum Analysieren des virtuellen Abbilds enthält.
-
Wenn das Computersystem 102 das Modul 142 zum Zugreifen auf den virtuellen Server ausführt, greift es auf einen virtuellen Server über einen Indexierungsagenten zu, der in einer Indexierungs-Funktionseinheit enthalten sein kann.
-
In 2 ist eine Umgebung 200 eines virtualisierten Datenzentrums gemäß Ausführungsformen der Erfindung gezeigt. Wie gezeigt weist die Umgebung 200 eines virtualisierten Datenzentrums einen physischen Server 210 auf, der verwendet werden kann, um alle oder einen Teil der Funktionen des Programms 140 (1) zum passiven Überwachen auszuführen. Dabei kann es sich bei dem physischen Server 210 um einen Server eines beliebigen Herstellers handeln, der eine Plattform betreibt, die so ausgelegt ist, dass sie mehrere Instanzen eines virtuellen Servers 230 betreibt. Wie in 2 dargestellt kann eine Umgebung 200 eines virtualisierten Datenzentrums außerdem eine beliebige Anzahl von zugehörigen physischen Servern 212, 214, 216 enthalten. Die zugehörigen physischen Server 212, 214, 216 können für Datenübertragungszwecke über ein Netzwerk 220 mit dem physischen Server 210 verbunden sein. Das Netzwerk 220 kann dem physischen Server 210 ermöglichen, mit zugehörigen physischen Servern 212, 214, 216 und/oder physischen Servern 212, 214, 216 Daten auszutauschen, um untereinander unter Verwendung von Datenübertragungslösungen oder Lösungen, die gegenwärtig bekannt sind oder zukünftig entwickelt werden, Daten auszutauschen. Bei einigen Ausführungsformen kann das Netzwerk 220 im Rahmen einer Cloud-Datenverarbeitung betrieben werden, indem es z. B. Datenverarbeitung, Software, Datenzugriff und weitere Dienste bereitstellt, die keine Kenntnisse des Endbenutzers über den physischen Standort und die Konfiguration des Netzwerks 220 erfordern, das die Dienste bereitstellt.
-
Wie oben festgestellt kann in jedem Fall jede Instanz des virtuellen Servers 230 im physischen Server 210 ohne Aufgabe ihrer Unabhängigkeit gleichzeitig mit anderen Systeminstanzen 230 ausgeführt werden. Das bedeutet, dass jede der Instanzen des virtuellen Servers 230 unabhängig von anderen Instanzen des virtuellen Servers 230 ausgeführt wird und keine Daten mit anderen Instanzen des virtuellen Servers 230 gemeinsam nutzt, selbst wenn die Instanzen des virtuellen Servers 230 in demselben physischen Server 210 ausgeführt werden. Bei Kenntnis der Charakteristiken dieser Instanzen des virtuellen Servers 230 kann ein einzelner physischer Server 210 eine sehr große Anzahl von Instanzen des virtuellen Servers 230 gleichzeitig ausführen. Die unabhängige Funktionsweise dieser Instanzen des virtuellen Servers 230 stellt sicher, dass die Anzahl von gleichzeitigen Instanzen des virtuellen Servers 230 lediglich durch die Hardware-Beschränkungen des physischen Servers 210 begrenzt ist.
-
In 3 ist ein beispielhafter virtueller Server 230 gemäß Ausführungsformen der Erfindung gezeigt. Es sollte klar sein, dass sich der virtuelle Server 230 von einer virtuellen Verarbeitungsmaschine (process vrtual machine) unterscheidet. Eine virtuelle Verarbeitungsmaschine ist eine plattformabhängige Steuerroutine (engine) wie z. B. eine Java Virtual Machine, die plattformabhängigen Code ausführt, der in einer höheren Programmiersprache geschrieben ist wie etwa Java, um eine spezielle Task auszuführen (Java und Java Virtual Machine sind eine Handelsmarke von Sun Microsystems in den Vereinigten Staaten und/oder in weiteren Ländern). Im Unterschied dazu handelt es sich bei dem virtuellen Server 230 der aktuellen Erfindung um ein virtuelles System, das eine vollständige Datenverarbeitungsumgebung simuliert. Bei dem virtuellen Server 230 der aktuellen Erfindung handelt es sich um eine Umgebung, in der nicht nur eine einzelne Task, sondern eine Vielfalt von Tasks, Funktionen, Operationen usw. durch einen Benutzer 120 ausgeführt werden können (1). Daher kann der virtuelle Server 230 so beschaffen sein, dass er aus Sicht eines Benutzers 120 ein eigenständiges Computersystem simuliert (1).
-
Dabei enthält der virtuelle Server 230 auf der untersten Ebene einen Virtualisierungs-Hypervisor 232. Der Virtualisierungs-Hypervisor 232 stellt im Einzelnen eine Plattform bereit, die ermöglicht, dass mehrere „Gast”-Systeme gleichzeitig auf dem physischen Server 210 betrieben werden können (2). Dabei stellt der Virtualisierungs-Hypervisor 232 eine Abstraktionsebene zwischen der Hardware-Ebene des physischen Servers 210 (2) und den höheren Software-Funktionen des virtuellen Servers 230 bereit. Um diese Software-Funktionen bereitzustellen, enthält der virtuelle Server 230 ein Software-Paket 234, das auch als ein Abbild bezeichnet werden kann. Das Software-Paket 234 enthält alles, was zum Simulieren einer „Gast”-Instanz des virtuellen Servers 230 auf dem physischen Server 210 über einen Virtualisierungs-Hypervisor 232 erforderlich ist.
-
Daten im Software-Paket 234 können von einer Vielzahl von unterschiedlichen Standpunkten betrachtet werden. Bei der untersten Ebene der Feinteiligkeit kann es sich um eine einzelne Plattenblockebene 236N handeln (z. B. ein Plattenblock bei einem Offset von 5.032 vom Beginn des Software-Pakets 234). Bei einer höheren Abstraktionsebene kann es sich um eine Plattenpartitionsebene 236F handeln, die den Zugriff auf die Plattenpartitionen des Software-Pakets 234 bereitstellt (z. B. die Swap-Partition, die Boot-Partition, jede Dateisystem-Partition usw.). Einige Abstraktionsebenen 236A bis 236N weiter oben können eine Dateistruktur-Ebene 236D und eine Dateiinhalt-Ebene 236E den Zugang auf die Struktur und den Inhalt des Dateisystem-Software-Pakets 234 bereitstellen. Außerdem können solche Abstraktionsebenen 236A bis 236N wie eine Anwendungsebene 236C, eine Middleware-Ebene 236B und eine Betriebssystemebene 236A ebenfalls im Software-Paket 234 enthalten sein. Es sollte klar sein, dass die hier aufgeführten Abstraktionsebenen 236A bis 236N nicht als vollständig anzusehen sind. Es sollte stattdessen klar sein, dass weitere Abstraktionsebenen 236A bis 236N enthalten sein könnten und/oder spezielle Abstraktionsebenen 236A bis 236N, auf die in 3 Bezug genommen wird, möglicherweise nicht verwendet werden. Außerdem sollte die Reihenfolge, in der die Abstraktionsebenen 236A bis 236N in der Darstellung aufgelistet werden, nicht als einschränkend ausgelegt werden. Des Weiteren könnten die hier gezeigten Abstraktionsebenen 236A bis 236N während des Betriebs verknüpft, in weitere Ebenen unterteilt oder in Funktionskategorien angeordnet werden, die sich von den dargestellten Funktionskategorien unterscheiden. Weiterhin könnten bei einigen Ausführungsformen einige oder alle Abstraktionsebenen 236A bis 236N von anderen Abstraktionsebenen 236A bis 236N abhängig sein, so dass eine oder mehrere Abstraktionsebenen 236A bis 236N in einer bestimmten Abstraktionsebene 236A bis 236N zusammengefasst werden.
-
Wie oben dargestellt kann eine Standardisierung auf dieser Ebene die Unterhaltungskosten beträchtlich verringern, indem die Anzahl von unterschiedlichen Variationen von Systemen begrenzt wird, die in einer Umgebung 200 eines virtualisierten Datenzentrums betrieben werden. Um das zu erreichen, kann aus einem Paket von einer begrenzten Anzahl von im Voraus konfigurierten Paketen ein spezielles Software-Paket 234 erzeugt werden. Diese im Voraus konfigurierten Pakete können durch Anbieter der Umgebung 200 eines virtualisierten Datenzentrums für ihre besondere Funktion optimiert werden. Wenn z. B. ein Benutzer 120 (1) eine Datenbank-Funktionalität nutzen möchte, können speziell für diesen Benutzer 120 ein oder mehrere virtuelle Server 230 erzeugt werden, die dasselbe Software-Paket 234 auf der Grundlage desselben im Voraus konfigurierten Pakets aufweisen. Diese Software-Pakete 234 könnten z. B. ein Betriebssystem eines Typs, der zum Ausführen von Datenbank-Funktionen geeignet ist, Middleware, die ein Datenbank-Managementsystem enthält, und Anwendungen, die so eingerichtet sind, dass sie mit dem Datenbank-Managementsystem ausgeführt werden, enthalten. Wenn ein Benutzer 120 (1) eine Web-Server-Funktionalität nutzen möchte, können gleichfalls ein oder mehrere virtuelle Server 230, die dasselbe Software-Paket 234 auf der Grundlage eines im Voraus konfigurierten Pakets aufweisen, das von dem für das Datenbank-Managementsystem verwendete im Voraus konfigurierte Paket verschieden ist, speziell für diesen Benutzer 120 (1) erzeugt werden. Diese Software-Pakete 234 könnten z. B. ein Betriebssystem eines Typs, das zum Ausführen von Web-Server-Funktionen geeignet ist, Middleware, die ein Web-Server-Managementsystem enthält, und Anwendungen, die so eingerichtet sind, dass sie mit dem Web-Server-Managementsystem ausgeführt werden, enthalten. Es sollte klar sein, dass Software-Pakete 234, die so ausgelegt sind, dass sie verschiedene andere Funktionen in der Umgebung eines virtualisierten Datenzentrums ausführen, ebenfalls erzeugt werden können. Dabei kommen für das Betriebssystem alle Betriebssysteme infrage, die gegenwärtig bekannt sind oder zukünftig entwickelt werden. Des Weiteren können Middleware und Anwendungen alle Lösungen enthalten, die zum Bereitstellen der gewünschten Funktionalität für einen bestimmten Server 230 vorgesehen sind.
-
Die Erfinder der vorliegenden Erfindung haben entdeckt, dass gegenwärtige Systeme zum passiven Überwachen nicht in der Lage sind, den Vorteil der Struktur mit Abstraktionsebenen 236A bis 236N des Software-Pakets 234 vollständig zu nutzen. Des Weiteren bieten gegenwärtige Systeme zum passiven Überwachen für Benutzer 120 (1) keine Möglichkeit, die Fähigkeiten von verwendeten Tools zu erweitern, um ein passives Überwachen in der Weise auszuführen, dass die Tools selbst spezielle Daten sammeln können, die für die Umgebung dieses Benutzers 120 relevant sind. Angenommen, ein Kunde verwendet z. B. eine Software-Komponente, die ihre Konfigurations-Metadaten in einer Datei /opt/myapp/config vorhält. Das interne Format von /opt/myapp/config ist Sonder-Erkennungs-Tools unbekannt, sodass die Möglichkeiten eines Tool zum passiven Überwachen dieser Art darauf beschränkt sind, auf einer höheren Abstraktionsebene 236A bis 236N darauf zuzugreifen, z. B. seinen Hash-Wert auf einer Dateistruktur-Ebene 236D zu berechnen. Deswegen können gegenwärtige Tools zum passiven Überwachen feststellen, ob /opt/myapp/config von einer Abtastung zur nächsten geändert wurde, sie können jedoch nicht feststellen, was genau darin geändert wurde. Das gilt sogar dann, wenn der Benutzer 120 (1) die Struktur der Konfigurations-Metadaten kennt und lediglich eine Alarmierung wünscht, wenn ein spezieller Eintrag in dieser Datei geändert wurde, und alle anderen Änderungen als unkritisch behandeln und sie ignorieren möchte.
-
In 4 ist ein Indexierungsagent 242 gemäß Ausführungsformen der Erfindung gezeigt. Wie dargestellt stellt der Indexierungsagent 242 ein verbessertes Tool zum passiven Überwachen bereit, das den Vorteil von virtuellen Servern 230 nutzt, die mehrere Abstraktionsebenen 236A bis 236N aufweisen wie jene, die in 3 gezeigt sind. Dazu verwendet der Indexierungsagent 242 einen auf Schichten gestützten Ansatz mit einer Indexierungsstruktur 244, die mehrere Indexierungsschichten 246A bis 246N aufweist. Wie in Verbindung mit 3 beschrieben ist jede Indexierungsschicht 246A bis 246N so ausgelegt, dass sie das Software-Paket 234 des virtuellen Servers 230 auf einer bestimmten Abstraktionsebene 236A bis 236N indexiert. Die Indexierungsschicht 246A könnte z. B. so ausgelegt sein, dass sie die Betriebssystem-Ebene 236A indexiert, während die Indexierungsschicht 246N so ausgelegt sein könnte, dass sie die einzelne Plattenblockebene 236N indexiert. Um diese Task auszuführen, können einige oder alle Indexierungsschichten 246A bis 246N (nicht gezeigte) eingebettete Module enthalten, die ermöglichen, dass die Indexierungsschichten 246A bis 246N eine Standard-Indexierung von Abstraktionsebenen 236A bis 236N ausführen. Jede Indexierungsschicht 246A bis 246N kann außerdem eine Anwendungsprogrammierschnittstelle enthalten, die eine Erweiterungsfähigkeit für den Indexierungsagenten 242 auf einer hier beschriebenen Indexierungsschicht 246A bis 246N bereitstellt.
-
Wie außerdem in 5 dargestellt kann der Indexierungsagent 342 ein oder mehrere Indexierungsmodule 260A, 260E enthalten. Jedes Indexierungsmodul 260A, 260E ist so ausgelegt, dass es in eine bestimmte Indexierungsschicht 246A bis 246N unter Verwendung der API 248A bis 248N eingefügt wird, die in der Indexierungsschicht 246A bis 246N enthalten ist. Wenn der Benutzer 120 (1) z. B. wünscht, eine zusätzliche Indexierung an der Betriebssystemebene 236A des Software-Pakets 234 des virtuellen Servers 230 auszuführen, können ein oder mehrere Indexierungsmodule 260A in eine Indexierungsschicht 246A eingefügt werden, die für ein Indexieren der Betriebssystemebene 236A unter Verwendung der API 248A vorgesehen ist. Wenn der Benutzer 120 (1) gleichfalls wünscht, eine zusätzliche Indexierung an der Dateiinhaltebene 236E des Software-Pakets 234 des virtuellen Servers 230 auszuführen (d. h. obigen Beispiel die Metadaten-Inhalte von /opt/myapp/config abzutasten), können ein oder mehrere Indexierungsmodule 260E in eine Indexierungsschicht 244E eingefügt werden, die für ein Indexieren der Dateiinhaltebene 236E unter Verwendung der API 246E vorgesehen ist.
-
In jedem Fall kann jedes Indexierungsmodul 260A, 260E Befehle 262A, 262E enthalten. Diese Befehle 262A, 262E können durch das Indexierungsmodul 260A, 260E an die Indexierungsschicht 246A, 246E bereitgestellt werden, an der es eingefügt ist, während die Indexierungsschicht 246A, 246E ihre zugehörige Abstraktionsebene 236A, 236E indexiert. Die Fähigkeit, Indexierungsmodule 260A, 260E in den Indexierungsagenten 242 einzufügen, ermöglicht es dem Benutzer 120 (1), seine eigene Kundenlogik einzufügen, um die Fähigkeiten des Indexierungsagenten 242 über die API 248A bis 248N zu erweitern. Wie oben in Bezug auf das zuvor angegebene Beispiel erwähnt ermöglicht diese Struktur einem Benutzer 120 (1), Indexierungsmodule 260A, 260E an der API 246A bis 246N hinzuzufügen, die immer dann aufgerufen werden, wenn der Indexierungsagent 242 die Datei besucht, während das Software-Paket 234 indexiert wird. Die Logik des Benutzers 120 (1) in Befehlen 262A, 262E prüft einfach, ob es sich bei dieser Datei um /opt/myapp/config handelt, und wenn das der Fall ist, öffnet der Indexierungsagent 242 die Datei und liest den speziellen Eintrag, der für den Benutzer 120 von Interesse ist. Die Möglichkeiten des Benutzers 120 (1), den Prozess zum passiven Überwachen zu kontrollieren, werden dadurch erheblich vermindert.
-
Außerdem kann das Indexierungsmodul 260A, 260E eine Zeitspanne 264A, 264E enthalten, während der Bedingungen angegeben werden, die erfüllt sein müssen, bevor das Indexierungsmodul 260A, 260E ausgeführt werden kann. Ein Indexierungsmodul 260E könnte z. B. eine Zeitspanne 264E aufweisen, während der festgelegt ist, dass das Indexierungsmodul 260E nach einem anderen Indexierungsmodul 260A auszuführen ist. Wenn dann der Indexierungsagent 242 abläuft, wartet das Indexierungsmodul 260E mit dem Ausführen auf das Indexierungsmodul 260A, und dann führt in Reaktion auf das Beenden des Indexierens durch das Indexierungsmodul 260A das Indexierungsmodul 260E seine Funktionen aus.
-
In 5 ist eine Umgebung 300 gezeigt, die einen beispielhaften physischen Server 310 mit einer Indexierungs-Funktionseinheit 340 gemäß Ausführungsformen der Erfindung enthält. Wie dargestellt ist bei einigen Ausführungsformen die Indexierungs-Funktionseinheit 340 von virtuellen Servern 330 vom physischen Server 310 in einer Umgebung 300 eines virtualisierten Datenzentrums getrennt und kann selbst einen virtuellen Server 330 darstellen. Bei diesen Umgebungen enthält die Indexierungs-Funktionseinheit 340 einen Indexierungsagenten 342, der Dienste zum passiven Überwachen für den gesamten physischen Server 310 ausführen kann. Der Indexierungsagent 342 weist eine Struktur 244 und die in 4 dargestellten mehreren Indexierungsschichten 246A bis 246N auf. Bei dieser Konfiguration kann der Indexierungsagent 342 über den Virtualisierungs-Hypervisor 232 (3) auf jede Instanz des virtuellen Servers 330 zugreifen, um alle Funktionen auszuführen, die für ein passives Überwachen erforderlich sind. Ein Ergebnis davon besteht darin, dass Agenten 242 zum passiven Überwachen (3) aus allen Instanzen des virtuellen Servers 330 vollständig entfernt werden können. Somit kann der Gesamtumfang von Ressourcen, die für ein passives Überwachen bestimmt sind, erheblich verringert werden, selbst wenn die Anzahl von Ressourcen berücksichtigt wird, die für die Indexierungs-Funktionseinheit 340 bestimmt sind.
-
In der 1, 3 und 5 kann das Modul 144 zum Abrufen virtueller Abbilder, das durch das Computersystem 102 realisiert wird, ein virtuelles Abbild 332 einer bestimmten Instanz des virtuellen Servers 330 abrufen, für welches ein passives Überwachen unter Verwendung des Indexierungsagenten 342 erwünscht ist. Dieses Abrufen kann in Reaktion auf eine Anforderung erfolgen, die zu der Indexierungs-Funktionseinheit 340 von einem zentralen Erfassungsserver 350 gesendet wird, die die Indexierungs-Funktionseinheit 340 anweist, an einer bestimmten Instanz des virtuellen Servers 330 ein passives Überwachen auszuführen und eine Adresse bereitstellt, an der sich die Instanz des Server Servers 330 befindet. Bei einigen Ausführungsformen kann der Indexierungsagent 342 anschließend einen Virtualisierungs-Hypervisor 232 eines virtuellen Servers 330 anweisen, eine Prüfpunkt-Operation im virtuellen Server 330 auszuführen. Bei diesen Ausführungsformen kann es sich bei der Prüfpunkt-Operation um eine Funktion im Virtualisierungs-Hypervisor 232 handeln, die einen „Schnappschuss” (Speicherauszug) des virtuellen Abbilds 332 des Software-Pakets 234 des virtuellen Servers 330 aufnimmt, der einige oder alle Abstraktionsebenen 236A bis 236N enthält. Das virtuelle Abbild 332 kann Daten, die sowohl dem Datensystem als auch dem Betriebszustand entsprechen, sowie alle weiteren Daten in dem Software-Paket 234 zum Zeitpunkt des „Schnappschusses” enthalten.
-
Bei weiteren Ausführungsformen kann der Befehl zum Anfahren eines Prüfpunkts des virtuellen Servers 342 von anderen Stellen als der Indexierungs-Funktionseinheit 340 stammen. Prüfpunkt-Operationen können z. B. in periodischen Abständen automatisch erfolgen wie etwa als Teil einer Sicherungs- und/oder Wiederherstellungsoperation. Die vorliegende Erfindung ist jedoch nicht von der Art und Weise abhängig, wie das virtuelle Abbild 332 erzeugt wurde, stattdessen ist jede gegenwärtig bekannte oder zukünftig zu entwickelnde Lösung zum Erzeugen eines virtuellen Abbilds 332 eines Software-Pakets eines virtuellen Servers 330 vorstellbar. In jedem Fall kann bei der Erzeugung das virtuelle Abbild 332 durch den Indexierungsagenten 342 direkt abgerufen werden. Alternativ kann das virtuelle Abbild 332 in einem Speichersystem 318 für einen späteren Abruf durch den Indexierungsagenten 342 gespeichert werden. Es sollte klar sein, dass das Speichersystem 318 in dem physischen Server 310 enthalten sein kann und/oder sich außerhalb befinden kann und eine beliebige Speicherlösung nutzen kann.
-
In den 1, 3 und 5 kann das Modul 146 zum Indexieren eines virtuellen Abbilds, wenn es durch ein Computersystem 102 realisiert wird, ein virtuelles Abbild 332 eines virtuellen Servers 330 indexieren, das durch das Modul 144 zum Abrufen eines virtuellen Abbilds abgerufen wird. Bei einigen Ausführungsformen kann dieses Indexieren durch einen Indexierungsagenten 342 in der Indexierungs-Funktionseinheit 340 ausgeführt werden. Daher kann das Indexieren außerhalb des eigentlichen virtuellen Servers 330 ausgeführt werden und kann ohne Nutzung von Agenten ausgeführt werden, die im virtuellen Server 330 realisiert sind.
-
In 6 ist die Funktionsweise 328 einer Indexierungsebene 346A bis 346N im Indexierungsagenten 342 gemäß Ausführungsformen der Erfindung gezeigt. Wie gezeigt entspricht jede Indexierungsebene 346A bis 346N im Indexierungsagenten 342 einer anderen Abstraktionsschicht 336A bis 336N im virtuellen Abbild 332, das so ausgelegt ist, dass es eine spezielle Abstraktionsebene 336A bis 336N indexiert. Der Indexierungsprozess kann jede Indexierungsschicht 346A bis 346N verwenden, um seine entsprechende Abstraktionsebene 336A bis 336N des Software-Pakets 234 (3) abzutasten, die im virtuellen Abbild 332 enthalten ist, um Merkmale 334 der Extraktionsebene zu extrahieren, die von Interesse sind. Es sollte klar sein, dass nicht alle Abstraktionsebenen 336A bis 336N bei jeder Abtastung indexiert werden müssen. Es könnte stattdessen festgelegt sein, dass eine einzige Abstraktionsebene 336E (oder alternativ eine Teilmenge der Gesamtheit von Abstraktionsebenen 336A bis 336N) indexiert wird. In jedem Fall wird die entsprechende Indexierungsschicht 346A bis 346N für jede Abstraktionsebne 336A bis 336N, die zu indexieren ist, die (nicht gezeigten) eingebetteten Module und alle eingefügten Indexierungsmodule 348A, 348E nutzen, um das Indexieren auszuführen. Wie angegeben weisen Indexierungsmodule 348A, 348E Befehle 262A, 262E (4) auf, die durch einen Benutzer 120 (1) eingerichtet wurden, und sie geben an, welche Elemente in Abstraktionsebenen 336A bis 336N des virtuellen Abbilds 332 in Merkmalen 334 der Extraktionsebene, die aus Gründen der Flexibilität eingeschlossen werden können, eingeschlossen werden sollten. Wenn z. B. eine Abstraktionsebene 336E indexiert werden soll, würde die Indexierungsschicht 344E unter Verwendung ihrer eingebetteten Module und der Befehle 262E (4), die im Modul 348E vorhanden sind, die Abstraktionsebene 336E abtasten. Ergebnisse des Indexierens würden in Merkmalen 334 der Extraktionsebene für die Abstraktionsebene 336E enthalten sein. Diese Merkmale 334 der Extraktionsebene können Informationen enthalten wie etwa Metadaten über die Dateien im Software-Paket 234 (3) (z. B. ihre Pfadnamen, Dateigrößen, zuletzt modifizierte Datenangabe), eine Prüfsumme der Inhalte der Dateien und/oder jede weitere Information vom Software-Paket 234 (3), die verwendet werden kann, um zu erkennen, ob in dem virtuellen Server 330 (5) Änderungen (z. B. infolge von Drift, Malware oder dergleichen) aufgetreten sind. Bei einigen Ausführungsformen werden nicht die Inhalte aller Dateien geprüft. Stattdessen müssen lediglich extrahierte Merkmale 334, die als empfindliche Komponenten des virtuellen Servers 330 eingestuft wurden, für eine Verwendung bei der Analyse extrahiert werden. Des Weiteren könnten extrahierte Merkmale 334 auf der Grundlage des Typs des passiven Überwachens, der auszuführen ist, variieren. Wenn z. B. das passive Überwachen ein Abtasten nach Malware beinhaltet, können ausführbare Dateien oder andere Dateien, in denen Malware wahrscheinlich vorhanden ist, eingeschlossen sein. Alternativ können Steuerungsdateien von anderen derartigen Dateien, die die Konformität des virtuellen Servers 330 mit einer ursprünglichen Vorlage betreffen, bei einem Typ der Drifterkennung des passiven Überwachens eingeschlossen sein.
-
In den 5 und 6 können Merkmale 334 der Abstraktionsebene, die durch die Indexierungsschicht 334E gesammelt wurden, anschließend an Merkmale 334 der Extraktionsebene angefügt werden, die sich aus einem Indexieren von anderen Extraktionsebenen 336A bis 336N ergeben, das durch den Indexierungsagenten 342 ausgeführt wird. Wenn dann eine Analyse am Server 350 der zentralen Erfassung auszuführen ist, können Daten, die einigen oder allen Merkmalen 334 der Extraktionsebene entsprechen, zum Server 350 der zentralen Erfassung weitergeleitet werden. Dagegen könnten Daten, die Merkmalen 334 der Extraktionsebene entsprechen, die sich aus einem Indexieren von einzelnen Abstraktionsebenen 336A bis 336N ergeben, für eine Analyse getrennt weitergeleitet werden. Es sollte ferner klar sein, dass außerdem eine Analyse vor Ort am physischen Server 310 ausgeführt werden könnte.
-
In den 1, 3 und 4 kann ein Analysatormodul 148 des virtuellen Abbilds, das durch ein Computersystem 102 realisiert wird, extrahierte Merkmale 334 analysieren, um ein passives Überwachen des virtuellen Servers 330 auszuführen. Diese Analyse kann sich anhand des Typs passiven Überwachens, der ausgeführt wird, unterscheiden. Zum Beispiel kann bei einer Analyse zur Drifterkennung das Analysatormodul 148 des virtuellen Abbilds ein oder mehrere Elemente von extrahierten Merkmalen 334 mit wenigstens einem Abschnitt eines entsprechenden im Voraus konfigurierten Software-Pakets 352 vergleichen. Durch Vergleichen dieser beiden Elemente kann das Analysatormodul 148 des virtuellen Abbilds den Unterschied zwischen der Dateisystemstruktur, den Inhalten, dem Zustand usw. von jedem berechnen. Dieser Unterschied kann aus drei Teilen bestehen: Daten, die hinzugefügt wurden, Daten, die gelöscht wurden, und Daten, die geändert wurden, jeweils in Bezug auf ein im Voraus konfiguriertes Software-Paket 352. Bei einer Analyse des Malware-Typs können dagegen extrahierte Merkmale 334 mit Signaturen von Agenten bekannter Malware verglichen werden.
-
In 7 sind beispielhafte Vergleichsanalysen 400 gemäß Ausführungsformen der Erfindung gezeigt. Wie dargestellt werden drei Gruppen von Indexergebnisdaten 420 analysiert. Diese drei Gruppen von Indexergebnisdaten 420 werden mit zwei im Voraus konfigurierten Paketen 410 verglichen. Wie gezeigt stammen extrahierte Merkmale 414A und 414B von virtuellen Servern 330 (4), die aus demselben im Voraus konfigurierten Paket erzeugt wurden und somit mit derselben Gruppe von Paketdaten 412A verglichen werden. Die extrahierten Merkmale 414C wurden dagegen von einem virtuellen Server 330 eines anderen Typs gewonnen, der aus einem anderen im Voraus konfigurierten Paket erzeugt wurde und mit Paketdaten 412B verglichen wird. Extrahierte Merkmale 414A sind so dargestellt, dass sie lediglich annehmbare Veränderungen 424 aufweisen und daher wird der Vergleich mit Paketdaten 412A lediglich verhältnismäßig geringe Unterschiede ergeben. Extrahierte Merkmale 414B und 414C weisen jedoch nichtkonforme Änderungen 424, 426 auf, deswegen werden diese Vergleiche beim Vergleichen mit ihren entsprechenden Paketdaten 412A, 412B große Unterschiede ergeben.
-
Nachdem diese Unterschiede bewertet wurden, kann in den 1, 3 und 5 ein passives Überwachen durch Anwenden von Regeln 354 ausgeführt werden, die definieren, welche Änderungen nichtkonform sind. Passives Überwachen kann eine oder mehrere Aktivitäten enthalten wie Abtasten eines Dateisystems, um eine Konformitätsprüfung auszuführen, Abtasten einer Registratur, um festzustellen, welche Anwendungen aktuell in dem System installiert sind, Sicherheitsabtastung, Dateisystem-Inspektion, Überwachung einer Lizenznutzung, Drifterkennung und/oder dergleichen. Die Regeln 354, die verwendet werden, um ein passives Überwachen auszuführen, können durch einen Administrator, einen Benutzer oder eine andere Person konfiguriert werden, die einen virtuellen Server 330 in Bezug auf nichtkonforme Änderungen (z. B. Drift, Malware usw.) bewerten muss. Die Regeln 354 können außerdem statistisch abgeleitet werden durch Analysieren von Unterschieden, die über viele virtuelle Server 330 in einer Umgebung 300 eines virtualisierten Datenzentrums mit einer Toleranz auftreten; können abgeleitet werden durch automatisches Klassifizieren von Dateien als unveränderlich (z. B. ausführbare Dateien), selten veränderlich (Konfigurationsdateien) oder sich ständig verändernd (Log-Dateien); und/oder können von externen Informationsquellen abgeleitet werden wie etwa einer Cluster-Beschreibung anhand einer Bewertung, die durch ein Bewertungs-Tool ausgeführt wird. Ähnliche regelgestützte Invarianten können verwendet werden, um Anomalien oder fehlerhaftes Verhalten im Speicherzustand zu erkennen. Zu Beispielen hiervon gehören Erkennen unbekannter Prozesse, verdächtiger Netzwerkverbindungen und Modifikationen von Codesegmenten, sind jedoch nicht auf diese beschränkt.
-
Zwar wurden Aspekte der Erfindung hier als ein Verfahren und ein System zum passiven Überwachen von Computersystemen gezeigt und beschrieben, es ist jedoch klar, dass Aspekte der Erfindung des Weiteren diverse alternative Ausführungsformen bereitstellen Bei einer Ausführungsform stellt die Erfindung z. B. ein Computerprogramm bereit, das in wenigstens einem computerlesbaren Medium gespeichert ist, das beim Ausführen ein Computersystem befähigt, ein Computersystem passiv zu überwachen. Dabei enthält das computerlesbare Medium Programmcode wie etwa ein Programm 140 zum passiven Überwachen (1), das einige oder alle der hier beschriebenen Prozesse umsetzt. Es ist klar, dass der Begriff „computerlesbares Medium” einen oder mehrere Typen von materiellen Ausdrucksmedien beinhaltet, die gegenwärtig bekannt sind oder zukünftig entwickelt werden, von denen eine Kopie des Programmcode durch eine Datenverarbeitungseinheit aufgenommen, reproduziert oder auf andere Weise kommuniziert werden kann. Das computerlesbare Medium kann z. B. aufweisen: ein oder mehrere tragbare Speicher-Erzeugnisse; eine oder mehrere Speicher/Speicherkomponenten einer Datenverarbeitungseinheit und/oder dergleichen.
-
Bei einer weiteren Ausführungsform stellt die Erfindung ein Verfahren zum Bereitstellen einer Kopie des Programmcode wie etwa ein Programm 140 zum passiven Überwachen (1) bereit, das einen oder alle der hier beschriebenen Prozesse umsetzt. In diesem Fall kann ein Computersystem eine Kopie des Programmcode verarbeiten, der einen oder alle der hier beschriebenen Prozesse umsetzt, um eine Gruppe von Datensignalen zu erzeugen, bei denen eine oder mehrere ihrer Charakteristiken so eingestellt und/oder geändert wurden, dass sie eine Kopie des Programmcode in der Gruppe von Datensignalen codieren, oder für einen Empfang an einer zweiten unterschiedlichen Stelle zu übertragen. Eine Ausführungsform der Erfindung stellt gleichfalls ein Verfahren zum Erlangen einer Kopie von Programmcode, der einige oder alle der hier beschriebenen Prozesse umsetzt, wobei das Verfahren ein Computersystem enthält, das die hier beschriebene Gruppe von Datensignalen empfängt und die Gruppe von Datensignalen in eine Kopie des Computerprogramms übersetzt, das in wenigstens einem computerlesbaren Medium gespeichert ist. In jedem Fall kann die Gruppe von Datensignalen unter Verwendung eines Typs von Datenübertragungsverbindung übertragen/empfangen werden.
-
Bei einer nochmals weiteren Ausführungsform stellt die Erfindung ein Verfahren zum Erzeugen eines Systems zum passiven Überwachen eines Computersystems bereit. In diesem Fall kann ein Computersystem wie etwa das Computersystem 12 (1) erhalten (z. B. erzeugt, vorgehalten, zur Verfügung gestellt usw.) werden und eine oder mehrere Komponenten zum Ausführen eines hier beschriebenen Prozesses können erhalten (erzeugt, gekauft, verwendet, modifiziert usw.) werden und dem Computersystem hinzugefügt werden. Dabei kann das Hinzufügen einen oder mehrere der folgenden Punkte enthalten: (1) Installieren von Programmcode auf einer Datenverarbeitungseinheit; (2) Hinzufügen von einer oder mehreren Datenverarbeitungs- und/oder E/A-Einheiten zu dem Computersystem; (3) Einbeziehen und/oder Modifizieren des Computersystems, damit es in der Lage ist, einen hier beschriebenen Prozess auszuführen; und/oder dergleichen.
-
Falls die Ausdrücke „erste”, „zweite” und dergleichen hier verwendet werden bzw. wo diese verwendet werden, bezeichnen sie keine Reihenfolge, Menge oder Wichtigkeit, sondern werden verwendet, um Elemente voneinander zu unterscheiden, und der Ausdruck „ein” bezeichnet hier keine Mengenbegrenzung, sondern bezeichnet das Vorhandensein wenigstens eines der angegebenen Elemente. Das Bestimmungswort „näherungsweise” beinhaltet bei seiner Verwendung in Verbindung mit einer Größe den angegebenen Wert und hat die durch den Kontext festgelegte Bedeutung (beinhaltet z. B. den Grad des Fehlers, der einer Messung der bestimmten Größe zugehörig ist). Das hier verwendete Suffix „(s)” soll sowohl den Singular als auch den Plural des Ausdrucks, den er modifiziert, einschließen, wodurch ein oder mehrere dieser Ausdrücke eingeschlossen werden (z. B. enthält das Metall bzw. enthalten die Metalle ein oder mehrere Metalle). Darin eingeschlossene Bereiche sind inklusive und unabhängig kombinierbar (z. B. Bereiche von „bis zu näherungsweise 25 Gew.-% oder insbesondere näherungsweise 5 Gew.-% bis zu näherungsweise 20 Gew.-% schließen die Endpunkte und alle Zwischenwerte der Bereiche von „näherungsweise 5 Gew.-% bis näherungsweise 25 Gew.-%” mit ein usw.).
-
Die vorhergehende Beschreibung verschiedener Aspekte der Erfindung wurde für Zwecke der Erläuterung und Beschreibung präsentiert. Sie soll weder erschöpfend sein noch die Erfindung auf die präzise Form, die offenbart wurde, beschränken, wobei offensichtlich viele Modifikationen und Variationen möglich sind. Derartige Modifikationen und Variationen, die für einen Fachmann ersichtlich sind, sind im Umfang der Erfindung enthalten, der durch die angefügten Ansprüche definiert ist.