Struktur der Adapterkonfigurationsdatei

Eine Adapterkonfigurationsdatei enthält eine Gruppe von Kontexten, die von einem Laufzeitexemplar des generischen Protokolladapters ausgeführt werden sollen. Jeder Kontext beschreibt jeweils, wie eine einzelne Protokolldatei ausgeführt wird. Da eine Adapterkonfigurationsdatei viele solcher Kontexte enthalten kann, ist der Adapter in der Lage, viele Protokolldateien gleichzeitig zu verarbeiten.

Jeder Kontext, der einer bestimmten Protokolldatei zugeordnet ist, besteht aus einer Reihe von Komponenten. Jede Komponente spielt bei der Verarbeitung einer Protokolldatei eine bestimmte Rolle.

Kontext

Der Kontext beschreibt die Reihenfolge und Gruppierung von Komponenten, in der diese Komponenten für die Verarbeitung der Protokolldatei verkettet sind. Jede Protokolldatei verfügt über einen eigenen Kontext, und in einer einzelnen Konfiguration können mehrere Kontexte definiert sein. Der generische Protokolladapter stellt einen Kontext zur Verfügung:

Ein Kontext verfügt über die folgenden Eigenschaften:

Eigenschaft Typ Verhalten
Beschreibung string (Zeichenfolge) Eine Textbeschreibung des Kontexts. Dieser Wert wird nur vom Editor für Adapterkonfiguration verwendet.
Eindeutige ID string (Zeichenfolge) Eine eindeutige Kennung für diese Komponente. Der Kontext verweist auf diese Zeichenfolge, um das zu verwendende Exemplar der Komponente zu identifizieren.
Ist Unterbrechungsfreie Operation boolean (Boolescher Wert) Gibt an, ob diese Protokolldatei auf Grundlage der Eigenschaften 'Maximale Leerlaufzeit' und 'Pausenintervall' auf Änderungen überwacht werden soll oder nicht.
Maximale Leerlaufzeit integer (ganze Zahl, Millisekunden) Die maximale Zeitspanne, die der Kontext auf Änderungen an einer Protokolldatei wartet, bevor er sich selbst inaktiviert.
Pausenintervall integer (ganze Zahl, Millisekunden) Die Zeitspanne, die der Kontext nach Erreichen des Endes der Protokolldatei wartet, bevor ein erneuter Leseversuch vorgenommen wird.

Sensor

Ein Sensor liefert den Mechanismus zum Lesen des Inhalts für die Verarbeitung. Der generische Protokolladapter stellt die folgenden Sensoren zur Verfügung:

Die folgende Tabelle enthält eine Liste der allgemeinen Sensorattribute.

Sensorattribute

Attributname Typ Verhalten
Sensortyp String (Zeichenfolge) Der vom Adapter zu verwendende Sensortyp.
Beschreibung (erforderlich) String (Zeichenfolge) Eine Textbeschreibung des Sensors.Dieser Wert wird nur vom Editor für Adapterkonfiguration verwendet.
Eindeutige ID (erforderlich) String (Zeichenfolge) Eine eindeutige Kennung für diese Komponente. Der Sensor verweist auf diese Zeichenfolge, um das zu verwendende Exemplar der Komponente zu identifizieren.
Maximale Blockung (erforderlich) Integer (ganze Zahl) Die maximale Anzahl der Zeilen, die der Sensor vor der Weiterleitung an das Extrahierungsprogramm zur Verarbeitung liest. Beim Sensortyp 'StaticParserSensor' gibt dieses Feld die maximale Anzahl an CBE-Objekten an, die vom statischen Parser vor der Weiterleitung an das Ausgabeprogramm zur Verarbeitung erstellt werden.
Puffer für Übereinstimmungswahrscheinlichkeit Integer (ganze Zahl) Die letzten n Byte einer Datei, die gespeichert und verwendet werden sollen, um zu ermitteln, ob seit dem letzten Lesevorgang Datensätze an die betreffende Datei angehängt worden sind.
Größe für Fußzeile Integer (ganze Zahl) Die n Byte einer Datei, die Variableninhalt enthalten. Der Fußzeilenabschnitt einer Datei wird nicht verwendet, wenn ermittelt wird, ob seit dem letzten Lesevorgang Datensätze an die betreffende Datei angehängt worden sind.

