Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

ASP.NET columna de voz de soporte técnico

Log Parser 2.2 y ASP.NET

Para personalizar esta columna según sus necesidades, queremos invitarle a que envíe sus ideas sobre temas que le interesan y sobre los problemas que desea ver tratados en futuros artículos de Knowledge Base y columnas Soporte de voz. Puede enviar sus ideas y comentarios mediante el formulario Solicitarlo. También hay un vínculo al formulario en la parte inferior de esta columna.

Bienvenido a la columna de voz de soporte técnico de ASP.NET. Mi nombre es Rahul Soni, y llevo unos dos años con Microsoft. En la columna de este mes, analizaré algunos de los datos sobre Log Parser 2.2. Antes de entrar en escenarios específicos, permíteme tomarme un momento para describir la herramienta Log Parser.

Acerca de

Log Parser es una herramienta muy eficaz y versátil que proporciona acceso universal a consultas a datos basados en texto, como archivos de registro, archivos XML y archivos CSV, así como orígenes de datos clave en el sistema operativo Microsoft Windows, como el registro de eventos, el registro, el sistema de archivos y el servicio de directorio de Active Directory. Haga
clic aquí para descargar la herramienta. En esta versión, puede analizar los siguientes archivos muy fácilmente desde la herramienta Log Parser:

IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS y COM. Estoy de acuerdo en que la interfaz de la línea de comandos no es muy intuitiva, y la descubrirás en cuanto instales y ejecutes la herramienta. Pero lo que la herramienta carece de sensación intuitiva es ser parcheado por la documentación proporcionada para la herramienta. Voy a dar un pequeño consejo aquí: No deje que la interfaz de la línea de comandos lo despeje tan pronto. Esta herramienta es imprescindible en el kit de herramientas de un geek y te ayuda mucho, especialmente si quieres solucionar problemas desde una perspectiva de rendimiento.

No voy a discutir "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 bastantes ejemplos.

Así que, después de haber terminado con mi poco de promoción de la herramienta Log Parser, permítanme volver a los escenarios de los que estaba hablando.

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

Un pequeño fondo del problema

El cliente experimenta un problema de "Acceso denegado" cuando hizo algo. Se recomienda que el cliente use otra herramienta brillante denominada
Filemon y reproduzca el problema. Si se trata de un problema con las ACL de recursos, la herramienta Filemon podrá detectar el error. Ahora, pide al cliente que le envíe el archivo de registro de Filemon guardado. Aquí viene la parte desafortunada. Obtiene el archivo (por ejemplo, Filemon.log) pero descubre que el tamaño es enorme (Filemon registra muchos datos). El Bloc de notas parecerá colgar y será dolorosamente lento encontrar las líneas "Acceso denegado" en el archivo de registro. Microsoft Office Excel se negará a abrir el archivo por completo. ¿Y ahora qué?

Respuesta: Abre la ventana del comando Log Parser y usa el siguiente comando:

LOGPARSER "Seleccione texto de C:\Filemon.log donde texto como '%Access Denied%'" -i:TEXTLINE -q:OffQué le indicamos a la herramienta Log Parser es analizar a través de cada línea (Texto) del archivo determinado (C:\Filemon.log) donde la línea contiene "Acceso denegado". El modificador de línea de comandos -i:TEXTLINE especifica el formato de entrada y el modificador de línea de comandos -q:Off indica que sea detallado (-q[:ON|OFF]:modo silencioso;). Si activa el modificador de línea de comandos -q, las estadísticas que se muestran y el nombre del campo (Texto) en la siguiente salida estarán ausentes.

Salida de ejemplo

Text7447 1:49:24 PM explorer.exe:1200 DIRECTORY C:\ Access Denied StatisticsElements procesados: 640444
Salida de elementos: 1
Tiempo de ejecución: 12,75 segundos

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

Respuesta: Use el parámetro -rtp:-1 en las consultas.

Este será un parámetro necesario en caso de que desee redirigir la salida a un archivo. Además, al escribir en STDOUT, los registros de salida se muestran en lotes formados por un número de filas igual al valor especificado para este parámetro. Una vez que se haya mostrado un lote de filas, se le pedirá al usuario que presione una tecla para mostrar el siguiente lote de filas. Al especificar "-1" para este parámetro se deshabilita por completo el procesamiento por lotes.

Usar archivos de consulta

Otra forma de lograr los mismos resultados de forma más clara es crear un archivo de consulta. De esta forma, puede ajustar fácilmente el archivo de consulta y ejecutarlo desde la línea de comandos de la herramienta Log Parser. Aparte de eso, puedes crear fácilmente una GUI según tu gusto. El GUI carga la consulta SQL guardada y ejecuta la consulta mediante la herramienta Log Parser.

Si desea lograr el mismo efecto (como en el Escenario 1) de las consultas SQL, puede proporcionar el siguiente comando:

LOGPARSER -i:TEXTLINE file:C:\LPQ\SearchAnyTextfile.sql -q:offC:\LPQ\SearchAnyTextFile.sql contiene la siguiente información:

Nota Crear una carpeta LPQ en su C:\ para usar las muestras que se muestran en esta columna.

Select Text as LineFromFile
FROM C:\Filemon.log 
WHERE Text 
LIKE '%Access Denied%'

Si se da cuenta, la consulta se ve ahora mucho más limpia y tiene más sentido. De esta forma, también puede crear consultas más complejas y grandes, y todo cabe en la línea de comandos porque está usando . Archivo SQL en lugar de toda la consulta. No es posible ajustar más de 260 caracteres en la línea de comandos de todos modos!

Teniendo en cuenta las ventajas de usar archivos de consulta, usaré este método en los siguientes escenarios. Tengo todas mis consultas guardadas en C:\LPQ con una extensión .sql (puede usar la suya propia).

