Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

ASP.NET supportare la colonna vocale

Log Parser 2.2 e ASP.NET

Per personalizzare questa colonna in base alle proprie esigenze, si desidera invitare l'utente a presentare idee su argomenti di suo interesse e problemi che dovrà essere affrontato in futuri articoli della Knowledge Base e nelle colonne Del supporto vocale. È possibile inviare idee e feedback usando il modulo Chiedi. C'è anche un collegamento alla maschera nella parte inferiore di questa colonna.

Benvenuto nella colonna del supporto vocale di ASP.NET. Mi chiamo Rahul Soni e sono con Microsoft da circa due anni. Nella colonna di questo mese, discuterò alcuni dei fatti su Log Parser 2.2. Prima di passare a scenari specifici, fammi prendere un momento per descrivere lo strumento Log Parser.

Circa

Log Parser è uno strumento molto potente e versatile che fornisce l'accesso a query universali a dati basati su testo, ad esempio file di log, file XML e file CSV, nonché origini dati chiave nel sistema operativo Microsoft Windows, ad esempio il registro eventi, il Registro di sistema, il file system e il servizio directory Active Directory. Fai
clic qui per scaricare lo strumento. In questa versione, è possibile analizzare molto facilmente i file seguenti dallo strumento Log Parser:

IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS e COM. Sono d'accordo che l'interfaccia della riga di comando non è molto intuitiva, e lo scoprirai non appena installi ed esegui lo strumento. Ma ciò che lo strumento manca nella sensazione intuitiva è stato patched up dalla documentazione fornita per lo strumento. Darò un piccolo consiglio qui: Non lasciare che l'interfaccia della riga di comando rimandare così presto. Questo strumento è un must nel toolkit di un geek e ti aiuta molto, soprattutto se vuoi risolvere i problemi dal punto di vista delle prestazioni.

Non ho intenzione di discutere "come" utilizzare lo strumento Log Parser perché la documentazione è abbastanza buona e la cartella di installazione contiene anche una cartella "Samples\Queries" che contiene alcuni esempi.

Quindi, dopo aver terminato la promozione dello strumento Log Parser, mi lasci tornare agli scenari di cui stavo parlando.

Scenario 1: analisi di file di testo di grandi dimensioni per un testo specifico

Un piccolo sfondo del problema

Il cliente riscontra un problema di "accesso negato" quando ha eseguito un'operazione. È consigliabile che il cliente usi un altro eccezionale strumento denominato
Filemon e riproduca il problema. Se si tratta di un problema con gli ACL delle risorse, lo strumento Filemon sarà in grado di rilevare l'errore. Ora chiedi al cliente di inviarti il file di log filemon salvato. Ecco la parte sfortuna. Si ottiene il file (ad esempio Filemon.log), ma si scopre che le dimensioni sono enormi (Filemon registra molti dati!). Blocco note apparirà bloccato e sarà dolorosamente lento nel trovare le righe "Accesso negato" nel file di log. Microsoft Office Excel si rifiuterà di aprire completamente il file. E ora?

Risposta: Aprire la finestra di comando Log Parser e utilizzare il comando seguente:

LOGPARSER "Select Text from C:\Filemon.log where Text like '%Access Denied%'" -i:TEXTLINE -q:OffCosa indica lo strumento Log Parser di analizzare ogni riga (Testo) dal file specificato (C:\Filemon.log) in cui la riga contiene 'Accesso negato'. L'opzione della riga di comando -i:TEXTLINE specifica il formato di input e l'opzione della riga di comando -q:Off indica che è dettagliata (-q[:ON|OFF]:modalità non interattiva;). Se si attiva l'opzione della riga di comando -q, le statistiche visualizzate e il nome del campo (Testo) nell'output seguente saranno assenti.

Output di esempio

Testo7447 13:49:24 explorer.exe:1200 DIRECTORY C:\ Accesso negato a StatisticsElements elaborati: 640444
Output elementi: 1
Tempo di esecuzione: 12,75 secondi