Die nachstehende Tabelle enthält eine Liste der für die einzelnen Sensortypen jeweils spezifischen Eigenschaften. Die folgenden Eigenschaften sind dem Komponentencode bekannt und müssen genau wie in der Tabelle angegeben geschrieben werden, damit sie von der Komponente erkannt und verwendet werden können.

Sensortyp Eigenschaften Anwendung
SingleFileSensor
directory (erforderlich)
Die Verzeichnisposition der Datei, die vom Sensor des Typs 'SingleFileSensor' gelesen werden soll.
fileName (erforderlich)
Der Name der Datei, die vom Sensor des Typs 'SingleFileSensor' gelesen werden soll.
shell
Die UNIX-Shell, in der der Befehl 'converter' ausgeführt werden soll. Wird nur von UNIX-Plattformen verwendet.
converter
Eine Befehlszeile für eine Vorverarbeitungsanweisung, die vor dem Starten des Sensor ausgeführt werden soll.
Wird beim Erstellen eines Adapters verwendet, um eine Syntaxanalyse einer Protokolldatei mit Regeln für reguläre Ausdrücke durchzuführen.
StaticParserSensor
directory (erforderlich)
Die Verzeichnisposition der Datei, die vom Sensor des Typs 'StaticParserSensor' gelesen werden soll.
fileName (erforderlich)
Der Name der Datei, die vom Sensor des Typs 'StaticParserSensor' gelesen werden soll.
parserClassName (erforderlich)
Der Name der Java-Klasse, die den statischen Parser implementiert. Die Klasse muss die Schnittstelle 'org.eclipse.hyades.logging.parsers.IParser' implementieren.
Wird beim Erstellen eines Adapters verwendet, um eine Syntaxanalyse einer Protokolldatei mit einer Java-Klasse für den statischen Parser durchzuführen.

Extrahierungsprogramm

Das Extrahierungsprogramm verwendet eine Gruppe von Eingabezeilen, die vom Sensor zur Verfügung gestellt werden, und teilt diese in Nachrichtengrenzwerte auf.

Der generische Protokolladapter stellt die folgenden Extrahierungsprogramme zur Verfügung:

Die folgenden Eigenschaften werden als Teil der Konfiguration für das Extrahierungsprogramm zur Verfügung gestellt:

Eigenschaft Typ Verhalten
Beschreibung string (Zeichenfolge) Eine Textbeschreibung des Extrahierungsprogramms. Dieser Wert wird nur vom Editor für Adapterkonfiguration verwendet.
Eindeutige ID string (Zeichenfolge) Eine eindeutige Kennung für diese Komponente. Das Extrahierungsprogramm verweist auf diese Zeichenfolge, um das zu verwendende Exemplar der Komponente zu identifizieren.
Mit Zeilenumbrüchen boolean (Boolescher Wert) Gibt an, ob sich die Nachrichten in der Protokolldatei über mehrere Zeilen erstrecken.
Zeilenumbrüche ersetzen boolean (Boolescher Wert) Ersetzt die Zeilenumbrüche in dieser Datei durch ein anderes Zeichenfolgesegment. Die Zeilenumbrüche werden ersetzt, bevor das Extrahierungsprogramm nach 'Startmuster' oder 'Endmuster' sucht.
Symbol für Zeilenumbruch string (Zeichenfolge) Das Zeichenfolgesegment, durch das die Zeilenumbrüche ersetzt werden sollen. Diese Eigenschaft wird nur dann verwendet, wenn die Eigenschaft 'Zeilenumbrüche ersetzen' aktiviert ist.
Startmuster aufnehmen boolean (Boolescher Wert) Gibt an, ob das Startmuster als Teil der Nachricht aufgenommen werden soll, die an die nächste Komponente weitergeleitet werden soll. Ist diese Eigenschaft inaktiviert, wird der übereinstimmende Abschnitt der Nachricht entfernt.
Startmuster string (Zeichenfolge) oder regulärer Ausdruck Das Zeichenfolgesegment, das den Anfang einer Nachricht angibt. Die Klasse 'RegularExpressionExtractor' kann immer verwendet werden. Handelt es sich bei Ihrem Startmuster jedoch um eine einfache Zeichenfolge, verursacht die Klasse 'SimpleExtractor' einen geringeren Systemaufwand.
Endmuster aufnehmen boolean (Boolescher Wert) Gibt an, ob das Endmuster als Teil der Nachricht aufgenommen werden soll, die an die nächste Komponente weitergeleitet werden soll. Ist diese Eigenschaft inaktiviert, wird der übereinstimmende Abschnitt der Nachricht entfernt.
Endmuster string (Zeichenfolge) oder regulärer Ausdruck Das Zeichenfolgesegment, das das Ende einer Nachricht angibt. Wird kein Endmuster angegeben, wird die Nachricht durch das nächste Startmuster begrenzt.

