Fluid Attacks logo
Contact Us
Young hacker smiling
Zero false positives

Expert intelligence + effective automation

Configurar Bitácoras

Necesidad

Configurar el servicio de bitácoras en GlassFish.

Contexto

A continuación se describe las circunstancias bajo las cuales la siguiente solución tiene sentido:

  1. Se utiliza el servidor de aplicaciones GlassFish.

  2. Existen eventos excepcionales a los que no se les hace ningún control.

  3. Se desea configurar parámetros del servicio de bitácoras.

Solución

Todas las aplicaciones y sistemas son potencialmente vulnerables a fallos o comportamientos inesperados. El problema muchas veces reside en determinar la causa de estos comportamientos, y el daño causado a la información del sistema. Las bitácoras realizan un registro de eventos importantes de la aplicación. Esto permite realizar una realimentación y detección de anomalías en caso de una falla del sistema, un ataque u otra situación no deseada. En este artículo mostraremos cómo configurar apropiadamente las bitácoras en GlassFish, así como la forma de definir, establecer, listar y configurar eventos. Para ello debemos seguir el siguiente procedimiento:

  1. Cambiar el nombre y la ubicación de las bitácoras, Para realizar esto, primero utilizamos el comando list-log-attributes para ver la configuración actual.

  2. Después debemos utilizar el comando set-log-attributes para especificar el nuevo nombre o ubicación. De manera predeterminada este cambio se realiza en el Servidor de Administración del Dominio (DAS). Sin embargo, también se puede especificar si se desea hacer el cambio en una instancia o cluster.

  3. El siguiente ejemplo establece el nombre del archivo de bitácora de Cluster1 a cluster1.log. Cluster1 tiene dos instancias de servidor: ClusterServer1 y ClusterServer2.

    cluster1.log
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    asadmin> list-log-attributes Cluster1
    com.sun.enterprise.server.logging.GFFileHandler.alarms <false>
    com.sun.enterprise.server.logging.GFFileHandler.file
    <${com.sun.aas.instanceRoot}/logs/server.log>
    com.sun.enterprise.server.logging.GFFileHandler.flushFrequency  1
    .
    .
    .
    log4j.logger.org.hibernate.validator.util.Version <warn>
    Command list-log-attributes executed successfully.
    asadmin> set-log-attributes --target Cluster1
    com.sun.enterprise.server.logging.GFFileHandler.file=
    ${com.sun.aas.instanceRoot}/logs/cluster1.log
    com.sun.enterprise.server.logging.GFFileHandler.file
    logging attribute set with value ${com.sun.aas.instanceRoot}/logs/cluster1.log
    These logging attributes are set for Cluster1.
    ClusterServer1 :
    com.sun.enterprise.server.logging.GFFileHandler.file
    logging attribute set with value ${com.sun.aas.instanceRoot}/logs/cluster1.log
    These logging attributes are set for Cluster1.
    
    ClusterServer2 :
    com.sun.enterprise.server.logging.GFFileHandler.file
    logging attribute set with value ${com.sun.aas.instanceRoot}/logs/cluster1.log
    These logging attributes are set for Cluster1.
    
    Command set-log-attributes executed successfully.
    
  4. Posteriormente, debemos listar los niveles de bitácora. GlassFish permite listar todos los loggers y sus niveles registrados. Al utilizar el comando list-log-levels podemos listar los módulos y sus niveles de bitácora actual. El siguiente ejemplo muestra una lista parcial de los loggers y sus niveles:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    asadmin> list-log-levels
    javax.enterprise.system.container.cmp <INFO>
    javax.enterprise.system.tools.admin <INFO>
    java.util.logging.ConsoleHandler <FINEST>
    javax.enterprise.system.container.web <INFO>
    javax.enterprise.system.util <INFO>
    javax.enterprise.resource.webcontainer.jsf.timing <INFO>
    javax <INFO>
    javax.enterprise.resource.corba <INFO>
    ...
    Command list-log-levels executed successfully.
    

    Es posible especificar como parámetro si se desea un servidor o instancia.

  5. Finalmente debemos configurar el nivel de bitácora global. El nivel de bitácora global especifica qué eventos son guardados en las bitácoras. El nivel predeterminado es INFO (el cual incluye SEVERE y WARNING). Use el comando set-log-levels para especificar el nivel del logger java.util.logging.ConsoleHandler, esto cambiará el nivel global. El siguiente ejemplo configura el nivel en INFO:

    1
    2
    3
    4
    5
    asadmin> set-log-levels java.util.logging.ConsoleHandler=INFO
    java.util.logging.ConsoleHandler package set with log level INFO.
    These logging levels are set for server.
    
    Command set-log-levels executed successfully.
    

Service status - Terms of Use