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.

ses sütununu ASP.NET destekleme

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

Bu sütunu gereksinimlerinize göre özelleştirmek için sizi ilginizi çekici konular ve gelecekteki Bilgi Bankası makalelerinde ve Destek Sesi sütunlarında ele almak istediğiniz sorunlar hakkındaki fikirlerinizi göndermeye davet etmek istiyoruz. Fikirlerinizi ve geri bildirimlerinizi Gönder formunu kullanarak gönderebilirsiniz. Bu sütunun en altındaki formun bağlantısı da vardır.

ASP.NET Destek Sesi Sütunu'na hoş geldiniz. Adım Rahul Soni ve yaklaşık iki yıldır Microsoft'tayım. Bu ayın sütununda Log Parser 2.2 ile ilgili bazı olguları ele alacağım. Belirli senaryolara geçmeden önce Log Ayrıştırıcı aracını açıklamama izin verin.

Hakkı -nda

Günlük Ayrıştırıcısı; günlük dosyaları, XML dosyaları ve CSV dosyaları gibi metin tabanlı verilere ve Microsoft Windows işletim sistemindeki 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, Aşağıdaki dosyaları Günlük Ayrıştırıcısı aracından çok kolay ayrıştırabilirsiniz:

IISW3C, NCSA, IIS, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS ve COM. Komut satırı arabiriminin çok sezgisel olmadığını kabul ediyorum ve aracı yükleyip çalıştırdığınız anda öğreneceksiniz. Ancak araçta sezgisel bir his eksik olan şey, araç için sağlanan belgeler tarafından düzeltme eki uygulanıyor. Burada küçük bir tavsiyede bulunurum: Komut satırı arabiriminin sizi bu kadar çabuk kapatmasına izin vermeyin. Bu araç, bir geek araç setinde zorunludur ve özellikle performans açısından sorun gidermek istiyorsanız size çok yardımcı olur.

Belgeler oldukça iyi olduğundan ve yükleme klasörü de birkaç örnek içeren bir "Samples\Queries" klasörü içerdiğinden Günlük Ayrıştırıcısı aracının "nasıl kullanılacağını" tartışmayacağım.

Bu nedenle, Log Parser aracının tanıtımını tamamladıktan sonra, bahsettiğim senaryolara geri dönmeme izin verin.

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

Sorunun küçük bir arka planı

Müşteriniz bir şey yaparken "Erişim Reddedildi" sorunuyla karşılaşıyor. MüşterininFilemon adlı
başka bir parlak araç kullanmasını ve sorunu yeniden oluşturmasını öneririz. Kaynak ACL'leriyle ilgili bir sorun varsa, Filemon aracı hatayı yakalayabilir. Şimdi müşteriden kaydedilen Filemon günlük dosyasını size göndermesini istiyorsunuz. İşte talihsiz kısmı geliyor. Dosyayı (örneğin, Filemon.log) alırsınız ancak boyutun büyük olduğunu fark edersiniz (Filemon çok fazla veri kaydeder!). Not defteri kilitleniyor gibi görünür ve günlük dosyasında "Erişim Reddedildi" satırlarını bulmak oldukça yavaş olacaktır. 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 "C:\Filemon.log'dan Metin Seçin; burada '%Access Denied%' gibi bir Metin" -i:TEXTLINE -q:Off Günlük Ayrıştırıcısı aracına, satırın 'Erişim Reddedildi' içerdiği belirtilen dosyadan (C:\Filemon.log) her satırı (Metin) ayrıştırmak istiyoruz. -i:TEXTLINE komut satırı anahtarı giriş biçimini belirtir ve -q:Off komut satırı anahtarı ayrıntılı (-q[:ON|KAPALI]:sessiz mod;). -q komut satırı anahtarını açarsanız, gösterilen istatistikler ve aşağıdaki çıkışta alan adı (Metin) bulunmaz.

Örnek çıkış

Text7447 1:49:24 PM explorer.exe:1200 DIRECTORY C:\ Erişim Reddedildi İstatistikleriİşlenen öğeler: 640444
Öğeler çıkışı: 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 ENTER tuşuna birden çok kez basmaktan nasıl kaçınabilirsiniz?

Yanıt: Sorgularınızda -rtp:-1 parametresini kullanın!

Bu, çıkışı bir dosyaya yeniden yönlendirmek istemeniz durumunda gerekli bir parametre olacaktır. Ayrıca, STDOUT'a yazdığınızda, çıkış kayıtları bu parametre için belirtilen değere eşit sayıda satırdan oluşan toplu olarak görüntülenir. Bir satır grubu görüntülendiğinde, kullanıcıdan bir sonraki satır grubunu görüntülemek için bir tuşa basmasını ister. Bu parametre için "-1" belirtilmesi toplu işlemi tamamen devre dışı bırakır!

Sorgu dosyalarını kullanma

Aynı sonuçları daha temiz bir şekilde elde etmenin bir diğer yolu da sorgu dosyası oluşturmaktır. Bu şekilde, sorgu dosyanızı kolayca değiştirebilir ve Günlük Ayrıştırıcısı aracının komut satırından çalıştırabilirsiniz. Bunun dışında, zevkinize göre kolayca bir GUI oluşturabilirsiniz. GUI, kaydedilen SQL sorgusunu yükler ve Günlük Ayrıştırıcısı aracını kullanarak sorguyu çalıştırır.