Parser

Der Parser verwendet die vom Extrahierungsprogramm begrenzten Nachrichten und erstellt eine Gruppe von Zuordnungen zwischen Zeichenfolgewerten und einer Datenstruktur. Beim generischen Protokolladapter handelt es sich bei der Datenstruktur um Common Base Event 1.0.1.

Der generische Protokolladapter stellt die folgende Parserklasse zur Verfügung:

Der Parser wird in zwei Phasen ausgeführt:

  1. In der globalen Verarbeitungsphase wird eine Gruppe von globalen regulären Ausdrücken für die vom Extrahierungsprogramm zur Verfügung gestellte Nachricht ausgeführt.
  2. In der Attributverarbeitungsphase werden spezifische Gruppen von Substitutionsregeln ausgeführt, um den Werte zu ermitteln, der den Attributen in der Datenstruktur (Common Base Event 1.0.1) jeweils zugeordnet werden soll.

Die beiden Ausführungsphasen ermöglichen Folgendes: Während der globalen Verarbeitungsphase kann die Nachricht mit Hilfe von Tokens durch eine Reihe von Attributwerten dargestellt werden. Während der Attributverarbeitungsphase kann anschließend auf diese Attributwerte nach Attributnamen oder Index verwiesen werden.

Die folgenden globalen Eigenschaften werden als Teil des Parsers angegeben:

Eigenschaft Typ Verhalten
Beschreibung string (Zeichenfolge) Eine Textbeschreibung des Parsers. Dieser Wert wird nur vom Editor für Adapterkonfiguration verwendet.
Eindeutige ID string (Zeichenfolge) Eine eindeutige Kennung für diese Komponente. Der Parser verweist auf diese Zeichenfolge, um das zu verwendende Exemplar der Komponente zu identifizieren.
Separatortoken string (Zeichenfolge) oder regulärer Ausdruck Ein Token bzw. ein regulärer Ausdruck zur Beschreibung einer Reihe von Tokens, der die Nachricht in Attribut/Wert-Paare aufteilt.

Enthält beispielsweise jede neue Zeile Ihrer Protokolldatei ein Attribut und dessen Wert, könnten Sie den Separatortoken \n angeben. Der Vorteil, die Nachricht aufzuteilen, besteht darin, dass in der Attributverarbeitungsphase auf die Zeichenfolgesegmente verwiesen werden kann.

