Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

ASP.NET Destek Sesli Sütunu

Günlük Ayrıştırıcı 2.2 ve ASP.NET

Bu sütunu gereksinimlerinize göre özelleştirmek için, sizi ilginizi alan konular ve gelecek Bilgi Bankası makale ve Destek Ses sütunlarında ele almak istediğiniz sorunlar hakkında fikirlerinizi göndermeye davet etmek istiyoruz. Fikirlerinizi ve geri bildiriminizi, Ask For It formunu kullanarak gönderebilirsiniz. Bu sütunun en altında formun bağlantısı da var.

ASP.NET Destek Sesli Sütununa hoş geldiniz. Adım Ul Soni ve yaklaşık iki yıldır Microsoft'la birlikteyim. Bu ayın sütununda, Günlük Ayrıştırıcı 2.2 ile ilgili bazı olguları tartışacağız. Belirli senaryolara gitmeden önce, biraz zaman alıp Günlük Ayrıştırıcı aracını açıklamama izin ver.

Hakkında

Günlük Ayrıştırıcı, günlük dosyaları, XML dosyaları ve CSV dosyaları gibi metin tabanlı verilere ve ayrıca Microsoft Windows işletim sisteminde olay günlüğü, kayıt defteri, dosya sistemi ve Active Directory dizin hizmeti gibi önemli veri kaynaklarına evrensel sorgu erişimi sağlayan çok güçlü, çok yönlü bir araçtır. Aracı
indirmek için lütfen buraya tıklayın. Bu sürümde, Günlük Ayrıştırıcı aracından aşağıdaki dosyaları kolayca ayrıştırabilirsiniz:

IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS ve COM. Komut satırı arabiriminin kolay anlaşılır bir arabirim olmadığını kabul ediyorum. Aracı yükp çalıştırdınız hemen bulur bulmanız gerekir. Ancak aracın sezgisel hissi ile araç için sağlanan belgelere yama sağlanıyor. Burada küçük bir öneride bulundum: Komut satırı arabiriminin sizi bu kadar erken kapatmasına izin verme. Bu araç, özellikle performans açısından sorun gidermek için bir araç seti olması gerekir ve size çok yardımcı olur.

Belgelerde oldukça iyi olduğundan ve yükleme klasöründe oldukça az örnek içeren bir "Samples\Queries" klasörü de olduğundan, Günlük Ayrıştırıcı aracını "nasıl" kullanabileceğinizi tartışmam.

Dolayısıyla, Günlük Ayrıştırıcı aracı promosyonum bittiğinde, konuşmakta olduğum senaryolara geri döneyim.

Senaryo 1: Belirli bir metin için büyük metin dosyalarını ayrıştırma

Sorunun küçük bir arka planı

Müşteriniz bir şey yaşadıklarında "Erişim Reddedildi" sorunuyla deneyimler. Müşterinin Filemon adlı başka bir mükemmel araç kullanmalarını ve sorunu
yeniden oluşturmalarını öneririz. Kaynak ACL'leriyle ilgili bir sorun varsa, Filemon aracı hatayı yakalayabilir. Müşteriden kaydedilen Filemon günlük dosyasını size göndermesini isteyebilirsiniz. İşte bu kadar güzel olan kısım. Dosyayı alırsınız (örneğin, Filemon.log) ama boyutun çok büyük olduğunu fark ediyorsanız (Filemon çok fazla veri günlüğe kaydedin!). Not defteri askıda gibi görünür ve günlük dosyasındaki "Erişim Reddedildi" satırlarını bulmak için can sıkacak kadar yavaş olur. Microsoft Office Excel dosyayı tamamen açmayı reddeder. Şimdi ne olacak?

Yanıt: Günlük Ayrıştırıcısı komut penceresini açın ve aşağıdaki komutu kullanın:

LOGPARSER "'%Erişim Reddedildi%'" -i:TEXTLINE -q:OffBu şekilde Günlük Ayrıştırıcısı aracının, 'Erişim Reddedildi' içeren dosyadan (C:\Filemon.log) her satırı (Metin) ayrıştırmak olduğunu söylüyoruz. -i:TEXTLINE komut satırı anahtarı giriş biçimini belirtir ve -q:Off komut satırı anahtarı bunun ayrıntılı (-q[:ON| OFF]:sessiz mod;). -q komut satırı anahtarını açıksanız, gösterilen istatistikler ve aşağıdaki çıktıda alan adı (Metin) yok olur.

Örnek çıkış

Text7447 1:49:24 PM explorer.exe:1200 DIRECTORY C:\ Erişim Reddedildi İstatistik Elementleri işlendi: 640444 Öğe
çıktısı: 1 Yürütme
süresi: 12,75 saniye Sorgunuz tarafından döndürülen kayıt sayısı

10'dan büyükse birden çok kez ENTER tuşuna basmaktan kaçınma

Yanıt: Sorgularda -rtp:-1 parametresini kullanın!

