Struttura del file di configurazione dell'adattatore

Un file di configurazione dell'adattatore contiene una raccolta di contesti che devono essere eseguiti da un'istanza di runtime dell'Adattatore di log generico. Ciascun contesto descrive come elaborare un file di log. Poiché il file di configurazione dell'adattatore può contenere molti contesti, l'adattatore può elaborare molti file di log contemporaneamente.

Ciascun contesto associato a un determinato file di log è formato da una serie di componenti. Ciascun componente ha un determinato ruolo nell'elaborazione di un file di log.

Il diagramma seguente mostra la struttura di una tipica configurazione di Adattatore di log generico.

Diagramma che visualizza un adattatore in un contesto singolo e un numero di componenti

Contesto

Il contesto descrive il raggruppamento ordinato dei componenti, così come sono concatenati, per l'elaborazione del file di log. Ciascun file di log ha un contesto separato ed è possibile definire più contesti in un'unica configurazione. L'Adattatore di log generico fornisce due implementazioni di contesto:

Un contesto presenta le seguenti proprietà:

Proprietà Tipo Comportamento
Descrizione stringa Una descrizione di testo per il contesto. Questo valore viene utilizzato solo dall'Editor configurazione adattatore.
Id univoco stringa Un identificativo univoco per questo contesto. Il contesto indica questa stringa per identificare l'istanza del componente da utilizzare.
Operazione continua booleano Se è necessario o meno controllare le modifiche di questo file di log in base alle proprietà Periodo di tempo di inattività massimo e Intervallo.
Periodo di tempo di inattività massimo numero intero (millisecondi) La quantità di tempo massima durante il quale il contesto aspetta la modifica di un file di log prima di essere arrestato.
Intervallo numero intero (millisecondi) La quantità di tempo che il contesto aspetta dopo aver raggiunto la fine del file di log prima di eseguire nuovamente la lettura.
Codice linguaggio ISO Il codice di linguaggio dell'ambiente in cui il file di log è stato creato. Questi codici sono a due lettere minuscole come definito da ISO-639. È possibile trovare l'elenco completo di questi codici in un numero di siti, come: http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt. Se il valore non è specificato, verrà utilizzata la lingua dell'ambiente attuale dove l'Adattatore di log generico viene eseguito. Questo valore viene utilizzato durante l'analisi di data/ora nel file di log.
Codice paese ISO Il codice paese dell'ambiente in cui il file di log è stato creato. Questi codici sono a due lettere maiuscole come definito da ISO-3166. È possibile trovare l'elenco completo di questi codici in un numero di siti, come: http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html. Se il valore non è specificato, verrà utilizzata il paese dell'ambiente attuale dove l'Adattatore di log generico viene eseguito. Questo valore viene utilizzato durante l'analisi di data/ora nel file di log.
Codifica La codifica del carattere del file di log da analizzare. Il valore di codifica specificato deve essere un valore elencato nel IANA Charset Registry (http://www.iana.org/assignments/character-sets) e supportato dal JVM in cui viene eseguito l'Adattatore di log generico. Se questo valore non viene specificato, il file di log verrà analizzato utilizzando la codifica di file predefinita del JVM in cui viene eseguito l'Adattatore di log generico, come specificato nella proprietà di sistema JVM di codifica file.

Sensore

Il sensore fornisce il meccanismo di lettura del contenuto del log per l'elaborazione. L'Adattatore di log generico fornisce i seguenti sensori:

La seguente tabella elenca gli attributi comuni ai tipi di sensore.

Attributi dei sensori

Nome attributo Tipo Comportamento
Tipo di sensore Stringa Il tipo di sensore che l'adattatore deve utilizzare.
Descrizione (obbligatoria) Stringa Una descrizione di testo per il sensore. Questo valore viene utilizzato solo dall'Editor configurazione adattatore.
ID univoco (obbligatorio) Stringa Un identificativo univoco per questo componente. Il sensore indica questa stringa per identificare l'istanza del componente da utilizzare.
Numero massimo di blocchi (obbligatorio) Numero intero Il numero massimo di righe che il sensore legge prima di inoltrarle all'estrattore per l'elaborazione. Per il tipo StaticParserSensor, questo campo indica il numero massimo di oggetti di Common Base Event creati dal programma di analisi statico primo di inoltrarli al programma di creazione output per l'elaborazione.
Buffer di confidenza Numero intero Gli ultimi n byte di un file da salvare e utilizzare per stabilire se si è verificata un'aggiunta al file dall'ultima lettura.
Dimensione piè di pagina Numero intero Gli n byte di un file che contiene il contenuto statico. Alcuni file di log aggiungono un piè di pagina alla fine del file di log. Questa parte del file di log non viene considerata come dati di log. Il piè di pagina di un file non verrà utilizzato quando c'è da stabilire se si è verificata un'aggiunta dall'ultima lettura del file.

La seguente tabella elenca le proprietà specifiche di ciascun tipo di sensore. Le seguenti proprietà sono note al codice del componente e devono essere scritte esattamente come indicate nella tabella per essere riconosciute e utilizzate dal componente stesso.

Tipo di sensore Proprietà Applicazione
SingleFileSensor
directory (obbligatoria)
Il percorso di directory del file che deve essere letto da SinlgeFileSensor.
fileName (obbligatoria)
Il nome del file che deve essere letto dal SingleFileSensor. Se l'applicazione utilizza la rotazione del file di log, è possibile utilizzare le espressioni regolari per specificare il nome del file.
Nota: il caso viene considerato durante l'interpretazione del campo fileName. Se si desidera che il campo non distingua tra maiuscole e minuscole, specificare il nome utilizzando un'espressione regolare.
shell
La shell UNIX in cui eseguire il comando converter. Utilizzata solo su piattaforme UNIX
converter
Una riga comandi per un'istruzione di preelaborazione da eseguire prima di avviare il sensore.
Utilizzata durante la creazione di un adattatore per analizzare un file di log con regole di espressioni regolari
StaticParserSensor
directory (obbligatoria)
Il percorso di directory del file che deve essere letto da StaticParserSensor.
fileName (obbligatoria)
Il nome del file che deve essere letto da StaticParserSensor.
parserClassName (obbligatoria)
Il nome della classe Java che implementa il programma di analisi statico. La classe deve implementare l'interfaccia org.eclipse.hyades.logging.parsers.IParser.
Utilizzata durante la creazione di un adattatore per analizzare un file di log con una classe Java del programma di analisi statico.

Estrattore

L'estrattore prende una raccolta di righe di input fornite dal sensore e le separa nei limiti dei messaggi.

L'Adattatore di log generico fornisce i seguenti estrattori:

Le seguenti proprietà vengono fornite come parte della configurazione per l'estrattore:

Proprietà Tipo Comportamento
Descrizione stringa Una descrizione di testo per l'estrattore. Questo valore viene utilizzato solo dall'Editor configurazione adattatore.
Id univoco stringa Un identificativo univoco per questo componente. L'estrattore indica questa stringa per identificare l'istanza del componente da utilizzare.
Contiene interruzioni riga booleano Indica se i messaggi nel file di log sono suddivisi in più righe.
Sostituire le interruzioni riga booleano Sostituire le interruzioni riga in questo file con un altro segmento di stringa. La sostituzione viene eseguita prima che l'estrattore cerchi il Modello iniziale o il Modello finale.
Nota: l'effetto secondario dell'utilizzo di questa funzione è che i valori analizzati dal file di log non conterranno interruzioni di riga a meno che non vengano aggiunte esplicitamente dalle regole di sostituzione del programma di analisi.
Simbolo di interruzione riga stringa Il segmento di stringa con cui sostituire le interruzioni riga. Utilizzata solo quando la proprietà Sostituire interruzioni righe è true.
Includi modello iniziale booleano Se includere il modello iniziale come parte del messaggio da inoltrare al componente successivo. Se il valore è false, la parte corrispondente del messaggio viene eliminata.
Modello iniziale stringa o espressione regolare Il segmento di stringa che identifica l'inizio di un messaggio. È possibile utilizzare sempre la classe RegularExpressionExtractor. Tuttavia, se il modello iniziale è una stringa semplice, la classe SimpleExtractor è meno complessa.
Includi modello finale booleano Se includere il modello finale come parte del messaggio da inoltrare al componente successivo. Se il valore è false, la parte corrispondente del messaggio viene eliminata.
Modello finale stringa o espressione regolare Il segmento di stringa che identifica la fine di un messaggio. Se il modello finale non è specificato, il messaggio viene delimitato dal modello iniziale successivo.

Programma di analisi

Il programma di analisi prende i messaggi delimitati dall'estrattore e genera un insieme di associazioni di valori della stringa in una struttura di dati. Nel caso dell'Adattatore di log generico, la struttura di dati è Common Base Event 1.0.1

L'Adattatore di log generico fornisce la seguente classe del programma di analisi:

Il programma di analisi prevede due fasi di esecuzione:

  1. La fase di elaborazione globale, in cui viene eseguito un insieme di espressioni regolari globali nel messaggio fornito dall'estrattore.
  2. La fase di elaborazione attributi, in cui vengono eseguiti insiemi specifici di regole di sostituzione per stabilire il valore da assegnare a ciascun attributo nella struttura di dati (Common Base Event 1.0.1).

Le due fasi di esecuzione consentono l'aggiunta di token dei messaggi alla serie di valori dell'attributo durante la fase di elaborazione globale. I valori dell'attributo possono essere indicati per nome attributo o indice durante la fase di elaborazione attributi.

Le seguenti proprietà globali vengono specificate come parte del programma di analisi:

Proprietà Tipo Comportamento
Descrizione stringa Una descrizione di testo per il programma di analisi. Questo valore viene utilizzato solo dall'Editor configurazione adattatore.
Id univoco stringa Un identificativo univoco per questo componente. Il programma di analisi indica questa stringa per identificare l'istanza del componente da utilizzare.
Token di separazione stringa o espressione regolare Un token o un'espressione regolare che descrive una serie di token che suddivide il messaggio in coppie attributo-valore.

Ad esempio, se ciascuna nuova riga del file di log contiene un attributo e il relativo valore, è possibile specificare un token di separazione di \n. Il vantaggio che deriva dalla suddivisione del messaggio è rappresentato dal fatto che i segmenti di stringa possono essere indicati nella fase di elaborazione attributi.
Nota: se non si specifica un token di separazione non viene eseguita alcuna elaborazione globale.

Token di designazione stringa o espressione regolare Un token o un'espressione regolare che descrive una serie di token che suddivide i segmenti di stringa creati dal token di separazione in coppie attributo-valore. Ad esempio, se ciascun attributo e relativo valore vengono separati da un segno = e il valore del token di designazione è =, l'attributo e il relativo valore possono essere indicati nella fase di elaborazione attributi. Se viene specificato un token di separazione ma non un token di designazione, il messaggio viene suddiviso in un elenco di valori dell'attributo che possono essere indicati nelle regole di sostituzione per indice.

I singoli attributi di Common Base Event presentano le seguenti proprietà:

Nota: dai valori analizzati durante la fase di elaborazione globale verranno eliminati gli spazi vuoti iniziali e finali. Per cui, le regole di sostituzione che utilizzano i valori di posizione possono essere scritte assumendo che i valori non hanno spazi vuoti iniziali o finali.

Proprietà Tipo Comportamento
Utilizzare come impostazione predefinita la sostituzione corrispondente precedente booleano Se l'insieme corrente di regole di sostituzione per questo attributo restituisce una corrispondenza positiva, memorizzare il valore di corrispondenza in modo che possa essere utilizzato come impostazione predefinita per elaborare il record successivo in assenza di una corrispondenza positiva.
Valore predefinito Stringa Se nessuna delle regole di sostituzione per questo attributo fornisce una corrispondenza positiva o se non ci sono regole di sostituzione, questo attributo verrà assegnato al valore predefinito specificato qui. Se si desidera assegnare lo stesso valore a tutti i record per un determinato attributo, è possibile utilizzare questa proprietà invece di creare una regola di sostituzione predefinita per l'attributo. Si noti che la proprietà Utilizzare come impostazione predefinita la sostituzione corrispondente precedente avrà la precedenza se è disponibile un valore salvato.
Richiesto da principale booleano Consente di specificare se questo elemento deve avere o meno un valore valido affinché l'elemento principale sia valido. Ad esempio, la selezione di questa opzione per l'elemento situazione indica al programma di analisi che l'oggetto Common Base Event deve avere un elemento di situazione valido. Durante l'elaborazione, se l'elemento situazione restituisce un valore null, il programma di analisi non elaborerà altri elementi secondari dell'oggetto Common Base Event poiché è già noto che quest'ultimo non è valido, in quanto un elemento secondario necessario ha restituito un valore non valido.
Scelta di secondario booleano Consente di specificare se l'elaborazione per tale elemento deve essere arrestata o meno quando un attributo secondario valido o un elemento restituisce un valore valido. Ad esempio, si consideri la situazione con tre elementi secondari, ReportSituation, RequestSituation e StartSituation, ciascuno con le proprie strutture secondarie. Se l'opzione Scelta di secondario viene selezionata per l'elemento situazione, l'analisi si arresterà alla prima struttura secondaria di elemento secondario che restituisce un valore valido.

Le regole di sostituzione vengono eseguite come parte della fase di elaborazione attributi. Vengono elaborate dalla prima all'ultima. Una volta che una regola diventa una corrispondenza, non vengono eseguite più regole per questa proprietà. Se non è possibile trovare alcuna corrispondenza, non viene posto alcun valore nell'attributo a meno che la proprietà Utilizzare come impostazione predefinita la sostituzione corrispondente precedente o Valore predefinito dell'attributo sia specificata.

Le regole di sostituzione contengono le seguenti proprietà:

Proprietà Tipo Comportamento
Corrispondenza espressione regolare L'espressione regolare che identifica il valore da applicare a questo attributo se si verifica una corrispondenza nell'ambito del segmento di stringa elaborato da questa regola di sostituzione. Se non viene fornita un'espressione regolare, la regola viene considerata come una corrispondenza.
Posizioni coppia attributo nome-valore Le posizioni consentono di indicare le coppie attributo nome-valore create durante la fase di elaborazione globale.
  • Se viene specificato sia un token di separazione che di designazione, la stringa Posizioni può indicare molti attributi per nome utilizzando la seguente grammatica: $h('Attr1')@@$h('Attr2')...
    $h('Attrn') identifica un nome attributo creato precedentemente.
    dove @@ è il separatore tra gli attributi.
  • Se viene specificato un token di separazione ma non di designazione, la stringa Posizioni può indicare uno o più attributi per indice e non per nome utilizzando la seguente grammatica: n1@@n2..
    dove n1 e n2 sono numeri interi che rappresentano gli indici. L'indice inizia a 1. Se la stringa del messaggio inizia con un token di separazione, il valore dell'attributo all'indice 1 sarà null. Il primo valore dell'attributo inizierà all'indice 2.

Nella proprietà Corrispondenza, è possibile aggiungere il separatore per indicare le espressioni regolari da applicare a un valore dell'attributo.

Sostituzione stringa Il valore da porre nell'attributo. Può essere una stringa o indicare l'espressione regolare nella proprietà Corrispondenza. I segmenti di stringa estratti dalla proprietà Corrispondenza possono essere indicati utilizzando i raggruppamenti nell'espressione regolare. $1 indica il primo raggruppamento, $2 il secondo e così via.
Utilizzare la funzione integrata casella di controllo La proprietà Utilizzare la funzione integrata, quando selezionata per un attributo, se nessuna delle regole di sostituzione precedenti, se esistenti, è corrispondente, farà sì che l'Analizzatore di log generico generi un valore per l'attributo utilizzando le proprie funzioni interne. Questa funzione è supportata solo dai seguenti attributi CBE:
  • localInstanceId
  • globalInstanceId
  • componentIdentification.location
  • componentIdentification.locationType
Classe di sostituzione stringa Specifica il nome di una classe Java creata da un utente che può eseguire la logica di analisi personalizzata sul valore corrispondente alle specifiche Posizioni, Corrispondenza e Sostituzione della regola. Se la regola di sostituzione corrisponde ai dati nel record, questa classe verrà richiamata e il risultato verrà utilizzato per creare l'oggetto Common Base Event.
Specifiche:
  • Questa classe deve implementare la classe di interfaccia org.eclipse.hyades.logging.adapter.parsers.ISubstitutionExtension o la classe di estensione org.eclipse.hyades.logging.adapter.parsers.IStatefulSubstitutionExtension per poter essere eseguita dall'Adattatore di log generico.
  • Utilizzare la classe di estensione quando si desidera salvare i dati di stato tra i record del file di log. La classe org.eclipse.hyades.logging.adapter.parsers.IStatefulSubstitutionExtension fa sì che l'Analizzatore di log generico assegni un'istanza di questa classe per analizzare tutti i record del file di log.
  • La classe utente deve essere inclusa nel percorso classe del runtime dell'Analizzatore di log generico.
  • Se l'Adattatore di log generico è in esecuzione in un ambiente Eclipse, la classe può essere creata come una sua estensione del plugin eclipse utilizzando il punto di estensione substitutionExtension del plugin org.eclipse.hyades.logging.adapter.
Formato ora stringa Questo campo si applica solo alle regole di sostituzione per l'elemento creationTime e viene utilizzato per semplificare l'analisi di data e ora. Ad esempio, alcuni file di log contengono una data e ora che comprende i nomi del mese invece della rappresentazione numerica. Ciò rende difficile creare regole di sostituzione per generare il valore della stringa nella forma del tipo di dati dateTime dello Schema XML richiesto dall'elemento CBE creationTime. In questo caso, l'utente può specificare una stringa in formato data semplice come documentato nel javadoc per java.text.SimpleDateFormat (java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html) nel campo Formato ora. Il valore corrispondente alle specifiche Posizioni, Corrispondenza e Sostituzioni della regola verrà analizzato in base alla stringa Formato ora e il valore risultante verrà utilizzato per generare il valore CBE creationTime.
Nota: la località, come rappresentata dai valori di codice ISO lingua e paese specificati nella configurazione di Istanza di contesto, viene utilizzata analizzando data e ora con la stringa in formato tempo.

Programma di formattazione

Il programma di formattazione assegna le associazioni degli attributi ai relativi valori forniti dal programma di analisi e genera l'istanza dell'oggetto Java corretta. Il runtime dell'adattatore contiene un unico programma di formattazione che crea gli oggetti di Common Base Event conforme alla specifica della versione di Common Base Event 1.0.1.

Il programma di formattazione presenta le seguenti proprietà:

Proprietà Tipo Comportamento
Id univoco stringa Un identificativo univoco per questo componente. Il programma di formattazione indica questa stringa per identificare l'istanza del componente da utilizzare.
Descrizione stringa Una descrizione di testo per il programma di formattazione. Questo valore viene utilizzato solo dall'Editor configurazione adattatore.

Programma di creazione output

Il programma di creazione output esternalizza i record di Common Base Event risultanti forniti dal programma di formattazione. I programmi di creazione output forniscono il meccanismo per memorizzare gli output finali del contesto. L'Adattatore di log generico Hyades fornisce i seguenti programmi di creazione output:

Proprietà del programma di creazione output:

Proprietà Tipo Comportamento
Id univoco stringa Un identificativo univoco per questo componente. Il programma di creazione output indica questa stringa per identificare l'istanza del componente da utilizzare.
Descrizione stringa Una descrizione di testo per il programma di creazione output. Questo valore viene utilizzato solo dall'Editor configurazione adattatore.
Tipo di programma di creazione output enumerazione Il tipo di programma di creazione output.

Tipi di programmi di creazione output e proprietà obbligatorie:

Tipo di programma di creazione output Proprietà obbligatorie
StandardOutOutputter Nessuna
SingleFileOutputter directory, fileName
LoggingAgentOutputter agentName - nome dato all'agente di registrazione log quando viene creato
waitUntilLoggingTime(optional)- il tempo che il programma di creazione output attende che l'utente colleghi e avvii il controllo dell'agente prima di iniziare a scrivere all'agente. Se questa proprietà non viene specificata, il programma di creazione output non attenderà che l'agente sia controllato prima di scrivergli.

 

Argomenti correlati
Panoramica dell'Adattatore di log generico Hyades
Specifica del formato di Common Base Event

Attività correlate
Creazione di un programma di analisi di log
Creazione di un adattatore basato su regole
Creazione di un adattatore statico

Riferimenti correlati
Struttura del file di configurazione dell'adattatore
Specifica del formato di Common Base Event
Editor configurazione adattatore
Grammatica espressione regolare