Bestimmungstoken string (Zeichenfolge) oder regulärer Ausdruck Ein Token bzw. ein regulärer Ausdruck zur Beschreibung einer Reihe von Tokens, der die vom Separatortoken erstellten Zeichenfolgesegmente in Attribut/Wert-Paare aufteilt. Wird beispielsweise jedes Attribut durch ein Gleichheitszeichen (=) vom Wert getrennt und der Wert des Bestimmungstokens ist = , kann in der Attributverarbeitungsphase auf das betreffende Attribut und dessen Wert verwiesen werden. Wird ein Separatortoken, aber kein Bestimmungstoken angegeben, wird die Nachricht in eine Liste von Attributwerten aufgeteilt, auf die in den Substitutionsregeln nach Index verwiesen werden kann.

Die Attribute von Common Base Event haben jeweils die folgenden Eigenschaften:

Eigenschaft Typ Verhalten
Vorherige Substitution für Übereinstimmung als Standardeinstellung verwenden boolean (Boolescher Wert) Gibt die aktuelle Gruppe von Substitutionsregeln für dieses Attribut eine positive Übereinstimmung zurück, muss der Übereinstimmungswert gespeichert werden, damit er zur Verarbeitung des nächsten Datensatzes als Standardwert verwendet werden kann, falls keine positive Übereinstimmung vorliegt.
Standardwert String (Zeichenfolge) Gibt keine der Substitutionsregeln für dieses Attribut eine positive Übereinstimmung zurück oder liegen für dieses Attribut keine Substitutionsregeln vor, wird diesem Attribut der hier angegebene Standardwert zugeordnet. Wird derselbe Wert für alle Datensätze eines bestimmten Attributs gewünscht, kann diese Eigenschaft verwendet werden, anstatt eine Standardsubstitutionsregel für das betreffende Attribut zu erstellen. Hierbei ist zu beachten, dass die Eigenschaft Vorherige Substitution für Übereinstimmung als Standardeinstellung verwenden Vorrang hat, falls ein gespeicherter Wert zur Verfügung steht.

Substitutionsregeln werden als Teil der Attributverarbeitungsphase ausgeführt. Sie werden in der Reihenfolge von oben nach unten verarbeitet. Sobald eine Regel eine Übereinstimmung ergibt, werden für diese Eigenschaft keine weiteren Regeln ausgeführt. Wird keine Übereinstimmung gefunden, wird kein Wert in das Attribut gestellt, sofern nicht die Eigenschaft Vorherige Substitution für Übereinstimmung als Standardeinstellung verwenden oder Standardwert für das betreffende Attribut angegeben ist.

Substitutionsregeln enthalten die folgenden Eigenschaften:

Eigenschaft Typ Verhalten
Übereinstimmung Regulärer Ausdruck Der reguläre Ausdruck, der den Wert ermittelt, der auf dieses Attribut angewendet werden soll, wenn eine Übereinstimmung im Bereich des Zeichenfolgesegments vorkommt, das von dieser Substitutionsregel verarbeitet wird. Wird kein regulärer Ausdruck zur Verfügung gestellt, wird die Regel als Übereinstimmung angesehen.
Positionen name-value attribute pairs (Name/Wert-Attributpaare) Mit Positionen können Sie auf die Name/Wert-Attributpaare verweisen, die während der globalen Verarbeitungsphase erstellt wurden.
  • Werden sowohl ein Separatortoken als auch ein Bestimmungstoken angegeben, kann die Zeichenfolge für Positionen auf viele Attribute nach Namen verweisen, indem die folgende Grammatik verwendet wird: $h('Attr1')@@$h('Attr2')...
    $h('Attrn') gibt den Namen eines zuvor erstellten Attributs an.
    Hierbei ist @@ der Separator zwischen den Attributen.
  • Wird ein Separatortoken, aber kein Bestimmungstoken angegeben, kann die Zeichenfolge für Positionen auf ein Attribut bzw. mehrere Attribute nach Index anstelle nach Namen verweisen, indem die folgende Grammatik verwendet wird: n1@@n2..
    Hierbei sind 'n1' und 'n2' ganze Zahlen, die die Indizes darstellen. Der Index beginnt bei 1. Beginnt die Nachrichtenzeichenfolge mit einem Separatortoken, ist der Attributwert bei Index 1 gleich Null. Der erste Attributwert beginnt bei Index 2.

