Cómo habilitar Trace Logging para distintos componentes en Windows Vista/Windows Server 2008


Hola, soy Tolu Igbon, del equipo de Directorio Activo. Hoy vamos a hablar sobre cómo habilitar trace logging para diferentes componentes relacionados con Directorio Activo tanto en Windows Vista como en Windows Server 2008.


La herramienta Tracelog: http://msdn.microsoft.com/en-us/library/ms797927.aspx  se introdujo con el kit de recursos de Windows 2000.


Esta utilidad permite habilitar “event trace logging”, (un especie de logging detallado) de distintos componentes de Windows a la hora de intentar resolver problemas (por ejemplo autenticación Kerberos, acceso LDAP, etc).


Para interpretar los “event trace logs” (.etl) generados se necesitan otras herramientas como:



La novedad real para Vista/2008 es que ha aumentado de manera significativa el numero de proveedores con los cuales podemos realizar este tipo de “logging”.


Aquí os proporcionamos unos ejemplos de cómo generar logging para componentes relacionados con Directorio Activo.



Cliente LDAP


En primer lugar, creamos una nueva clave de registro:



HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ ldap\Tracing\ProcessName



ProcessName es el nombre del proceso que queremos “tracear” (por ejemplo MMC.exe).


Dentro de esta clave, podemos crear un valor opcional de tipo DWORD llamado PID. (Si establecemos este valor a un PID concreto, solo se traceará la instancia de la aplicación con este PID).


Para habilitar el tracing, ejecutamos el siguiente comando:



tracelog.exe -start <sessionname> –guid #<guid for ldap tracing provider> -f <filename> -flag <traceFlags>



sessionname es un nombre arbitrario que utilizamos para identificar la session de tracing (tendremos que hacer referencia al mismo identificador cuando terminemos la sesión).


El GUID para el proveedor de tracing LDAP es “099614a5-5dd7-4788-8bc9-e29f43db28fc“.


filename especifica el archive de registro donde se generarán los logs.


traceFlags puede ser una combinación de los siguientes valores:



























































































DEBUG_TRACE1


0x00000001


DEBUG_TRACE2


0x00000002


DEBUG_REFCNT


0x00000004


DEBUG_HEAP


0x00000008


DEBUG_CACHE


0x00000010


DEBUG_SSL


0x00000020


DEBUG_SPEWSEARCH


0x00000040


DEBUG_SERVERDOWN


0x00000080


DEBUG_CONNECT


0x00000100


DEBUG_RECONNECT


0x00000200


DEBUG_RECEIVEDATA


0x00000400


DEBUG_BYTES_SENT


0x00000800


DEBUG_EOM


0x00001000


DEBUG_BER


0x00002000


DEBUG_OUTMEMORY


0x00004000


DEBUG_CONTROLS


0x00008000


DEBUG_BYTES_RECEIVED


0x00010000


DEBUG_CLDAP


0x00020000


DEBUG_FILTER


0x00040000


DEBUG_BIND


0x00080000


DEBUG_NETWORK_ERRORS


0x00100000


DEBUG_SCRATCH


0x00200000


DEBUG_PARSE


0x00400000


DEBUG_REFERRALS


0x00800000


DEBUG_REQUEST


0x01000000


DEBUG_CONNECTION


0x02000000


DEBUG_INIT_TERM


0x04000000


DEBUG_API_ERRORS


0x08000000


DEBUG_ERRORS


0x10000000


Para detener el tracing, ejecutamos el siguiente comando:



tracelog.exe -stop <sessionname>



Ejemplo práctico


Un administrador recibe un error inesperado en una aplicación que establece contraseñas para cuentas de Usuario.


Decide habilitar tracing para APP1.exe mediante los siguientes pasos:


1. Crear la clave de registro



HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ ldap\Tracing\App1.exe


y habilitar una session de tracing mediante el siguiente comando:


C:\>tracelog.exe -start ldaptrace -guid #099614a5-5dd7-4788-8bc9-e29f43db28fc -f .\ldap.etl -flag 0x80000


2. Una vez ejecutado este comando, se escribirán mensajes de tipo DEBUG_BIND en el log .\ldap.etl.


3. Ejecutamos App1.exe para reproducir el comportamiento inesperado.


4. Detenemos la session de tracing:



C:\>tracelog.exe -stop ldaptrace


5. Eliminamos la clave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ ldap\Tracing\App1.exe para que ningún otro usuario pueda obtener información de tracing de App1.exe.


6. Utilizamos otra herramienta como Tracerpt.exe para interpreter la información del log de tracing generado:



C:\>tracerpt.exe .\ldap.etl -o -report






Autenticación Kerberos


Habilitar el “tracing detallado” de kerberos mediante el siguiente comando



tracelog.exe -kd -rt -start kerb –guid #6B510852-3583-4e2d-AFFE-A67F9F223438 -f .\kerb.etl -flags 0x43 -ft 1


Para detener el logging, una vez reproducido el problema, ejecutar el siguiente comando:



tracelog.exe -stop kerb



Autenticación NTLM


Para habilitar el logging:



tracelog.exe -kd -rt -start ntlm –guid #5BBB6C18-AA45-49b1-A15F-085F7ED0AA90 -f .\ntlm.etl -flags 0x15003 -ft 1


Para detener el logging:



tracelog -stop ntlm



KDC


Para habilitar logging en el KDC (el servicio de validación y distribución de tickets kerberos en un DC):



tracelog.exe -kd -rt -start kdc –guid #1BBA8B19-7F31-43c0-9643-6E911F79A06B -f .\kdc.etl -flags 0x803 -ft 1


Para detener el logging:



tracelog.exe -stop kdc


Usando el editor del registro


Tambien podemos habilitar el logging a través del registro de Windows:
















Method

 


Registry key setting

 


NTLM

 


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0


·         Value name: NtLmInfoLevel


·         Value type: DWORD


·         Value data: c0015003


Kerberos

 


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters


·         Value name: KerbDebugLevel


·         Value type: DWORD


·         Value data: c0000043



HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos


·         Value name: LogToFile


·         Value type: DWORD


·         Value data: 00000001

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters


·         Value name: LogToFile


·         Value type: DWORD


·         Value data: 00000001


KDC

 


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc


·         Value name: KdcDebugLevel


·         Value type: DWORD


·         Value data: c0000803


Ubicación de los ficheros de salida


Si habilitamos el logging mediante tracelog.exe se generarán los archivos correspondientes de registro, kerb.etl/kdc.etl/ntlm.etl en el directorio desde donde hemos ejecutado el comando


Si lo hemos habilitado en el registro, los archivos se generarán en las siguientes ubicaciones:



  • NTLM: %systemroot%\tracing\msv1_0

  • Kerberos: %systemroot%\tracing\kerberos

  • KDC: %systemroot%\tracing\kdcsvc


Esperamos que esta información os pueda resultar de utilidad a la hora de buscar las posibles causas de problemas relacionados con Directorio Activo.


Tolu Igbon

Comments (0)