Log Parser 2.2 y ASP.NET


Columna de voz de soporte de ASP.NET


Log Parser 2.2 y ASP.NET

Para personalizar esta columna a sus necesidades, deseamos invitar a enviar sus ideas sobre temas que le interesan los problemas que desea ver y abordaron en próximas columnas de voz de soporte y artículos de Knowledge Base. Puede enviar sus ideas y comentarios mediante el Preguntar para el formulario. También hay un vínculo al formulario en la parte inferior de esta columna.
Bienvenido a la columna de voz de soporte de ASP.NET. Mi nombre es Rahul Soni, y he sido con Microsoft durante casi dos años. En la columna de este mes, trataré algunos de los hechos acerca de Log Parser 2.2. Antes de entrar en escenarios específicos, permítanme dedicar un momento para describir la herramienta Log Parser.

Acerca de

Log Parser es una herramienta muy potente y flexible que proporciona acceso universal de consulta a datos basados en texto, como archivos de registro, archivos XML y archivos CSV, así como orígenes de datos clave sobre el sistema operativo Microsoft Windows, como el servicio de directorio de Active Directory, el registro, el sistema de archivos y el registro de sucesos. Por favor,
haga clic aquí para descargar la herramienta. En esta versión, puede analizar los siguientes archivos fácilmente desde la herramienta Log Parser:
IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, anuncios, TEXTLINE, NEOPLASMS, FS y COM.
Acepto que la interfaz de línea de comandos no es muy intuitiva y descubrirá tan pronto como se instale y ejecute la herramienta. Pero lo que carece de la herramienta en la sensación intuitiva se está revisando por la documentación proporcionada para la herramienta. Le daré un pequeño consejo: no dejes que la interfaz de línea de comandos tan pronto. Esta herramienta es indispensable en el Kit de herramientas de un geek y le ayuda a mucho, especialmente si desea solucionar problemas desde una perspectiva de rendimiento.

No voy a explicar "cómo" utilizar la herramienta Log Parser porque la documentación es bastante buena y la carpeta de instalación también contiene una carpeta "Samples\Queries" que contiene unos pocos ejemplos.

Por lo tanto, después de que termine con el bit de la promoción de la herramienta Log Parser, voy a volver a los escenarios que hablaba.

Escenario 1: Analizar archivos de texto grandes para un texto específico

Un fondo pequeño del problema

Su cliente experimenta un problema de "Acceso denegado" cuando hizo algo. Se recomienda que el cliente utilice otra herramienta fantástica que se denomina
FileMon y reproducir el problema. Si es un problema con las ACL de recursos, la herramienta Filemon serán capaces de detectar el error. Ahora, pida al cliente que envíe el archivo de registro guardado de Filemon. Aquí viene la parte negativa. Obtenga el archivo (digamos, Filemon.log), pero el tamaño es enorme (Filemon hace registro una gran cantidad de datos!). El Bloc de notas aparecerá se bloquee y será dolorosamente lento para buscar las líneas de "Acceso denegado" en el archivo de registro. Microsoft Office Excel no abra el archivo completo. ¿Ahora qué?

Respuesta: Abra la ventana de comandos de Log Parser y utilice el comando siguiente:
LOGPARSER "Seleccionar texto desde C:\Filemon.log where texto like '% acceso denegado %'" - i: TEXTLINE - q: desactivado
¿Qué le estamos diciendo a la herramienta Log Parser es analizar cada línea (texto) de un archivo determinado (C:\Filemon.log) la línea contiene 'Acceso denegado'. El - i: TEXTLINE modificador de línea de comandos especifica el formato de la entrada y el - q: desactivar conmutador de línea de comandos indica que sea detallado (- q [: ON | OFF]: modo silencioso;). Si activa el modificador de línea de comandos - q en el nombre del campo (texto) y de las estadísticas que aparecen en la salida siguiente estará ausente.

Resultado de ejemplo

Texto
7447    1:49:24 PM      explorer.exe:1200       DIRECTORY       C:\      Access Denied 
Estadísticas
Elements processed: 640444Elements output:    1
Execution time: 12.75 seconds


¿Cómo evitar presionando ENTRAR varias veces si el número de registros devueltos por la consulta es mayor que 10?

Respuesta: Utilice la - rtp: -1 parámetro en las consultas!

Éste será un parámetro necesario en caso de que desee redirigir la salida a un archivo. Además, cuando se escribe en STDOUT, registros de salida se muestran en lotes conformados de un número de filas iguales al valor especificado para este parámetro. Una vez que se ha mostrado un lote de filas, pedirá al usuario que presione una tecla para mostrar el siguiente lote de filas. Si se especifica "-1" para este parámetro deshabilita el procesamiento por lotes en conjunto!

Utilizar archivos de consulta