SQL sorgularından aynı etkiyi elde etmek istiyorsanız (Senaryo 1'de olduğu gibi), aşağıdaki komutu sağlayabilirsiniz:

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

Not C:\ klasörünüzde LPQ klasörü oluşturma klasörüne gidin.

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

Fark ederseniz, sorgu şimdi çok daha temiz görünür ve daha mantıklı olur. Bu şekilde, daha karmaşık ve daha büyük sorgular da oluşturabilirsiniz ve komutunu kullandığınızdan her şey komut satırınıza sığar. Sorgunun tamamı yerine SQL dosyası. Yine de komut satırına 260'tan fazla karakter sığdırmak mümkün değildir!

Sorgu dosyalarını kullanmanın avantajlarını koruyarak aşağıdaki senaryolarda bu yöntemi kullanacağım. C:\LPQ'da .sql uzantısıyla kaydedilmiş tüm sorgularım var (kendi sorgularınızı kullanabilirsiniz).

Senaryo 2: Alt klasörleri de dahil 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 birkaç alt klasör ve dosya var. Alt klasörleri de dahil olmak üzere bu klasördeki en büyük 10 dosyayı bulmak istiyorsunuz.

Biliyorum, 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 katmalısınız.

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 aşağıdakileri içerir:

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

Burada -i:FS, dosya sistemini sorguladığımıza işaret eder. Belgelerde FS giriş biçimi alanlarının tam listesini görüntüleyebilir ve sorgunuzu uygun şekilde çerçeveleyebilirsiniz.

-Recurse:-1, tüm alt klasörleri dahil etmek istediğimizi gösterir. Tüm alt klasörleri istemiyorsanız veya özyineleme sınırlamak istiyorsanız 0, 1, 2 vb. kullanın. Sayı, ayrıştırıcının gideceği derinlik anlamına gelir. 0, özyineleme olmadığı, 2 ise ayrıştırıcının derinlik 2'ye kadar yinelendiğini gösterir.

Ö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
Öğe çıkışı: 10
Yürütme süresi: 0,42 saniye

Senaryo 3: Web sitenizde en yavaş 20 sayfayı bulma

Sorunun küçük bir arka planı

Microsoft Internet Information Services (IIS) 6 kullanıyorsunuz, birkaç ASP.NET Web siteniz var ve performansından gerçekten memnun değilsiniz. Sunucuya ince ayar yapmak ve Web sunucusundan hizmet vermek için en yüksek zamanı alan ilk 20 sayfa hakkında bilgi edinmek istiyorsunuz. En yüksek zaman alan sayfaları belirler, düzeltir ve sorunlarınız çözülür. Ne yazık ki performans sorunlarını çözmek için gümüş madde işareti yoktur. En azından başlamanın bir yolu olmalı. Doğru?

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

LOGPARSER -i:IISW3C file: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 sorguladığımıza işaret ediyor. Belgelerde IISW3C giriş biçimi alanlarının tam listesini görüntüleyebilir ve sorgunuzu uygun şekilde çerçeveleyebilirsiniz.

-o:DataGrid, çıkışın bir veri kılavuzunda aşağıdaki gibi gösterilmesi gerektiğini belirtir:



Not Bu sorguyu kullanmak için IISW3C Günlüğü kullanıyor olmanız ve Gelişmiş Günlük özelliklerini etkinleştirmiş olmanız 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'e tıklayın,Gelişmiş sekmesine
tıklayın ve ardından tüm seçenekleri seçmek için tıklayın.)

Senaryo 4: Web sitenizde en sık kullanılan 20 .aspx sayfasını bulma

Sorunun küçük bir arka planı

IIS 6 kullanıyorsunuz, birkaç ASP.NET Web siteniz var ve en sık kullanılan .aspx dosyalarını bilmek istiyorsunuz, böylece bu sayfaların performansını ayarlarsanız, sonunda tüm Web sitesi/sunucu avantajları. Her zaman en sık kullanılan sayfalarda ince ayar yapmak için zaman harcamak daha iyidir. (Bu kuralda özel durumlar olsa da. Az kullanılan sayfanın bu konuda yüksek CPU kullanımına neden olan gerçekten kötü bir sayfa olduğunu söyleyin!) Şimdi, belirli bir sayfanın hizmet verilmesinin uzun sürdüğünü fark ederseniz (Senaryo 3) ve sayfa en sık kullanılan sayfalardan biriyse, sayfanın her zaman stres altında iyi davrandığını 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 file: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ısı aracına ne tür bir grafik hazırlayacağını söyler. -groupSize parametresi, hedef görüntünün 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.

Çıktı şöyle görünür:



Daha önce de gördüğünüz gibi, Günlük Ayrıştırıcı aracının çeşitli günlüklerdeki verileri analiz etmede gerçekten yararlı olabileceğini gösteren birden çok yol olabilir. Burada sınır sadece yaratıcılık! Verilerin size çok daha iyi bir resim yansıtması için neredeyse sınırsız yol vardır ve üzerinde işlem yapabileceğiniz bir şey olabilir. Dokunduğumuz şey buz dağının sadece ucu! 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ı için daha fazla senaryoyu tartışmak istiyorum ve blogumda yalnızca Günlük Ayrıştırıcısı aracı için yeni bir bölüm oluşturdum. Paylaşmak istediğiniz senaryolar veya Günlük Ayrıştırıcısı aracı sorguları için herhangi bir öneriniz varsa, lütfenrahulso@microsoft.com adresinden bana
posta gönderin ve bunu aşağıdaki Web sitesinde en erken kolaylıkta göndereyim:

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

Her zaman olduğu gibi, gelecekteki sütunlarda veya Bilgi Bankası'nda İste formunu kullanarak ele almak istediğiniz konularla ilgili fikirlerinizi gönderebilirsiniz.

Bu makalede ele alınan üçüncü taraf ürünler, Microsoft'un bağımsız şirketleri tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği konusunda zımni veya başka bir şekilde hiçbir garanti vermez.

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

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×