Come evitare di premere INVIO più volte se il numero di record restituiti dalla query è maggiore di 10?

Risposta: Usare il parametro -rtp:-1 nelle query.

Questo sarà un parametro necessario nel caso in cui si desidera reindirizzare l'output in un file. Inoltre, quando si scrive in STDOUT, i record di output vengono visualizzati in batch costituiti da un numero di righe uguale al valore specificato per questo parametro. Una volta visualizzato un batch di righe, chiederà all'utente di premere un tasto per visualizzare il batch di righe successivo. Specificando "-1" per questo parametro si disabilita del tutto il batching!

Uso dei file di query

Un altro modo per ottenere gli stessi risultati in modo più pulito consiste nel creare un file di query. In questo modo, è possibile modificare facilmente il file di query ed eseguirlo dalla riga di comando dello strumento Log Parser. A parte questo, è possibile creare facilmente una GUI secondo i propri gusti. La GUI carica la query SQL salvata ed esegue la query usando lo strumento Log Parser.

Se si vuole ottenere lo stesso effetto (come in Scenario 1) dalle query SQL, è possibile fornire il comando seguente:

LOGPARSER -i:TEXTLINE file:C:\LPQ\SearchAnyTextfile.sql -q:offC:\LPQ\SearchAnyTextFile.sql contiene le informazioni seguenti:

Nota Creare una cartella LPQ in C:\ per utilizzare gli esempi mostrati in questa colonna.

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

Se si nota, la query ora ha un aspetto molto più pulito e ha un senso. In questo modo è possibile creare anche query più complesse e più grandi e tutto si adatterà alla riga di comando perché si usa . SQL invece dell'intera query. Non è comunque possibile inserire più di 260 caratteri nella riga di comando!

Mantenendo i vantaggi dell'uso dei file di query, userò questo metodo negli scenari seguenti. Ho tutte le mie query salvate in C:\LPQ con un'estensione sql (puoi usare la tua).

Scenario 2: ricerca dei 10 file più grandi da una cartella specifica, incluse le relative sottocartelle

Un piccolo sfondo del problema

Si dispone di una cartella e contiene diverse sottocartelle e file. Si vogliono trovare i primi 10 file più grandi in quella cartella, incluse le relative sottocartelle.

So che, per una cartella specifica, è possibile cambiare semplicemente la visualizzazione (nel menu Visualizza fare clic su Dettagli) in Esplora risorse e ordinare la visualizzazione in base alle dimensioni. Ma il problema qui è che è necessario tenere conto anche del contenuto della sottocartella.

Risposta: Aprire la finestra di comando dello strumento Log Parser e utilizzare il comando seguente:

Logparser -i:FS file:C:\LPQ\Top10Files.sql -q:off -Recurse:-1Top10Files.sql contiene quanto segue:

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

Qui -i:FS indica che stiamo interrogando il file system. È possibile visualizzare l'elenco completo dei campi formato di input FS nella documentazione e cornicere la query di conseguenza.

-Recurse:-1 implica che si vogliono includere tutte le sottocartelle. Se non si vogliono limitare tutte le sottocartelle o la ricorsione, usare 0, 1, 2 e così via. Il numero implica la profondità in cui andrà il parser. 0 significa nessuna ricorsione, 2 significa che il parser si ripete fino alla profondità 2, ecc.

Output di esempio

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


StatisticsElementi elaborati: 1000
Output elementi: 10
Tempo di esecuzione: 0,42 secondi

Scenario 3: Ricerca delle 20 pagine più lente nel sito Web

Un piccolo sfondo del problema

Si usa Microsoft Internet Information Services (IIS) 6, alcuni siti Web ASP.NET e le prestazioni non sono soddisfatti. Si desidera ottimizzare il server e conoscere le prime 20 pagine che stanno prendendo il tempo più alto per servire dal server Web. Non è come se si determinassero le pagine che impiegano più tempo, lo si risolva e i problemi vengano risolti. Purtroppo, non ci sono punti elenco per risolvere i problemi di prestazioni. Almeno ci dovrebbe essere un modo per iniziare. Corretta?

