Ajuste de las bases de datos: Personalización del índice

Document created by RSA Information Design and Development on Apr 19, 2018Last modified by RSA Information Design and Development on Apr 23, 2018
Version 3Show Document
  • View in full screen mode
 

En este tema se describe cómo usar el archivo de índice personalizado para personalizar el índice. Cada servicio NetWitness NextGen se instala con una configuración de índice predeterminada que tiene como objetivo satisfacer las necesidades del índice para la mayoría de los usuarios del producto. Sin embargo, es posible indexar nuevas claves de metadatos para usar el índice con contenido personalizado que generó metadatos personalizados.

Ubicaciones del archivo de configuración del índice

La personalización del índice se lleva a cabo mediante cambios en el archivo de índice personalizado. La ubicación de este archivo es /etc/netwitness/ng/index-<servicename>-custom.xml , donde <servicename> corresponde al nombre del producto que está personalizando. Por ejemplo, el archivo de índice personalizado de Concentrator es /etc/netwitness/ng/index-concentrator-custom.xml.

Los productos Concentrator también incluyen un archivo que describe la configuración predeterminada del índice: /etc/netwitness/ng/index-concentrator.xml . Este archivo es útil como plantilla para mostrar cómo está formateado el archivo de índice personalizado.

Si realiza personalizaciones al índice en el archivo de índice personalizado, estas anulan los conflictos con la configuración predeterminada del índice.

Puede hacer cambios en el archivo de índice personalizado mientras el servicio está en ejecución. Cuando el servicio recibe un comando de guardado del índice, los cambios en el archivo de índice personalizado se leen y se aplican al índice.

Los cambios en el índice solo se pueden aplicar a los nuevos datos entrantes. Los datos no se pueden volver a indexar retroactivamente con una nueva configuración personalizada del índice, excepto mediante una reconstrucción del índice .

Entradas de configuración del índice

El archivo de índice personalizado es un documento XML. El elemento raíz de este documento es el elemento language y se incluye un elemento por clave de metadatos para describir cada índice personalizado. Cada elemento de la configuración personalizada del índice tiene la siguiente apariencia:

 <key name="did" description="Decoder Source" level="IndexValues" format="Text" valueMax="100" /> 

Definiciones de cada atributo en este elemento: Atributo | Descripción -|- name | Nombre de la clave de metadatos que se indexará description | Descripción en lenguaje natural del tipo de metadatos level | Tipo de índice que se creará para esta clave de metadatos valueMax | Valores únicos máximos que se almacenarán para esta clave por segmento format | Formato de los datos que contienen todos los elementos de metadatos con este nombre de clave de metadatos.

Las siguientes secciones analizan estos parámetros de manera más detallada.

Nombres de metadatos

El nombre de metadatos que usa el índice se refiere al nombre de la clave de metadatos presente en cada elemento de metadatos en la base de datos de metadatos. Los Decoders generan estos nombres de metadatos durante el análisis. Los analizadores pueden optar por generar metadatos con cualquier nombre de clave de metadatos. Por lo tanto, el índice personalizado permite elegir cuáles de los elementos de metadatos que genera el Decoder se indexan.

Los nombres de clave de metadatos pueden tener 16 caracteres de largo e incluir solo letras o el carácter “.”.

Tipos de datos

Cuando el Decoder genera elementos de metadatos, asigna un tipo de datos. Cada analizador puede elegir el tipo de datos de los metadatos que genera. Sin embargo, hay tipos de datos recomendados y estándar para cada una de las claves de metadatos predeterminadas. Por ejemplo, ip.src e ip.dst se almacenan como el tipo de metadatos IPv4 y alias.host se almacena como el tipo de metadatos texto. Cada analizador debe acordar el formato de datos para cada clave de metadatos que genera el Decoder.

Cuando se agrega un índice personalizado a Concentrator, el tipo de datos del índice personalizado debe coincidir con el formato de los datos que genera el Decoder. Si los tipos no coinciden, Concentrator intenta conversiones de los metadatos generados al tipo especificado para el índice personalizado. Sin embargo, estas conversiones pueden fallar y el índice resultante puede producir resultados indeterminados.

Asimismo, cuando muchos Decoders y Concentrators trabajan en conjunto como parte de una instalación de NetWitness, deben acordar los tipos para cada clave de metadatos. Los conflictos de tipos de metadatos entre los servicios NetWitness NextGen pueden llevar a un comportamiento indeterminado.

En la siguiente tabla se muestran los tipos de metadatos compatibles con los servicios NetWitness NextGen.

                                                                                           
Tipo Tamaño en bytes Descripción
Int8 1 Entero de 8 bits con signo
UInt8 1 Entero de 8 bits sin signo
Int16 2 Entero de 16 bits con signo
UInt16 2 Entero de 16 bits sin signo
Int32 4 Entero de 32 bits con signo
UInt32 4 Entero de 32 bits sin signo
Int64 8 Entero de 64 bits con signo
UInt64 8 Entero de 64 bits sin signo
UInt128 16 Entero de 128 bits sin signo
Float32 4 Número de punto flotante de 32 bits, precisión sencilla
Float64 8 Número de punto flotante de 64 bits, doble precisión
TimeT 8 Registro de fecha y hora epoc de Unix
Binaria 1-255 Datos binarios arbitrarios
Texto 1-255 Datos de texto con codificación UTF-8
IPv4 4 Bytes de dirección IPv4
IPv6 16 Bytes de dirección IPv6
MAC 6 Bytes de dirección MAC