Escenario 2: Encontrar los 10 archivos más grandes de una carpeta específica, incluidas sus subcarpetas

Un pequeño fondo del problema

Tiene una carpeta y hay bastantes subcarpetas y archivos en ella. Desea conocer los 10 archivos más grandes de esa carpeta, incluidas sus subcarpetas.

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

Respuesta: Abre la ventana de comandos de la herramienta Log Parser y usa el siguiente comando:

LOGPARSER -i:FS file:C:\LPQ\Top10Files.sql -q:off -Recurse:-1Top10Files.sql contiene lo siguiente:

SELECT TOP 10 
Path, 
Name, 
Size, 
Attributes 
FROM 'C:\Program Files\Microsoft Office\*.*' 
ORDER BY Size DESC

Aquí -i:FS indica que estamos consultando el sistema de archivos. Puede ver la lista completa de campos de formato de entrada FS en la documentación y enmarcar la consulta en consecuencia.

-Recurse:-1 implica que queremos incluir todas las subcarpetas. Si no quiere todas las subcarpetas o quiere limitar la recursividad, use 0, 1, 2, etc. El número implica la profundidad a la que entrará el analizador. 0 significa que no hay recursividad, 2 significa que el analizador se repite hasta la profundidad 2, etc.

Salida 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-------


StatisticsElements procesados: 1000
Salida de elementos: 10
Tiempo de ejecución: 0,42 segundos

Escenario 3: Encontrar las 20 páginas más lentas del sitio web

Un pequeño fondo del problema

Está usando Microsoft Internet Information Services (IIS) 6, tiene algunos ASP.NET sitios web y no está realmente satisfecho con el rendimiento. Desea ajustar el servidor y conocer las 20 páginas principales que están tardando más tiempo en servir desde el servidor web. No es como si decidiese las páginas con más tiempo, la corrijas y se resolvieran los problemas. Desafortunadamente, no hay viñetas plateadas para resolver problemas de rendimiento. Al menos debería haber una forma de empezar. ¿Correcto?

Respuesta: Abre la ventana del comando Log Parser y usa el siguiente comando:

LOGPARSER -i:IISW3C file:C:\LPQ\Slowest20FilesInIIS.sql -o:DataGrid -q:offSlowest20FilesInIIS.sql contiene el código de ejemplo siguiente.

Select Top 20
LogRow 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 indica que estamos consultando los registros W3C de IIS. Puede ver la lista completa de campos de formato de entrada IISW3C en la documentación y enmarcar la consulta en consecuencia.

-o:DataGrid implica que el resultado debe mostrarse en una cuadrícula de datos de la siguiente manera:



Nota Para usar esta consulta, debe usar el registro de IISW3C y debe haber habilitado las propiedades de registro avanzado. (Abra las propiedades del sitio web, haga clic en la pestaña Sitio web , haga clic para seleccionar Habilitar registro y, a continuación, establezca el formato de registro activo como Formato de archivo de registro extendido W3C. Haga clic en Propiedades, en la
pestañaAvanzadas y, a continuación, haga clic para seleccionar todas las opciones).

Escenario 4: Buscar las 20 páginas .aspx más usadas en su sitio web

Un pequeño fondo del problema

Está usando IIS 6, tiene algunos ASP.NET sitios web y desea conocer los archivos .aspx más usados de modo que, si ajusta el rendimiento de esas páginas, finalmente se verán las ventajas de todo el servidor o sitio web. Siempre es mejor dedicar tiempo a ajustar las páginas más usadas en lugar de las páginas que se usan con moderación. (Aunque puede haber excepciones a esta regla. Supongamos que la página usada con moderación es una página muy mala que causa un uso elevado de la CPU en ese caso). Ahora, si se encuentra con que hay una página determinada que tarda mucho tiempo en servirse (escenario 3) y que la página es una de las páginas más usadas, siempre debe confirmar que la página se comporta bien bajo estrés.

Respuesta: Abre la ventana de comandos de la herramienta Log Parser y usa el siguiente comando:

LOGPARSER -i:IISW3C file:C:\LPQ\Popular20FilesInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:onPopular20FilesInIIS.sql contiene el código de ejemplo siguiente.

Select Top 20
cs-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 preparar. El parámetro -groupSize 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 instalada en el equipo local.

Así es como se ve la salida:



Como ya ha visto, podría haber varias maneras en las que la herramienta Log Parser podría resultar muy útil para analizar los datos de varios registros. ¡Aquí solo la creatividad es el límite! Existen casi ilimitadas maneras en las que los datos podrían reflejar una imagen mucho mejor para usted, y podría ser algo sobre lo que puede actuar. ¡Lo que hemos tocado es solo la punta del iceberg! También puede usar idiomas de alto nivel, como Microsoft Visual C#, Microsoft Visual Basic .NET, etc. para crear programas útiles con la potencia de la herramienta Log Parser. Consulte la sección "Recursos" a continuación.

Resources

Me gustaría discutir más escenarios para la herramienta Log Parser y he creado una nueva sección en mi blog solo para la herramienta Log Parser. Si tiene alguna sugerencia para escenarios o consultas de la herramienta Log Parser que desea compartir, envíeme un correo electrónico en
rahulso@microsoft.com y lo publicaría lo antes posible en el siguiente sitio web:

https://learn.microsoft.com/archive/blogs/rahulso/

Como siempre, no dude en enviar ideas sobre temas que desee tratar en columnas futuras o en la Knowledge Base mediante el formulario Solicitarlo.

Los productos de terceros descritos en este artículo son fabricados por empresas independientes de Microsoft. Microsoft no ofrece ninguna garantía, implícita o de otro tipo, respecto al rendimiento o la confiabilidad de estos productos.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×