Bei der Eigenschaft 'Übereinstimmung' können Sie den Separator hinzufügen, um anzugeben, welche regulären Ausdrücke auf welche Attributwerte angewendet werden sollen. Die Eigenschaft 'Substitution' kann auf diese Attributatome verweisen, indem $1, $2 etc. verwendet wird.

Substitution string (Zeichenfolge) Der Wert, der in das Attribut gestellt werden soll. Der Wert kann eine Zeichenfolge sein oder er kann auf den regulären Ausdruck in der Eigenschaft 'Übereinstimmung' verweisen. Mit Hilfe der Gruppierungen im regulären Ausdruck kann auf die Zeichenfolgesegmente verwiesen werden, die von der Eigenschaft 'Übereinstimmung' extrahiert werden. $1 gibt die erste Gruppierung an, $2 gibt die zweite Gruppierung an etc.
Integrierte Funktion verwenden check box (Markierungsfeld) Ist das Markierungsfeld Integrierte Funktion verwenden für ein Attribut ausgewählt, wenn keine der vorherigen Substitutionsregeln (sofern vorhanden) eine Übereinstimmung ergibt, generiert die Laufzeit des generischen Protokolladapters unter Verwendung der eigenen internen Funktionen einen Wert für das betreffende Attribut. Dieses Feature wird nur für die folgenden CBE-Attribute unterstützt:
  • localInstanceId
  • globalInstanceId
  • componentIdentification.location
  • componentIdentification.locationType
Substitutionsklasse string (Zeichenfolge) Gibt den Namen einer benutzerdefinierten Java-Klasse an, die eine angepasste Syntaxanalyselogik für den Wert ausführen kann, der mit den Spezifikationen Positionen, Übereinstimmung und Substitution der Regel übereinstimmt. Stimmt die Substitutionsregel mit Daten in dem Datensatz überein, wird diese Klasse aufgerufen, und das Ergebnis wird zum Erstellen des Common Base Event-Objekts verwendet.
Spezifikationen:
  • Diese Klasse muss die Schnittstellenklasse org.eclipse.hyades.logging.adapter.parsers.ISubstitutionExtension oder die Erweiterungsklasse org.eclipse.hyades.logging.adapter.parsers.IStatefulSubstitutionExtension implementieren, damit sie vom generischen Protokolladapter ausgeführt werden kann.
  • Verwenden Sie die Erweiterungsklasse, wenn Sie Statusdaten zwischen Protokolldateisätzen speichern wollen. Die Klasse org.eclipse.hyades.logging.adapter.parsers.IStatefulSubstitutionExtension veranlasst den generischen Protokolladapter, lediglich ein Exemplar dieser Klasse zuzuordnen, um alle Sätze der Protokolldatei syntaktisch zu analysieren.
  • Die Benutzerklasse muss in den Klassenpfad der Laufzeit des generischen Protokolladapters eingeschlossen werden.
  • Wird der generische Protokolladapter in einer Eclipse-Umgebung ausgeführt, kann die Klasse als Eclipse-Plug-in-Erweiterung des generischen Protokolladapters erstellt werden, indem der Erweiterungspunkt 'substitutionExtension' des Plug-ins 'org.eclipse.hyades.logging.adapter' verwendet wird.
Zeitformat string (Zeichenfolge) Dieses Feld gilt nur für Substitutionsregeln für das Element 'creationTime' und wird verwendet, um die Syntaxanalyse von Datums- und Zeitangaben zu vereinfachen. Einige Protokolldateien beispielsweise enthalten Zeitmarken, in denen die Monate nicht als numerischer Wert, sondern als Name angegeben werden. Dies erschwert die Erstellung von Substitutionsregeln zum Generieren des Zeichenfolgewerts im Format des XML-Schemadatentyps 'dateTime', der für das CBE-Element 'creationTime' erforderlich ist. In diesem Fall kann der Benutzer im Feld 'Zeitformat' ein einfaches Java-Datumsformat (SimpleDateFormat) in Form einer Zeichenfolge angeben, wie in der JavaDoc für java.text.SimpleDateFormat (java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html) dokumentiert. Der Wert, der mit den Spezifikationen 'Positionen', 'Übereinstimmung' und 'Substitution' der Regel übereinstimmt, wird auf Grundlage der Zeichenfolge des Zeitformats syntaktisch analysiert, und der sich daraus ergebende Wert wird verwendet, um den Wert für das CBE-Element 'creationTime' zu generieren.

