Convertir texto no estructurado en JSON

En IBM® Cloud Logs, puede utilizar la regla Analizar para convertir texto no estructurado en 1 o más campos JSON.

Antes de empezar

Las reglas de análisis se organizan dentro de Grupos de reglas. Cada grupo tiene un nombre y un conjunto de reglas con una relación lógica entre ellos. Los registros se procesan según el orden del grupo de reglas (desde el principio hasta el final). A continuación, se procesan mediante el orden de las reglas dentro del grupo de reglas y de acuerdo con los operadores lógicos entre ellas (AND/OR). Las reglas le ayudan a procesar, analizar y reestructurar datos de registro para prepararse para la supervisión y el análisis. Para obtener más información, consulte Trabajar con grupos de reglas.

Utilización de grupos capturados con nombre para definir campos nuevos

La regla de análisis utiliza grupos de captura con nombre RegEx para definir nuevos campos.

  • Los grupos capturados se convierten en los campos de registro analizados.
  • El valor asociado a cada grupo se convierte en el valor del campo.
  • RegEx no tiene que coincidir con todo el registro.
  • Sólo los grupos de captura con nombre RegEx (los valores dentro de < >) y el valor que capturan forman parte del registro reconstruido.

Configuración de una regla de análisis

Realice los pasos siguientes para crear un grupo de reglas con 1 regla de análisis:

  1. Pulse el icono Conducto de datos icono Conducto de datos > Reglas de análisis y pulse Nuevo grupo de reglas.

  2. En la sección Detalles, especifique el Nombre de grupo de reglas y la Descripción de grupo de reglas.

  3. En la sección Buscador de coincidencias de reglas, configure las aplicaciones, subsistemas y gravedades que definen los registros en los que aplicar las reglas que se incluyen en el grupo de reglas.

  4. En la sección Reglas, seleccione Analizar icono Analizar regla de análisis.

    1. Especifique un nombre.

    2. Puede especificar una descripción opcional.

    3. Seleccione un campo fuente. Es el campo en el que se aplica RegEx.

    4. Seleccione un campo de destino. Este es el campo que se rellenará con los resultados de la aplicación de la expresión RegEx.

    5. Especifique la Expresión regular (RegEx).

    6. Conmute el estado a ACTIVE si desea que la regla esté habilitada.

  5. Añada grupos de reglas adicionales pulsando Añadir regla y seleccionando el tipo de regla deseado. Conmute AND/OR para seleccionar cómo desea que se procesen las reglas adicionales.

  6. Haga clic en Crear grupo de reglas.

Ejemplo de conversiones de registro

El ejemplo siguiente toma un registro de errores de tipo Heroku L/H que se envía desde Heroku como un registro no estructurado y lo convierte en un registro JSON.

El registro original es:

sock=client at=warning code=H27 desc="Client Request Interrupted" method=POST path="/submit/" host=myapp.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=1ms service=0ms status=499 bytes=0

RegEx es:

^(sock=)?(?P<sock>(\S*))\s*at=(?P<severity>\S*)\s*code=(?P<error_code>\S*)\s*desc="(?P<desc>[^"]*)"\s*method=(?P<method>\S*)\s*path="(?P<path>[^"]*)" host=(?P<host>\S*)\s* (request_id=)?(?P<request_id>\S*)\s*fwd="?(?P<fwd>[^"\s]*)"?\s*dyno=(?P<dyno>\S*)\s*connect=(?P<connect>\d*)(ms)?\s*service=(?P<service>\d*)(ms)?\s*status=(?P<status>\d*)\s* bytes=(?P<bytes>\S*)\s*(protocol=)?(?P<protocol>[^"\s]*)$

El registro formateado es:

{
    "sock": "client",
    "severity": "warning",
    "error_code": "H27",
    "desc": "Client Request Interrupted",
    "method": "POST",
    "path": "/submit/",
    "host": "myapp.herokuapp.com",
    "request_id": "",
    "fwd": "17.17.17.17",
    "dyno": "web.1",
    "connect": "1",
    "service": "0",
    "status": "499",
    "bytes": "0",
    "protocol": ""
}