Otra forma de conseguir los mismos resultados en un modo más limpio es crear un archivo de consulta. De este modo, fácilmente puede ajustar el archivo de consulta y ejecutarla desde la línea de comandos de la herramienta Log Parser. Aparte de eso, puede crear fácilmente una GUI a tu gusto. La GUI de la consulta SQL guardada carga y ejecuta la consulta utilizando la herramienta Log Parser.

Si desea conseguir el mismo efecto (como en la situación 1) de las consultas SQL, puede proporcionar el siguiente comando:
LOGPARSER - i: file:C:\LPQ\SearchAnyTextfile.sql - q TEXTLINE: desactivado
C:\LPQ\SearchAnyTextFile.SQL contiene la siguiente información:

Nota: Cree una carpeta LPQ en la carpeta C:\ para utilizar los ejemplos mostrados en esta columna.
Select Text as LineFromFileFROM C:\Filemon.log 
WHERE Text
LIKE '%Access Denied%'
Si observa, la consulta se ve ahora mucho más limpia y tiene más sentido. De este modo, puede crear más consultas complejas y más grandes así y todo lo que caben en la línea de comandos ya que se utiliza el. Archivo SQL en lugar de la consulta completa. No es posible montar más de 260 caracteres en la línea de comandos de todas formas!

Mantener las ventajas de utilizar archivos de consulta, voy a utilizar este método en las situaciones siguientes. Tengo todos mis consultas guardadas en C:\LPQ con una extensión .sql (puede utilizar su propia).

Escenario 2: Buscar los 10 archivos mayores de una carpeta específica, incluidas sus subcarpetas

Un fondo pequeño del problema

Dispone de una carpeta y hay bastantes subcarpetas y archivos en él. Desea averiguar los 10 archivos mayores superiores de dicha carpeta, incluyendo sus subcarpetas.

Sé, para una carpeta específica, puede simplemente cambiar la vista (en el menú Ver , haga clic en Detalles) en el Explorador de Windows y ordenar la vista por tamaño. Pero el problema aquí es que debe tener en cuenta para el contenido de la subcarpeta también.

Respuesta: Abra la ventana de comandos de herramienta Log Parser y utilice el comando siguiente:
LOGPARSER - i: FS file:C:\LPQ\Top10Files.sql - q: off - Recurse: -1
Top10Files.SQL contiene lo siguiente:
SELECT TOP 10 Path, 
Name,
Size,
Attributes
FROM 'C:\Program Files\Microsoft Office\*.*'
ORDER BY Size DESC
Aquí - i: FS significa que nos estamos consultando el sistema de archivos. Puede ver la lista completa de campos de formato de entrada de FS en la documentación y en consecuencia en la consulta de marco.

-Recurse: -1 implica que desea incluir todas las subcarpetas. Si no desea que todas las subcarpetas o desea limitar la recursividad, utilice 0, 1, 2, etc.. El número implica la profundidad que entra en el analizador. 0 significa sin recursión, 2 significa que el analizador se repiten hasta profundidad 2, etc..

Resultado de ejemplo

Path                                                         Name         Size     Attributes ------------------------------------------------------------ ------------ -------- ----------
C:\Program Files\Microsoft Office\Office10\WINWORD.EXE WINWORD.EXE 10738448 -A--R----
C:\Program Files\Microsoft Office\Office10\EXCEL.EXE EXCEL.EXE 9358096 -A--R----
C:\Program Files\Microsoft Office\Office10\OUTLLIB.DLL OUTLLIB.DLL 6326984 -A-------
C:\Program Files\Microsoft Office\Office10\POWERPNT.EXE POWERPNT.EXE 6093584 -A--R----
C:\Program Files\Microsoft Office\Office10\MSOWC.DLL MSOWC.DLL 3041880 -A-------
C:\Program Files\Microsoft Office\Office10\CLIPPIT.ACS CLIPPIT.ACS 2904417 -A-------
C:\Program Files\Microsoft Office\Office10\GRAPH.EXE GRAPH.EXE 2144824 -A-------
C:\Program Files\Microsoft Office\Office10\1033\OUTLLIBR.DLL OUTLLIBR.DLL 1977032 -A-------
C:\Program Files\Microsoft Office\Office10\1033\XLMAIN10.CHM XLMAIN10.CHM 1646072 -A-------
C:\Program Files\Microsoft Office\Office10\MSOWCW.DLL MSOWCW.DLL 1200177 -A-------


Estadísticas
Elements processed: 1000Elements output:    10
Execution time: 0.42 seconds

Escenario 3: Buscar las 20 páginas más lentas en su sitio Web

Un fondo pequeño del problema