Çıktıyı bir dosyaya yeniden yönlendirmek istemen durumunda bu gerekli bir parametre olur. Ayrıca STDOUT'a yazarak çıkış kayıtları, bu parametre için belirtilen değere eşit sayıda satırdan yapılmış toplu işlemlerde görüntülenir. Bir grup satır görüntülendiğinde, kullanıcıdan bir sonraki satır toplu işlemini görüntülemek için bir tuşa basması istenir. Bu parametre için "-1" belirterek toplu işlemi tamamen devre dışı bırak!

Sorgu dosyalarını kullanma

Aynı sonuçları daha temiz bir yolla elde etmek için bir diğer yol da sorgu dosyası oluşturmaktır. Bu şekilde, sorgu dosyanızı kolayca inceebilir ve Günlük Ayrıştırıcı aracının komut çizgilerinden çalıştırabilirsiniz. Bunun dışında, zevke göre kolayca BIR GUI oluşturabilirsiniz. GUI, kaydedilmiş SQL sorgusunu yükler ve Günlük Ayrıştırıcı aracını kullanarak sorguyu çalıştırır.

SQL sorgularından aynı etkiyi (Senaryo 1'de olduğu gibi) elde etmek için aşağıdaki komutu sebilirsiniz:

LOGPARSER -i:TEXTLINE dosyası:C:\LPQ\SearchAnyTextfile.sql -q:offC:\LPQ\SearchAnyTextFile.sql aşağıdaki bilgileri içerir: Not

C:\ klasöründe bu sütunda gösterilen örnekleri kullanabilirsiniz.

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

Fark ediyorsanız, sorgu artık çok daha temiz görünüyor ve daha anlamlı. Bu şekilde, daha karmaşık ve daha büyük sorgular da oluşturabilirsiniz ve her şey komut satırınıza sığacak çünkü bunu kullanıyorsanız. Sorgunun tamamı yerine SQL dosyası. Yine de komut satırına 260'dan fazla karakter sığdırmak mümkün değildir!

Sorgu dosyalarını kullanmanın avantajlarını tutmak için, aşağıdaki senaryolarda bu yöntemi kullanıym. Tüm sorgularımı bir .sql uzantısıyla C:\LPQ'ye kaydettim (kendi sorgularınızı kullanabilirsiniz).

Senaryo 2: Alt klasörleri de içinde olmak üzere belirli bir klasörden en büyük 10 dosyayı bulma

Sorunun küçük bir arka planı

Bir klasörünüz var ve içinde birçok alt klasör ve dosya var. Alt klasörleri de içinde olmak üzere bu klasördeki en büyük 10 dosyayı bulmak istiyor olun.

Belirli bir klasör için, Windows Gezgini'nde görünümü değiştirebilir (Görünüm menüsünde Ayrıntılar'a tıklayın)ve görünümü boyuta göre sıralayabilirsiniz. Ancak buradaki sorun, alt klasörün içeriğini de hesaba katmanız gerekiyor.

Yanıt: Günlük Ayrıştırıcısı aracı komut penceresini açın ve aşağıdaki komutu kullanın:

LOGPARSER -i:FS dosyası:C:\LPQ\Top10Files.sql -q:off -Recurse:-1Top10Files.sql şunları içerir:

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

Burada -i:FS, dosya sistemini sorgulamız olduğunu belirtir. FS giriş biçimi alanlarının tam listesini belgelerde ekleyebilirsiniz ve sorgunuza uygun olarak çerçeve atabilirsiniz.

-Recurse:-1 tüm alt klasörleri dahil etmek istediğiniz anlamına gelir. Tüm alt klasörleri istemiyorsanız veya tekrarı sınırlandır etmek istemiyorsanız, 0, 1, 2, vb. kullanın. Sayı, ayrıştırıcının gideceği derinliği ima eder. 0, hiçbir tekrarı olmaz, 2, ayrıştırıcının derinlik 2'ye kadar tekrarı vb. anlamına gelir.

Örnek çıkış

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


İşlenen statisticsElements: 1000
Elements çıktısı: 10
Yürütme süresi: 0,42 saniye

Senaryo 3: Web sitenizin en yavaş 20 sayfasını bulma

Sorunun küçük bir arka planı

Microsoft Internet Information Services (IIS) 6 kullanıyorsanız, birkaç web ASP.NET sahipsiniz ve performanstan gerçekten memnun değilsiniz. Sunucuda ufak değişiklikler yapmak ve Web sunucusundan hizmet vermek için en çok zaman alan ilk 20 sayfayı bilmek istiyor olun. En uzun zaman alan sayfaları saptamanız, düzeltmeniz ve sorunlarınızı çözmeniz gibi bir şey değildir. Ne yazık ki, performans sorunlarını çözecek gümüş renkli madde işaretleri yoktur. En azından başlangıç yapmak için bir yol olması gerekir. Doğru mu?

Yanıt: Günlük Ayrıştırıcısı komut penceresini açın ve aşağıdaki komutu kullanın:

LOGPARSER -i:IISW3C dosyası:C:\LPQ\Slowest20FilesInIIS.sql -o:DataGrid -q:offSlowest20FilesInIIS.sql aşağıdaki örnek kodu içerir.

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