Risposta: Aprire la finestra di comando Log Parser e utilizzare il comando seguente:

Logparser -i:IISW3C file:C:\LPQ\Slowest20FilesInIIS.sql -o:DataGrid -q:offSlowest20FilesInIIS.sql contiene il codice di esempio seguente.

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

Qui, -i:IISW3C indica che stiamo interrogando i log W3C di IIS. È possibile visualizzare l'elenco completo dei campi del formato di input IISW3C nella documentazione e incorniciare la query di conseguenza.

-o:DataGrid implica che l'output deve essere visualizzato in una griglia dati nel modo seguente:



Nota Per usare questa query, è necessario utilizzare la registrazione IISW3C e avere abilitato le proprietà Registrazione avanzata. Aprire le proprietà del sito Web, fare clic sulla scheda Sito Web , selezionare Abilita registrazione e quindi impostare il formato Di log attivo su Formato file di log esteso W3C. Fare clic su Proprietà, sulla
schedaAvanzate e quindi su per selezionare tutte le opzioni.

Scenario 4: Ricerca delle 20 pagine ASPX più usate nel sito Web

Un piccolo sfondo del problema

Si usa IIS 6, sono presenti alcuni siti Web ASP.NET e si vogliono conoscere i file ASPX usati più di frequente, in modo che, se si ottimizzano le prestazioni di tali pagine, alla fine vengano apportati tutti i vantaggi del sito Web o del server. È sempre meglio dedicare tempo all'ottimizzazione delle pagine più usate anziché alle pagine usate con parsimonia. Anche se potrebbero esserci eccezioni a questa regola. Supponiamo che la pagina usata con parsimonia sia una pagina molto cattiva che causa un utilizzo elevato della CPU per quella materia!) Ora, se una determinata pagina richiede molto tempo per essere servita (scenario 3) e la pagina è una delle pagine più usate, è consigliabile verificare sempre che la pagina si comporti bene sotto stress.

Risposta: Aprire la finestra di comando dello strumento Log Parser e utilizzare il comando seguente:

LOGPARSER -i:IISW3C file:C:\LPQ\Popular20FilesInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:onPopular20FilesInIIS.sql contiene il codice di esempio seguente.

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

In questo caso, -chartType:Bar3D indica allo strumento Log Parser quale tipo di grafico preparare. Il parametro -groupSize consente di specificare in pixel la larghezza e l'altezza dell'immagine di destinazione. Il set di tipi di grafico disponibili dipende dalla versione del Microsoft Office Web Components installato nel computer locale.

Ecco l'aspetto dell'output:



Come avete già visto, ci potrebbero essere più modi in cui lo strumento Log Parser potrebbe rivelarsi davvero utile nell'analisi dei dati da vari log. Solo la creatività è il limite qui! Esistono modi quasi illimitati in cui i dati potrebbero riflettere un'immagine molto migliore e potrebbero essere qualcosa su cui è possibile agire. Quello che abbiamo toccato è solo la punta dell'iceberg! È anche possibile usare lingue di alto livello come Microsoft Visual C#, Microsoft Visual Basic .NET e così via, per creare programmi utili usando la potenza dello strumento Log Parser. Vedi la sezione "Risorse" di seguito.

Risorse

Vorrei discutere altri scenari per lo strumento Log Parser e ho creato una nuova sezione nel mio blog solo per lo strumento Log Parser. Se hai suggerimenti per scenari o query dello strumento Log Parser che vuoi condividere, inviami un messaggio di posta elettronica a
rahulso@microsoft.com e lo pubblicherei al più presto sul seguente sito Web:

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

Come sempre, è possibile inviare idee su argomenti che si desidera vengano affrontati nelle colonne future o nella Knowledge Base usando il modulo Chiedi.

I prodotti di terze parti descritti in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non riconosce alcuna garanzia, implicita o espressa, in relazione alle prestazioni o all'affidabilità di questi prodotti.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×