Está utilizando Microsoft Internet Information Services (IIS) 6, tiene unos pocos sitios Web de ASP.NET y no está muy satisfecho con el rendimiento. Desea ajustar el servidor y conocer las 20 páginas que tienen el mayor tiempo de servicio desde el servidor Web. No es como si determina las páginas de toma de tiempo mayor, corregirlo y se resuelven los problemas. Desafortunadamente, no hay ninguna balas de plata para resolver problemas de rendimiento. Al menos debe haber una manera de comenzar. ¿Corregir?

Respuesta: Abra la ventana de comandos de Log Parser y utilice el comando siguiente:
LOGPARSER - i: IISW3C file:C:\LPQ\Slowest20FilesInIIS.sql - o: DataGrid - q: desactivado
Slowest20FilesInIIS.SQL contiene el código de ejemplo siguiente.
Select Top 20LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
C:\ex060813.log
Order by time-taken desc

Aquí, - i: IISW3C significa que nos estamos consultando los registros W3C de IIS. Puede ver la lista completa de campos de formato de entrada IISW3C en la documentación y en consecuencia en la consulta de marco.

-o: DataGrid implica que la salida se debe mostrar en una cuadrícula de datos como sigue:

Output - slowest pages

Nota: Para utilizar esta consulta, debe utilizar registro IISW3C y debe habilitar las propiedades de registro avanzado. (Abrir las propiedades del sitio Web, haga clic en la ficha sitio Web , haga clic para seleccionar Habilitar registroy, a continuación, establezca el formato de registro activo como Formato de archivo de registro extendido W3C. Haga clic en Propiedades, haga clic en el
Ficha Opciones avanzadas y, a continuación, haga clic para seleccionar todas las opciones.)

Escenario 4: Encontrar las 20 páginas .aspx mas utilizadas en el sitio Web

Un fondo pequeño del problema

Está utilizando IIS 6, tiene unos pocos sitios Web ASP.NET y desea conocer las más utilizadas archivos .aspx para que si ajustar el rendimiento de las páginas, finalmente los beneficios de todo sitio Web/servidor. Siempre es mejor dedicar tiempo a ajustar las páginas más utilizadas, en lugar de las páginas que se utilizan con moderación. (Aunque puede haber excepciones a esta regla. Decir que la página usada con moderación es un mal de verdad que provoca el uso elevado de CPU de hecho!) Ahora, si encuentra que existe una determinada página tarda mucho tiempo para ser servido (escenario 3) y la página es una de las páginas utilizadas normalmente, siempre debe confirmar que la página se comporta bien bajo tensión.

Respuesta: Abra la ventana de comandos de herramienta Log Parser y utilice el comando siguiente:
LOGPARSER - i: IISW3C file:C:\LPQ\Popular20FilesInIIS.sql - chartType: Bar3D - tamañogrupo: 640 x 480 - vista: en
Popular20FilesInIIS.SQL contiene el código de ejemplo siguiente.
Select Top 20cs-uri-stem as [Request URI],
COUNT(*) AS Hits
INTO MyChart.gif
FROM C:\ex060813.log
Group by cs-uri-stem ORDER BY Hits DESC
En este caso, - chartType: Bar3D indica a la herramienta Log Parser qué tipo de gráfico para preparar. El parámetro - tamañogrupo especifica el ancho y el alto de la imagen de destino, en píxeles. El conjunto de tipos de gráficos disponibles depende de la versión de Microsoft Office Web Components instalado en el equipo local.

Aquí aparece el resultado:

Output - most commonly used .aspx pages

Como ya ha visto, podría haber varias formas en que la herramienta Log Parser podría resultar realmente útiles para analizar los datos de varios registros. ¡Sólo la creatividad es el límite aquí! Hay maneras casi ilimitado en el que los datos pueden reflejar una mejor imagen para usted y podría tratarse de algo que puede actuar. Nos hemos tocado es sólo la punta del iceberg! También puede utilizar lenguajes de alto nivel como Microsoft Visual C#, Microsoft Visual Basic. NET, etc. para crear programas útiles utilizando la potencia de la herramienta Log Parser. Consulte la sección "Recursos".

Recursos

Me gustaría discutir más escenarios para la herramienta Log Parser y he creado una nueva sección en mi blog sólo para la herramienta Log Parser. Si tiene alguna sugerencia para escenarios o la herramienta Log Parser consultas desea compartir, por favor mi correo en
rahulso@Microsoft.comy me haría registrarlo a la brevedad posible en el siguiente sitio Web:
Como siempre, no dude en enviar ideas sobre temas que desea examinarse en futuras columnas o en la Base de conocimientos mediante la
Preguntar para el formulario.

Los productos de terceros que se indican en este artículo están fabricados por compañías independientes de Microsoft. Microsoft no otorga ninguna garantía, implícita o de otro tipo, respecto al rendimiento o la confiabilidad de estos productos.