Burada, -i:IISW3C, IIS W3C günlüklerini sorgulamız olduğunu belirtir. Belgelerde IISW3C giriş biçimi alanlarının tam listesini ekleyebilirsiniz ve sorgunuza uygun olarak çerçeve atabilirsiniz.

-o:DataGrid çıktının veri kılavuzunda aşağıdaki gibi gösterilmelidir:alternatif metinNot Bu sorguyu kullanmak için


IISW3C Günlüğü kullanıyor ve Gelişmiş Günlük özelliklerini etkinleştirmiş olması
gerekir. (Web sitesi özelliklerinizi açın, Web Sitesi sekmesine tıklayın, Günlüğü Etkinleştir'i seçmek için tıklayın ve ardından Etkin günlük biçimini W3C GenişletilmişGünlük Dosyası Biçimi olarak ayarlayın. Özellikler'etıklayın,
Gelişmiş sekmesine tıklayın ve sonra tüm seçenekleri seçmek için tıklayın.)

Senaryo 4: Web siteniz içinde en sık kullanılan 20 .aspx sayfasını bulma

Sorunun küçük bir arka planı

IIS 6 kullanıyor, birkaç ASP.NET Web siteniz var ve en sık kullanılan .aspx dosyalarını bilmek istiyor, böylece bu sayfaların performansını ayarlarsanız sonunda Tüm Web sitesi/sunucu avantajları elde edilebilir. Amaca uygun şekilde kullanılan sayfalar yerine en çok kullanılan sayfalarda zaman geçirmek her zaman daha iyidir. (Bu kural için özel durumlar olsa da. Diyelim ki, az kullanılan sayfa, bu konuda yüksek CPU kullanımına neden olan gerçekten kötü bir sayfadır!) Artık, belirli bir sayfaya hizmet etmek uzun sürüyorsa (Senaryo 3) ve sayfa en sık kullanılan sayfalardan biri ise, sayfanın stres altında iyi davranacağını her zaman onaylamanız gerekir.

Yanıt: Günlük Ayrıştırıcısı aracı komut penceresini açın ve aşağıdaki komutu kullanın:

LOGPARSER -i:IISW3C dosyası:C:\LPQ\Popular20FilesInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:onPopular20FilesInIIS.sql aşağıdaki örnek kodu içerir.

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

Bu durumda, -chartType:Bar3D Günlük Ayrıştırıcı aracına ne tür bir grafiğin hazır olduğunu söyler. -groupSize parametresi, hedef resmin genişliğini ve yüksekliğini piksel cinsinden belirtir. Kullanılabilir grafik türleri kümesi, yerel bilgisayarda yüklü olan Microsoft Office Web Bileşenleri sürümüne bağlıdır.

Çıkış şöyle görünüyor:alternatif metinönceden de görmüş olduğu gibi, Günlük Ayrıştırıcı aracının çeşitli günlüklerden verileri çözümlemede gerçekten yararlı olacağının birçok



yolu olabilir. Buradaki sınır yalnızca yaratıcılığın sınırıdır! Verilerin size çok daha iyi bir resim yansıtması için neredeyse sınırsız yol vardır ve bu üzerinde eylemde bulundurabilirsiniz. Buna değen tek şey, buzdağının yalnızca bir ucu! Ayrıca, Günlük Ayrıştırıcı aracının gücünü kullanarak yararlı programlar oluşturmak için Microsoft Visual C#, Microsoft Visual Basic .NET gibi üst düzey dilleri de kullanabilirsiniz. Aşağıdaki "Kaynaklar" bölümüne göz atın.

Kaynaklar

Günlük Ayrıştırıcı aracıyla ilgili daha fazla senaryoyu tartışmak istiyorum ve blogmde yalnızca Günlük Ayrıştırıcı aracı için yeni bir bölüm oluşturdum. Paylaşmak istediğiniz senaryolar veya Günlük Ayrıştırıcı aracı sorguları için önerileriniz varsa, lütfen rahulso@microsoft.com'da bana posta gönderin. Bu önerileri aşağıdaki Web sitesinde en uygun şekilde
gönderiyorum:

http://blogs.msdn.com/rahulso/archive/category/14624.aspx

Her zaman olduğu gibi, gelecek sütunlarda veya Bilgi Bankası'nda ele almak istediğiniz konularda Bilgi Bankası'nda Bilgi Gönder
formunu kullanarak fikirlerinizi gönderebilirsiniz.

Bu makalede ele alan üçüncü taraf ürünleri, Microsoft'un bağımsız şirketleri tarafından üretilen ürünlerdir. Microsoft, bu ürünlerin performansı veya güvenilirliğiyle ilgili zımni veya başka türlü hiçbir garanti vermez.

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin

Eğitimleri keşfedin >

Yeni özellikleri ilk olarak siz edinin

MICROSOFT 365 INSIDER’LARA KATILIN >

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?

Geri bildiriminiz için teşekkürler!

×