Cuando se define un índice personalizado, es importante usar el mejor tipo de datos para los metadatos. Por ejemplo, nunca almacene direcciones IP como texto, puesto que la representación de texto requiere más bytes que la representación IPv4.

Niveles de índice

Hay tres niveles, o tipos, de indexación: IndexNone, IndexKeys e IndexValues.

IndexNone

Este tipo de índice personalizado no es en realidad un índice. Las entradas de índice personalizado con el nivel IndexNone existen solo para definir y documentar la clave de metadatos. Las entradas IndexNone se pueden usar en índices personalizados de Decoder para imponer un tipo de datos específico para una clave de metadatos a todos los analizadores de un Decoder.

IndexKeys

Este tipo de índice personalizado indica que el índice solo hace un seguimiento de las sesiones que contienen elementos de metadatos con este nombre de clave de metadatos. Sin embargo, no indexa ningún valor único en la base de datos de metadatos para la clave de metadatos.

Los índices en el nivel de clave ocupan mucho menos espacio de almacenamiento, memoria y tiempo de CPU destinado a la administración, pero requieren mucho más trabajo del motor de consultas cuando se ejecutan operaciones query o values que los usan.

Si se usa en una cláusula Where, una clave de metadatos indexada en el nivel de clave solo se puede usar para resolver operaciones como exists o !exists.

IndexValues

Este tipo de índice personalizado mantiene sesiones que contienen cada valor único individual para la clave de metadatos. También se conoce como un “índice completo”.

Este tipo de índice se necesita para el procesamiento eficiente de la mayoría de las cláusulas Where y para el uso de esta clave de metadatos como el parámetro fieldName de una llamada values.

Valor máximo

El valor máximo es un parámetro que puede tener un impacto muy significativo en la exactitud y el rendimiento de un índice en el nivel de valor.

A medida que un Decoder analiza paquetes o registros, se le permite crear metadatos de cualquier tipo con cualquier valor. En general, estos elementos de metadatos se crean a partir de datos copiados directamente del paquete o del registro. Por lo tanto, cualquiera puede crear valores de metadatos únicos en respuesta casi a cualquier evento.

El rendimiento del índice depende directamente de la cantidad de valores únicos que ha encontrado para cada clave de metadatos. A medida que la cantidad de valores únicos aumenta, la tasa a la cual se indexan los nuevos metadatos puede disminuir y la velocidad con la cual se completan las consultas baja. Dado que cualquier persona puede influir en la creación de valores de metadatos únicos, es posible que cualquiera afecte el rendimiento del índice.

El parámetro valor máximo limita la cantidad de valores únicos que pueden ingresar al índice. Por lo tanto, un usuario malicioso no puede inundar el sistema con una gran cantidad de valores únicos en un intento por hacer que el sistema NetWitness no funcione.

Es importante configurar un valor máximo en cualquier clave de metadatos cuyo valor pueda recibir la influencia directa de registros o paquetes entrantes.

El valor máximo se aplica solo a valores agregados desde la última operación de guardado del índice.

El límite para la configuración del valor máximo superior varía de una versión a otra y según la cantidad de RAM disponible para el servicio NetWitness NextGen. A partir de 10.3, el límite recomendado para el valor máximo es 5,000,000 para cualquier clave de metadatos. Si hay muchos índices personalizados, es posible que el valor máximo se deba configurar en una cifra inferior.

maxLength

El parámetro de longitud máxima se utiliza exclusivamente en el tipo de metadatos word . Debe coincidir con la configuración correspondiente para /decoder/parsers/config/token.max.length en el servicio Log Decoder que genera metadatos de token de palabra. El índice utiliza maxLength para interpretar correctamente los términos de búsqueda que se alimentan en la msearch función de SDK.

Cambio de nombre de clave

El lenguaje de índice admite el concepto de cambio de nombre de clave. Esta función se utiliza para proporcionar compatibilidad con versiones anteriores para los nuevos nombres de clave con el fin de dejar obsoletos los nombres de clave anteriores y reemplazarlos. Un cambio de nombre se logra mediante la adición de elementos rename a la clave. Esto tiene el efecto de indicar que la clave primaria cambia el nombre de la clave en el elemento de cambio de nombre. Por ejemplo, la definición de la clave que aparece a continuación establece una nueva clave denominada port_src que cambia el nombre de la clave tcp.srcport .

 <key name="port_src" description="Source Port" format="UInt16" level="IndexValues"> <rename name="tcp.srcport"/> </key> 

El elemento de cambio de nombre indica a la base de datos que los usos de la clave primaria, en este caso port_src , incluirán elementos de metadatos con el tipo port_src y elementos de metadatos con el tipo tcp.srcport. Por lo tanto, los nuevos elementos de metadatos se pueden agregar a la base de datos y consultar mediante port_src , y tales consultas devolverán información que también se almacenó anteriormente en tcp.srcport.

El elemento de cambio de nombre acepta un único atributo, name , que se refiere a una clave definida anteriormente.

Las claves a las que se hacen referencia los elementos de cambio de nombre deben tener el mismo tipo que la clave primaria.

Las claves a las que se hacen referencia los elementos de cambio de nombre deben tener el mismo nivel de índice que la clave primaria.

Si una clave se redefine en un archivo de índice personalizado y la clave redefinida contiene elementos de cambio de nombre, esos elementos reemplazan a los definidos anteriormente.

Previous Topic:Consultas
You are here
Table of Contents > Personalización del índice

Attachments

    Outcomes