Estrutura do Arquivo de Configuração do Adaptador

Um arquivo de configuração do adaptador contém uma coleção de contextos a serem executados por uma instância de tempo de execução do Adaptador de Log Genérico. Cada contexto descreve como processar um único arquivo de log. Como o arquivo de configuração do adaptador pode conter muitos desses contextos, o adaptador pode processar muitos arquivos de log ao mesmo tempo.

Cada contexto associado a um arquivo de log específico é constituído de uma série de componentes. Cada componente tem uma função a ser desempenhada no processamento de um arquivo de log.

O diagrama a seguir mostra a estrutura de uma configuração típica do Adaptador de Log Genérico.

Diagrama mostrando um adaptador com um único contexto e um número de componentes

Contexto

O contexto descreve o agrupamento ordenado de componentes conforme eles são encadeados juntos para processamento do arquivo de log. Cada arquivo de log possui um contexto separado e vários contextos podem ser definidos em uma única configuração. O Adaptador de Log Genérico fornece duas implementações de contexto:

Um contexto tem as propriedades a seguir:

Propriedade Type Comportamento
Descrição string Uma descrição de texto para o contexto. Este valor é utilizado apenas pelo Editor de Configuração de Adaptador.
ID Exclusivo string Um identificador exclusivo deste contexto. O contexto refere-se a esta cadeia para identificar a instância do componente a ser utilizada.
É Operação Contínua boolean Indica se este arquivo de log deve, ou não, ser monitorado quanto a alterações com base nas propriedades Tempo Máximo Inativo e Intervalo de Pausa.
Tempo Máximo Inativo inteiro (milissegundos) O período de tempo máximo que o contexto aguardará pela alteração de um arquivo de log, antes de encerrar a si mesmo.
Intervalo de Pausa inteiro (milissegundos) O período de tempo que o contexto aguardará, depois de alcançar o fim do arquivo de log, antes de tentar ler novamente.
Código de idioma ISO O código de idioma do Código do idioma no qual o arquivo de log foi gerado. Esses códigos são os códigos de duas letras minúsculas conforme definidos pelo ISO-639. Uma lista completa desses códigos pode ser encontrada em vários sites, como por exemplo: http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt. Se esse valor não for especificado, o idioma do Código do idioma atual no qual o Adaptador de Log Genérico está executando será utilizado. Esse valor é usado ao analisar timestamps no arquivo de log.
Código do país ISO O código do país do Código do idioma no qual o arquivo de log foi gerado. Esses códigos são os códigos de duas letras maiúsculas conforme definidos pelo ISO-3166. Uma lista completa desses códigos pode ser encontrada em vários sites, como por exemplo: http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html. Se esse valor não for especificado, o país do Código do idioma atual no qual o Adaptador de Log Genérico está executando será utilizado. Esse valor é usado ao analisar timestamps no arquivo de log.
Encoding A codificação de caracteres do arquivo de log a ser analisado. O valor de codificação especificado deve ser um valor listado no IANA Charset Registry (http://www.iana.org/assignments/character-sets) e deve ser suportado pela JVM na qual o Adaptador de Log Genérico é executado. Se esse valor não for especificado, o arquivo de log será analisado utilizando a codificação de arquivo padrão da JVM na qual o Adaptador de Log Genérico é executado, conforme especificada propriedade de sistema da JVM file.encoding.

Sensor

O sensor fornece o mecanismo para ler o conteúdo do log para processamento. O Adaptador de Log Genérico fornece os sensores a seguir:

A tabela a seguir lista os atributos que são comuns entre os tipos de sensor.

Atributos do Sensor

Nome do Atributo Type Comportamento
Tipo de Sensor cadeia O tipo de sensor a ser utilizado pelo adaptador.
Descrição (obrigatório) cadeia Uma descrição de texto para o sensor. Este valor é utilizado apenas pelo Editor de Configuração de Adaptador.
ID Exclusivo (obrigatório) cadeia Um identificador exclusivo para este componente. O sensor refere-se a esta cadeia para identificar a instância do componente a ser utilizada.
Bloco Máximo (obrigatório) Integer O número máximo de linhas que o sensor lê antes de redirecionar para processamento no extrator. Para o tipo StaticParserSensor, este campo indica o número máximo de objetos Common Base Event criados pelo analisador estático antes de redirecionar para processamento no emissor de saída.
Buffer de Confiança Integer Os n últimos bytes de um arquivo a serem salvos e utilizados para determinar se ocorreu uma anexação ao arquivo desde a última leitura.
Tamanho do Rodapé Integer Os n bytes de um arquivo que contém conteúdo estático. Alguns arquivos de log anexam um rodapé ao final do arquivo de log. Esta parte do arquivo de log não é considerada dados de log. A parte do rodapé de um arquivo não será utilizada ao determinar se ocorreu uma anexação desde a última leitura do arquivo.

A tabela a seguir lista as propriedades específicas de cada tipo de sensor. As propriedades a seguir são conhecidas pelo código do componente e devem ser digitadas exatamente conforme indicado na tabela para que sejam reconhecidas e utilizadas pelo componente.

Tipo de Sensor Properties Aplicação
SingleFileSensor
directory (obrigatório)
O local do diretório do arquivo a ser lido pelo SingleFileSensor.
fileName (obrigatório)
O nome do arquivo a ser lido pelo SingleFileSensor.Se o aplicativo utilizar rotação de arquivos de log, expressões comuns podem ser usadas para especificar o nome do arquivo.
Nota: As maiúsculas e minúsculas são levadas em consideração ao interpretar o campo fileName. Se você quiser que o campo não faça distinção entre maiúsculas e minúsculas, especifique o nome do arquivo utilizando uma expressão comum.
shell
O shell UNIX para executar o comando do conversor. Utilizado apenas em plataformas UNIX
converter
Uma linha de comandos para uma instrução de pré-processamento ser executada antes de iniciar o sensor.
Utilizado ao criar um adaptador para analisar um arquivo de log com regras de expressão comum
StaticParserSensor
directory (obrigatório)
O local do diretório do arquivo a ser lido pelo StaticParserSensor.
fileName (obrigatório)
O nome do arquivo a ser lido pelo StaticParserSensor.
parserClassName (obrigatório)
O nome da classe Java que implementa o analisador estático. A classe deve implementar a interface org.eclipse.hyades.logging.parsers.IParser.
Utilizado ao criar um adaptador para analisar um arquivo de log com uma classe Java do analisador de log.

Extrator

O Extrator extrai uma coleção de linhas de entrada fornecidas pelo sensor e as separa em limites de mensagens.

O Adaptador de Log Genérico fornece os extratores a seguir:

As propriedades a seguir são fornecidas como parte da configuração do extrator:

Propriedade Type Comportamento
Descrição string Uma descrição de texto para o extrator. Este valor é utilizado apenas pelo Editor de Configuração de Adaptador.
ID Exclusivo string Um identificador exclusivo para este componente. O extrator refere-se a esta cadeia para identificar a instância do componente a ser utilizada.
Contém Quebras de Linha boolean Indica se as mensagens no arquivo de log se estendem por várias linhas.
Substituir Quebras de Linha boolean Substitui as quebras de linha neste arquivo por um outro segmento de cadeia. A substituição é feita antes do extrator procurar o Padrão de Início e o Padrão de Fim.
Nota: O efeito colateral de usar essa opção é que os valores analisados do arquivo de log não conterão quebras de linha a menos que sejam incluídas explicitamente pelas regras de substituição do analisador.
Símbolo de Quebra de Linha string O segmento de cadeia a substituir as quebras de linha. Utilizado apenas se Substituir Quebras de Linha for true.
Incluir Padrão de Início boolean Indica se o StartPattern deve ser incluído como parte da mensagem a ser redirecionada para o próximo componente. Se o valor for false, a parte correspondente da mensagem será multiplexada.
Padrão de Início cadeia ou expressão comum O segmento de cadeia que identifica o início de uma mensagem. Você sempre pode utilizar a classe RegularExpressionExtractor. No entanto, se o padrão de início for uma cadeia simples, a classe SimpleExtractor estará sujeita a menos sobrecarga.
Incluir Padrão de Fim boolean Indica se o Padrão de Fim deve ser incluído como parte da mensagem a ser redirecionada para o próximo componente. Se o valor for false, a parte correspondente da mensagem será multiplexada.
Padrão de Fim cadeia ou expressão comum O segmento de cadeia que identifica o fim de uma mensagem. Se o Padrão de Fim não for especificado, a mensagem será delimitada pelo próximo Padrão de Início.

Analisador

O analisador obtém as mensagens que foram delimitadas pelo extrator e constrói um conjunto de mapeamentos de valores de cadeia para uma estrutura de dados. No caso do Adaptador de Log Genérico, a estrutura de dados é o Common Base Event 1.0.1

O Adaptador de Log Genérico fornece a classe de analisador a seguir:

O analisador tem duas fases de execução:

  1. A fase de processamento global, em que um conjunto de expressões comuns globais são executadas para a mensagem fornecida pelo extrator.
  2. A fase de processamento de atributos, em que conjuntos específicos de regras de substituição são executados para determinar o valor a ser designado para cada atributo na estrutura de dados (Common Base Event 1.0.1).

As duas fases de execução permitem que a mensagem seja representada por token para uma série de valores de atributos durante a fase de processamento global. Os valores de atributos podem ser referidos pelo nome do atributo ou índice durante a fase de processamento de atributos.

As propriedades globais a seguir são especificadas como parte do analisador:

Propriedade Type Comportamento
Descrição string Uma descrição de texto para o analisador. Este valor é utilizado apenas pelo Editor de Configuração de Adaptador.
ID Exclusivo string Um identificador exclusivo para este componente. O analisador refere-se a esta cadeia para identificar a instância do componente a ser utilizada.
Token de Separador cadeia ou expressão comum Um token ou uma expressão comum que descreve uma série de tokens, que fragmenta a mensagem em pares de atributo-valor.

Por exemplo, se cada nova linha do arquivo de log contiver um atributo e seu valor, você poderá especificar um Token de Separador \n. A vantagem de fragmentar a mensagem é que os segmentos de cadeia podem ser referidos na fase de processamento de atributos.
Nota: Se um token de separador não for especificado, nenhum processamento global será executado.

Token de Atribuição cadeia ou expressão comum Um token ou uma expressão comum que descreve uma série de tokens, que fragmenta os segmentos de cadeia criados pelo Token de Separador em pares de atributo-valor. Por exemplo, se cada atributo e valor forem separados por um sinal = e o valor do Token de Atribuição for =, o atributo e seu valor poderão ser referidos na fase de processamento de atributos. Se um token de separador for especificado, mas um token de atribuição não for especificado, a mensagem será fragmentada em uma lista de valores de atributos que poderão ser referidos nas regras de substituição por índice.

Os atributos individuais do Common Base Event possuem as propriedades a seguir:

Nota: Os valores analisados durante a fase de processamento global serão limpos de caracteres de espaço em branco iniciais e finais. Portanto, as regras de substituição que usarem valores de posição podem ser criadas supondo que os valores não terão caracteres de espaço em branco iniciais ou finais.

Propriedade Type Comportamento
Utilizar Substituição de Correspondência Anterior como Padrão boolean Se o conjunto atual de regras de substituição para esta atributo retornar uma correspondência positiva, armazene o valor de correspondência para que ele possa ser utilizado como padrão para processar o próximo registro, se não houver correspondência positiva.
Valor Padrão cadeia Se nenhuma das regras de substituição fornecer uma correspondência positiva para este atributo ou não houver regras de substituição para ele, este atributo será designado ao valor padrão especificado aqui. Se desejar o mesmo valor para todos os registros de um atributo específico, será possível utilizar esta propriedade em vez de criar uma regra de substituição padrão para este atributo. Observe que Utilizar Substituição de Correspondência Anterior como Padrão terá precedência se houver um valor salvo disponível.
Exigido pelo pai boolean Permite especificar se este elemento deve ou não ter um valor válido para que o elemento pai seja válido. Por exemplo, se esta opção for selecionada para o elemento situation, isso indicará ao analisador que o objeto Common Base Event precisa ter um elemento situation válido. Durante o processamento, se o elemento situation retornar um valor nulo, o analisador não processará nenhum dos outros elementos filhos do objeto Common Base Event porque ele já saberá que este objeto Common Base Event é inválido, já que um elemento filho exigido retornou um valor inválido.
Opção de filho boolean Permite especificar se o processamento para este elemento deve ou não parar quando um atributo ou elemento filho válido retornar um valor válido. Por exemplo, considere a situation com três elementos filhos, ReportSituation, RequestSituation e StartSituation, cada um deles com suas próprias sub-árvores. Se a opção Opção do filho for selecionada para o elemento situation, a análise parará na sub-árvore de seu primeiro filho que retornar um valor válido.

As regras de substituição são executadas como parte da fase de processamento de atributos. Elas são processadas, na ordem, de cima para baixo. Assim que uma regra é correspondida, nenhuma outra regra é executada para esta propriedade. Se nenhuma correspondência for localizada, nenhum valor será colocado no atributo, a menos que as propriedades Utilizar Substituição de Correspondência Anterior como Padrão ou Valor Padrão do atributo sejam especificadas.

As regras de substituição contêm as propriedades a seguir:

Propriedade Type Comportamento
Corresponder expressão comum A expressão comum que identifica o valor a ser aplicado para este atributo se ocorrer uma correspondência no escopo do segmento de cadeia que estiver sendo processado por esta Regra de Substituição. Se você não fornecer uma expressão comum, a regra será considerada uma correspondência.
Posições pares de atributos de nome-valor As Posições permitem referir-se aos pares de atributos de nome-valor criados durante a fase de processamento global.
  • Se ambos os separadores, de token e de atribuição, forem especificados, a cadeia Posições poderá referir-se a vários atributos por nome, utilizando a gramática a seguir: $h('Attr1')@@$h('Attr2')...
    $h('Attrn') identifica um nome de atributo criado anteriormente.
    em que @@ é o separador entre os atributos.
  • Se um token de separador for especificado, mas não um token de atribuição, a cadeia de Posições poderá referir-se a um ou mais atributos por índice, em vez de por nome, utilizando a gramática a seguir: n1@@n2..
    em que n1 e n2 são inteiros que representam os índices. O índice inicial em 1. Se a cadeia de mensagem começar com um token de separador, o valor do atributo no índice 1 será nulo. O primeiro valor de atributo começará no índice 2.

Na propriedade Corresponder, você pode incluir o separador para indicar quais expressões comuns devem ser aplicadas a qual valor de atributo.

Substituir string O valor a ser colocado no atributo. Pode ser uma cadeia ou pode referir-se à expressão comum na propriedade Corresponder. Os segmentos de cadeia que são extraídos pela propriedade Corresponder podem ser referidos utilizando os agrupamentos na expressão comum. $1 indica o primeiro agrupamento, $2 o segundo e assim por diante.
Utilizar Função Interna caixa de opções Utilizar a função interna quando selecionada para um atributo, se nenhuma das regras de substituição anteriores, se alguma existir, for correspondida, faz com que o tempo de execução do Adaptador de Log Genérico gere um valor para este atributo utilizando suas próprias funções internas. Esse recurso é suportado somente para os seguintes atributos do CBE:
  • localInstanceId
  • globalInstanceId
  • componentIdentification.location
  • componentIdentification.locationType
Classe de Substituição string Especifica o nome de uma classe Java criada pelo usuário que pode executar lógica de análise customizada no valor correspondido pelas especificações Posições, Corresponder e Substituir da regra. Se a regra de substituição corresponder aos dados no registro, essa classe será chamada e o resultado será utilizado para criar o objeto Common Base Event.
Especificações:
  • Esta classe deve implementar a classe de interface org.eclipse.hyades.logging.adapter.parsers.ISubstitutionExtension ou a classe de extensão org.eclipse.hyades.logging.adapter.parsers.IStatefulSubstitutionExtension para que seja executada pelo Adaptador de Log Genérico.
  • Utilize a classe de extensão quando você deseja salvar os dados do estado entre os registros do arquivo de log. A classe org.eclipse.hyades.logging.adapter.parsers.IStatefulSubstitutionExtension faz com que o Adaptador de Log Genérico aloque apenas uma instância dessa classe para analisar todos os registros no arquivo de log.
  • A classe de usuário deve ser incluída no caminho de classe do tempo de execução do Adaptador de Log Genérico.
  • Se o Adaptador de Log Genérico estiver sendo executado em um ambiente Eclipse, a classe poderá ser criada como uma extensão de plug-in eclipse do Adaptador de Log Genérico, utilizando o ponto de extensão substitutionExtension do plug-in org.eclipse.hyades.logging.adapter.
Formato de Hora string Este campo se aplica apenas às regras de substituição do elemento creationTime e é utilizado para simplificar a análise de data e hora. Por exemplo, alguns arquivos de log contêm time stamps que incluem o nome do mês em vez de sua representação numérica. Isso dificulta a criação de regras de substituição para gerar o valor de cadeia na forma do tipo de dados dateTime do Esquema XML requerido pelo elemento creationTime do CBE. Neste caso, o usuário pode especificar um formato de data simples do java, conforme documentado no javadoc para java.text.SimpleDateFormat (java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html) no campo Formato de Hora. O valor correspondido pelas especificações Posições, Corresponder e Substituir da regra será analisado com base na cadeia de Formato de Hora e o valor resultante será utilizado para gerar o valor creationTime do CBE.
Nota: O Código do idioma, conforme representado pelos valores de código de idioma e de país ISO especificados na configuração da Instância do Contexto, é usado ao analisar o timestamp com a cadeia de formato de hora.

Formatador

O formatador obtém os mapeamentos de atributos para seus valores fornecidos pelo analisador e constrói a instância correta do objeto Java. O tempo de execução do adaptador contém um único formatador que cria objetos Common Base Event em conformidade com especificação Common Base Event versão 1.0.1.

O formatador contém as propriedades a seguir:

Propriedade Type Comportamento
ID Exclusivo string Um identificador exclusivo para este componente. O formatador refere-se a esta cadeia para identificar a instância do componente a ser utilizada.
Descrição string Uma descrição de texto para o formatador. Este valor é utilizado apenas pelo Editor de Configuração de Adaptador.

Emissor de Saída

O emissor de saída externaliza os registros resultantes do Common Base Event fornecidos pelo formatador. Os emissores de saída fornecem, ou agrupam, o mecanismo para armazenar as saídas finais do contexto. O Adaptador de Log Genérico fornece os seguintes emissores de saída:

Propriedades do emissor de saída:

Propriedade Type Comportamento
ID Exclusivo string Um identificador exclusivo para este componente. O emissor de saída refere-se a esta cadeia para identificar a instância do componente a ser utilizada.
Descrição string Uma descrição de texto para o emissor de saída. Este valor é utilizado apenas pelo Editor de Configuração de Adaptador.
Tipo de Emissor de Saída enumeração O tipo do emissor de saída.

Tipos de emissores de saída e as propriedades obrigatórias:

Tipo de Emissor de Saída Propriedades Obrigatórias
StandardOutOutputter Nenhuma
SingleFileOutputter directory, fileName
LoggingAgentOutputter agentName - nome fornecido ao agente de log quando ele é criado
waitUntilLoggingTime (opcional) - o tempo que o emissor de saída aguardará para o usuário anexar e iniciar a monitoração do agente, antes de iniciar a gravação no agente. Se esta propriedade não for especificada, o emissor de saída não aguardará o agente ser monitorado, antes de gravar nele.

 

Conceitos Relacionados
Visão Geral do Adaptador de Log Genérico Hyades
Especificação do Formato Common Base Event

Tarefas Relacionadas
Criando um Analisador de Log
Criando um Adaptador com Base em Regras
Criando um Adaptador Estático

Referências Relacionadas
Estrutura do Arquivo de Configuração do Adaptador
Especificação do Formato Common Base Event
Editor de Configuração de Adaptador
Gramática de Expressão Comum