Formatierungsprogramm

Das Formatierungsprogramm verwendet die vom Parser gelieferten Zuordnungen zwischen Attributen und ihren Werten und erstellt das korrekte Java-Objektexemplar. Die Laufzeit des Adapters enthält ein einziges Formatierungsprogramm, das Common Base Event-Objekte gemäß der Spezifikation von Common Base Event Version 1.0.1 erstellt.

Das Formatierungsprogramm enthält die folgenden Eigenschaften:

Eigenschaft Typ Verhalten
Eindeutige ID string (Zeichenfolge) Eine eindeutige Kennung für diese Komponente. Das Formatierungsprogramm verweist auf diese Zeichenfolge, um das zu verwendende Exemplar der Komponente zu identifizieren.
Beschreibung string (Zeichenfolge) Eine Textbeschreibung des Formatierungsprogramms. Dieser Wert wird nur vom Editor für Adapterkonfiguration verwendet.

Ausgabeprogramm

Das Ausgabeprogramm exportiert die resultierenden Common Base Event-Datensätze, die vom Formatierungsprogramm geliefert werden. Ausgabeprogramme liefern den Mechanismus zum Speichern der Endausgaben des Kontexts zur Verfügung oder betten diesen Mechanismus ein. Der generische Hyades-Protokolladapter stellt die folgenden Ausgabeprogramme zur Verfügung:

Eigenschaften des Ausgabeprogramms:

Eigenschaft Typ Verhalten
Eindeutige ID string (Zeichenfolge) Eine eindeutige Kennung für diese Komponente. Das Ausgabeprogramm verweist auf diese Zeichenfolge, um das zu verwendende Exemplar der Komponente zu identifizieren.
Beschreibung string (Zeichenfolge) Eine Textbeschreibung des Ausgabeprogramms. Dieser Wert wird nur vom Editor für Adapterkonfiguration verwendet.
Ausgabeprogrammtyp enumeration (Aufzählung) Der Typ des betreffenden Ausgabeprogramms.

Ausgabeprogrammtypen und erforderliche Eigenschaften:

Ausgabeprogrammtyp Erforderliche Eigenschaften
StandardOutOutputter Keine
SingleFileOutputter directory (Verzeichnis), fileName (Dateiname)
LoggingAgentOutputter agentName - Der Name, der dem Protokollierungsagenten beim Erstellen zugeordnet wird.
waitUntilLoggingTime (optional) - Die Zeitspanne, die das Ausgabeprogramm wartet, bis der Benutzer den Agenten zuordnet und dessen Überwachung startet, bevor das Programm Datensätze an den Agenten schreibt. Wird für diese Eigenschaft kein Wert angegeben, wartet das Ausgabeprogramm nicht bis zum Start der Überwachung des Agenten, bevor es Datensätze an ihn schreibt.
NotificationOutputter resourceURL - URL des Benachrichtigungsziels (Notification Sink), das die Ereignisse empfängt.

 

Verwandte Konzepte
Übersicht über generischen Hyades-Protokolladapter
Spezifikation des Common Base Event-Formats

Verwandte Tasks
Protokollparser erstellen
Regelbasierten Adapter erstellen
Statischen Adapter erstellen

Verwandte Verweise
Struktur der Adapterkonfigurationsdatei
Spezifikation des Common Base Event-Formats
Editor für Adapterkonfiguration
Grammatik von regulären Ausdrücken