প্রশ্ন আইআইএস পর্যবেক্ষণের জন্য প্রস্তাবিত লগপসার প্রশ্ন?


যেমন স্ট্যাক ওভারফ্লো বৃদ্ধি পায়, আমরা HTTP ক্লায়েন্টগুলির সমস্যা সনাক্ত করতে আমাদের আইআইএস লগগুলিতে ঘনিষ্ঠভাবে নজর দিতে শুরু করি দুর্বৃত্ত ওয়েব মাকড়সা, ব্যবহারকারীরা যাদের প্রত্যেকটি দ্বিতীয়, খারাপ লিখিত এক-অফ ওয়েব স্ক্র্যাপারগুলি রিফ্রেশ করার জন্য একটি বড় পৃষ্ঠা সেট থাকে, ট্রিকস ব্যবহারকারীরা যারা পৃষ্ঠাটি বাড়ানোর চেষ্টা করে, তারা আরো একবার গণনা করে এবং আরও অনেক কিছু করে।

আমি কয়েক সঙ্গে এসেছেন LogParser একটি আইআইএস লগ ফাইলের দিকে নির্দেশ করে এমন প্রশ্নগুলি যা আমাদের অদ্ভুততা এবং অস্বাভাবিকতাগুলি সনাক্ত করতে সহায়তা করে।

URL দ্বারা শীর্ষ ব্যান্ডউইথ ব্যবহার

SELECT top 50 DISTINCT 
SUBSTR(TO_LOWERCASE(cs-uri-stem), 0, 55) AS Url, 
Count(*) AS Hits, 
AVG(sc-bytes) AS AvgBytes, 
SUM(sc-bytes) as ServedBytes 
FROM {filename} 
GROUP BY Url 
HAVING Hits >= 20 
ORDER BY ServedBytes DESC
ইউআরএল Avgbyte পরিবেশিত হিট
------------------------------------------------- ---- ------- -------
/favicon.ico 16774 522 8756028
/content/img/search.png 15342 446 6842532

URL দ্বারা শীর্ষ হিট

SELECT TOP 100 
cs-uri-stem as Url, 
COUNT(cs-uri-stem) AS Hits 
FROM {filename} 
GROUP BY cs-uri-stem 
ORDER BY COUNT(cs-uri-stem) DESC
ইউআরএল হিট
------------------------------------------------- ----
/content/img/sf/vote-arrow-down.png 14076
/content/img/sf/vote-arrow-up.png 14018

আইপি / ব্যবহারকারী এজেন্ট দ্বারা শীর্ষ ব্যান্ডউইথ এবং হিট

SELECT TOP 30
c-ip as Client, 
SUBSTR(cs(User-Agent), 0, 70) as Agent, 
Sum(sc-bytes) AS TotalBytes, 
Count(*) as Hits 
FROM {filename} 
group by c-ip, cs(User-Agent) 
ORDER BY TotalBytes desc
ক্লায়েন্ট ব্যবহারকারী এজেন্ট totbytes হিট
------------- ------------------------------------- -------- --------- -----
66.249.68.47 মজিলা / 5.0+ (সামঞ্জস্যপূর্ণ; + Googlebot / 2.1; 135131089 16640
194.90.190.41 ওমজিবিল / 0.3++ omgili.com 133805857 6447

আইপি / ব্যবহারকারী এজেন্ট দ্বারা ঘন্টা দ্বারা শীর্ষ ব্যান্ডউইথ

SELECT TOP 30
TO_STRING(time, 'h') as Hour, 
c-ip as Client, 
SUBSTR(cs(User-Agent), 0, 70) as Agent, 
Sum(sc-bytes) AS TotalBytes, 
count(*) as Hits 
FROM {filename} 
group by c-ip, cs(User-Agent), hour 
ORDER BY sum(sc-bytes) desc
এইচআর ক্লায়েন্ট ব্যবহারকারী এজেন্ট totbytes হিট
------------- ----------------------------------- -------------- ----
9 194.90.190.41 ওমগিলিবট / 0.3 ++ omgili.com 30634860 ​​1549
10 194.90.190.41 ওমজিবিল / 0.3++ omgili.com 29070370 1503

আইপি / ব্যবহারকারী এজেন্ট দ্বারা ঘন্টা দ্বারা শীর্ষ হিট

SELECT TOP 30
TO_STRING(time, 'h') as Hour, 
c-ip as Client, 
SUBSTR(cs(User-Agent), 0, 70) as Agent, 
count(*) as Hits, 
Sum(sc-bytes) AS TotalBytes 
FROM {filename} 
group by c-ip, cs(User-Agent), hour 
ORDER BY Hits desc
এইচআর ক্লায়েন্ট ব্যবহারকারী এজেন্ট totbytes হিট
------------- ----------------------------------- ---------- --------
10 194.90.190.41 ওমজিবিল / 0.3++ omgili.com 1503 29070370
1২ 66.249.68.47 মজিলা / 5.0+ (সামঞ্জস্যপূর্ণ; + গুগলবোট / 2.1 1363 13186302

অবশ্যই {filename} একটি আইআইএস লগফিলের পথ হবে, যেমন

c:\working\sologs\u_ex090708.log

আমি ভাল IIS LogParser প্রশ্নের জন্য ওয়েব অনুসন্ধান প্রচুর এবং মূল্যবান সামান্য পাওয়া। এই 5, উপরে, গুরুতর সমস্যা ক্লায়েন্ট সনাক্ত করার জন্য আমাদের জট্টিল সাহায্য করেছে। কিন্তু আমি ভাবছি - আমরা কি অনুপস্থিত?

আইআইএস লগগুলি (প্লেসেস) টাইস এবং ডাইস করার অন্যান্য কী উপায় রয়েছে LogParser প্রশ্নের সাথে) পরিসংখ্যানগত বৈষম্য জন্য তাদের খনি? আপনি আপনার সার্ভারে চালানো কোন ভাল আইআইএস LogParser প্রশ্ন আছে? 


86
2017-07-25 11:19


উত্স


দ্বারা রেফারেন্স blog.stackoverflow.com/2009/07/podcast-63 - Brad Gilbert
শীর্ষ ব্যান্ডউইথ ব্যবহার প্রশ্নের মধ্যে DISTINCT শব্দ আছে। এটা কি জন্য ভাল? - Jakub Šturc


উত্তর:


হ্যাকিং অ্যাক্টিভিজ বা অন্য আক্রমণের জন্য একটি ভাল নির্দেশক প্রতি ঘন্টায় ত্রুটি সংখ্যা। নিম্নলিখিত স্ক্রিপ্ট ফেরত তারিখ এবং ঘন্টা যে 25 টির বেশি ত্রুটি কোড ছিল ফিরে আসেন। সাইটে ট্র্যাফিক পরিমাণের উপর ভিত্তি করে মানটি সামঞ্জস্য করুন (এবং আপনার ওয়েব অ্যাপ্লিকেশনটির গুণমান ;-))।

SELECT date as Date, QUANTIZE(time, 3600) AS Hour, 
       sc-status as Status, count(*) AS ErrorCount
FROM   {filename} 
WHERE  sc-status >= 400 
GROUP BY date, hour, sc-status 
HAVING ErrorCount > 25
ORDER BY ErrorCount DESC

ফলাফল এই মত কিছু করতে পারে:

তারিখ ঘন্টা স্থিতি ত্রুটিকণা
---------- -------- ------ ------
২009-07-24 18:00:00 404 187
২009-07-17 13:00:00 500 99
২009-07-21 ২1:00:00 404 80
২009-07-03 04:00:00 404 45
...

পরবর্তী প্রশ্নের একটি সনাক্ত করে এক আইপি ঠিকানার থেকে একক ইউআরএলে অসাধারণভাবে হিট সংখ্যা। এই উদাহরণে আমি 500 টি বেছে নিলাম, তবে আপনাকে প্রান্তের ক্ষেত্রে প্রশ্নগুলি পরিবর্তন করতে হতে পারে (উদাহরণস্বরূপ Google লন্ডনের আইপি ঠিকানা বাদ দিয়ে ;-)।)

SELECT DISTINCT date AS Date, cs-uri-stem AS URL,
      c-ip AS IPAddress, Count(*) AS Hits
FROM  {filename}
GROUP BY date, c-ip, cs-uri-stem
HAVING Hits > 500
ORDER BY Hits Desc
তারিখ ইউআরএল আইপি অ্যাড্রেস হিটস
---------- ----------------------------------- ----- --------------
২009-07-24 / লোগিন.এসপিএক্স 111.2২২.111২২২ 188২
২009-07-12 / অ্যাকউন্টআপডেট.এপিএক্স 11.2২.33.44 973
২009-07-19/Login.aspx 123.231.132.123 8২1
২009-07-21 / অ্যাডমিন.এসপিএক্স 44.55.66.77 571
...

19
2017-07-25 11:47



দ্বিতীয় প্রশ্ন, আমরা ইতিমধ্যে করেছি - কয়েকটি প্রশ্নের মধ্যে গ্রুপিং নোট। আইপি এবং ইউজার এজেন্টের মাধ্যমে, এটি দুনিয়ায় সেরা, কারণ ব্যবহারকারী এজেন্ট যদি নাল হয় তবে এটি আইপি হিসাবে একই, এবং যদি না হয় তবে এটি আরও তথ্য। - Jeff Atwood
ঠিক আছে জেফ, ব্যবহারকারী এজেন্ট যোগ করে তোলে। দুঃখিত, খারাপ শর্ট টাইম মেমরি এবং অ্যাটেনশন ডেফিসিট ডিসঅর্ডারের সমন্বয়। :-) - splattne
প্রতিস্থাপন having সঙ্গে একটি Limit n প্রথম প্রশ্নের সুর করার জন্য একটি ভাল উপায় জন্য করতে পারে - BCS


বৈধ ট্র্যাফিক ফিল্টার করতে এবং আপনার সুযোগকে বিস্তৃত করার জন্য আপনি বিবেচনা করতে পারেন এমন একটি জিনিস সক্ষম করা cs(Cookie) আপনার আইআইএস লগগুলিতে, একটি বিট কোড যোগ করুন যা জাভাস্ক্রিপ্ট ব্যবহার করে একটি ছোট কুকি সেট করে এবং যোগ করে WHERE cs(Cookie)=''

আপনার কোডের ছোট্ট বিটের কারণে, প্রতিটি ব্যবহারকারীর কুকি থাকা উচিত না যদি না তারা নিজে কুকিজ (যা একটি ছোট শতাংশ মানুষ করতে পারে) নিষ্ক্রিয় না করে বা সেই ব্যবহারকারীটি আসলে এমন একটি বোট যা জাভাস্ক্রিপ্ট সমর্থন করে না (উদাহরণস্বরূপ, wget, httpclient , ইত্যাদি জাভাস্ক্রিপ্ট সমর্থন করে না)।

আমি সন্দেহ করি যে কোন ব্যবহারকারীর কার্যকলাপের উচ্চ পরিমাণ থাকে, তবে তারা কুকিজ স্বীকার করে এবং জাভাস্ক্রিপ্ট সক্ষম করে থাকে তবে তাদের বৈধ ব্যবহারকারী হওয়ার সম্ভাবনা বেশি থাকে, তবে যদি আপনি একটি ব্যবহারকারীকে উচ্চ পরিমাণে কার্যকলাপের সাথে খুঁজে পান তবে কোন কুকি / জাভাস্ক্রিপ্ট সমর্থন নেই , তারা একটি বট হতে সম্ভবত।


6
2017-07-25 17:26





দুঃখিত, এখনও মন্তব্য করতে পারছি না তাই আমি জবাব দিতে বাধ্য।

'URL দ্বারা শীর্ষ ব্যান্ডউইথ ব্যবহার' প্রশ্নের সাথে একটি ছোট্ট বাগ আছে। বেশিরভাগ সময় আপনি কোনও পৃষ্ঠার জন্য আপনার অনুরোধগুলি গ্রহণ করে এবং ফাইল আকারের দ্বারা গুণমান করে থাকেন, এই ক্ষেত্রে, যেহেতু আপনি কোনও কোয়েরি প্যারামিটারগুলিতে মনোযোগ দিচ্ছেন না তবে আপনি কিছু সামান্য-তে - প্রতিটি ভুল সংখ্যা।

আরো সঠিক মান জন্য, শুধু একটি সমষ্টি (SC-বাইটস) পরিবর্তে ServedBytes হিসাবে MUL (হিটস, AvgBytes)


6
2017-09-10 13:11





অ্যান্ডার্স লুন্ডস্ট্রোম সাধারণ LogParser queriesies সম্পর্কিত ব্লগ নিবন্ধের একটি সিরিজ লেখা হয়েছে।

আমি এই ব্যবহার করা হয়েছে:


6
2017-10-28 14:12





এই লোকটির প্রায় ডজন ডজন দরকারী প্রশ্ন রয়েছে:

http://logparserplus.com/Examples/Queries.aspx


5
2017-08-09 15:07



এবং যে লোক (আমাকে) হয় সর্বদা পোস্ট আরো প্রশ্নের জন্য খুঁজছেন। - James Skemp


আপনি আপনার দীর্ঘতম অনুরোধ (stems এবং / অথবা প্রশ্নগুলি), এবং সার্ভারের দ্বারা প্রাপ্ত সর্বাধিক বাইটগুলির জন্য সন্ধান করতে চাইতে পারেন। আমি এমন একটি গোষ্ঠী চেষ্টা করব যা বাইটগুলি দ্বারা প্রাপ্ত গোষ্ঠী এবং আইপি, যাতে আপনি দেখতে পারেন যে একটি বিশেষ অনুরোধ বিন্যাস যা সম্ভবত একটি আইপি দ্বারা পুনরাবৃত্তি করা হয় কিনা।

SELECT TOP 30
cs-uri-stem,
cs-uri-query,
c-ip as Client, 
SUBSTR(cs(User-Agent), 0, 70) as Agent, 
cs-bytes,
c-ip,
FROM {filename} 
WHERE cs-uri-stem != '/search'
ORDER BY LEN(cs-uri-query) desc

SELECT TOP 30
COUNT(*) AS Hits
cs-uri-stem,
cs-uri-query,
c-ip as Client, 
SUBSTR(cs(User-Agent), 0, 70) as Agent, 
cs-bytes,
c-ip,
FROM {filename} 
GROUP BY c-ip, cs(User-Agent), cs-bytes 
ORDER BY Hits desc

আমি এক ঘন্টা ও এক মিনিটের জন্য আইপি অনুরোধের গ্রুপের জন্য হিট গণনা করব, অথবা স্ক্রিপ্ট হতে পারে এমন কোনও নিয়মিত পুনরাবৃত্তিমূলক ভিজিট আছে কিনা তা জানতে ঘন্টাটির মিনিটের সাথে অনুরোধকারী আইপি গোষ্ঠীটি গোষ্ঠীভুক্ত করব। এই ঘন্টা স্ক্রিপ্ট দ্বারা হিট একটি ছোট সংশোধন করা হবে।

কোনও অ-প্রোগ্রামিং সাইটগুলিতে, আপনার কীওয়ার্ডগুলি এসকিউএল কীওয়ার্ডগুলির জন্য অনুসন্ধান করাও ভালো ধারণা, জিনিসগুলি SELECT, UPDATE, DROP, DELETE এবং অন্যান্য অদ্ভুততা মত FROM sys.tables, ওরিং যে একসঙ্গে এবং আইপি দ্বারা গণনা সহজ মনে হবে। এগুলি সহ বেশিরভাগ সাইটের জন্য, শব্দগুলি কদাচিৎই যদি URI- এর প্রশ্নের অংশে প্রদর্শিত হয় তবে এখানে তারা বৈধভাবে ইউআরআই স্টেম এবং তথ্য অংশগুলিতে উপস্থিত হতে পারে। আমি প্রিমিয়ার স্ক্রিপ্ট চলমান যারা দেখতে কোন হিট আইপি বিপরীত পছন্দ। আমি দেখতে ঝোঁক .ru, .br, .cz এবং .cn। আমি বিচার করার মানে না, কিন্তু আমি তাদের এখন থেকে ব্লক ঝোঁক ঝোঁক। তাদের প্রতিরক্ষায়ে, এই দেশগুলো সাধারণত বেশিরভাগ জনসংখ্যা হয়, যদিও আমি এ পর্যন্ত অনেক কিছু বলছি না .in, .fr, .us অথবা .au একই কাজ।

SELECT TOP 30
c-ip as Client, 
SUBSTR(cs(User-Agent), 0, 70) as Agent, 
cs-uri-stem,
LOWER(cs-uri-query) AS q,
count(*) as Hits,
SUM(sc-bytes) AS BytesSent,
SUM(cs-bytes) AS BytesRecv
FROM {filename} 
WHERE q like '%select%' OR q like '%sys.tables%' OR etc... 
GROUP BY c-ip, cs(User-Agent) 
ORDER BY Hits desc

পুনশ্চ আমি এই প্রশ্নগুলি আসলে সঠিকভাবে চালানো হবে তা যাচাই করতে পারছি না। ফিক্সিংয়ের প্রয়োজন হলে অনুগ্রহ করে এটিকে মুক্তভাবে সম্পাদনা করুন।


4
2017-07-30 17:06





এই সব পাওয়া যায় নি এখানে (যা আপনার আইআইএস লগফিলস, btw বিশ্লেষণ করার জন্য একটি চমৎকার গাইড):

আপনার ওয়েবসাইটে 20 নতুন ফাইল

logparser -i: FS "শীর্ষ ২0 টি পাথ নির্বাচন করুন, সি থেকে ক্রিয়েটিম টাইম: \ inetpub \ wwwroot *। * ক্রিয়েশনটাইম ডিইএসসি দ্বারা অর্ডার" -আরআরপি: -1

Path                                                        CreationTime
----------------------------------------------------------- ------------------
c:\inetpub\wwwroot\Default.asp                              6/22/2003 6:00:01
c:\inetpub\wwwroot\About.asp                                6/22/2003 6:00:00
c:\inetpub\wwwroot\global.asa                               6/22/2003 6:00:00
c:\inetpub\wwwroot\Products.asp                             6/22/2003 6:00:00

20 সম্প্রতি সংশোধিত ফাইল

logparser -i: FS "শীর্ষস্থানীয় 20 টি পাথ নির্বাচন করুন, c: \ inetpub \ wwwroot *। * * শেষ WriteTime DESC দ্বারা আদেশ" -rtp: -1

Path                                                        LastWriteTime
----------------------------------------------------------- ------------------
c:\inetpub\wwwroot\Default.asp                              6/22/2003 14:00:01
c:\inetpub\wwwroot\About.asp                                6/22/2003 14:00:00
c:\inetpub\wwwroot\global.asa                               6/22/2003 6:00:00
c:\inetpub\wwwroot\Products.asp                             6/22/2003 6:00:00

ফাইলগুলি 200 স্থিতি কোডে পরিনত হয়েছে (যদি ট্রোজানগুলি মোছা হয়)

logparser "নির্বাচন করুন DISTINCT TO_LOWERCASE (cs-uri-stem) AS URL, গণনা করুন (গণনা করুন)) প্রাক্তন এএস হিটস.log যেখানে স্ক-স্ট্যাটাস = 200 গোষ্ঠী URL দ্বারা ORDER দ্বারা URL "-rtp: -1

URL                                      Hits
---------------------------------------- -----
/About.asp                               122
/Default.asp                             9823
/downloads/setup.exe                     701
/files.zip                               1
/Products.asp                            8341
/robots.txt                              2830

যেকোনো আইপি ঠিকানা দেখান যা একই দিনে একই দিনে 50 বার বেশি আঘাত করে

logparser "নির্বাচন DISTINCT তারিখ, cs-uri-stem, সি-আইপি, গণনা () প্রাক্তন এএস হিটসGROUP BY DATE, C-IP, CS-URI-STEM HAVING HITS> 50 হিটস ডেসক দ্বারা অর্ডার "-rtp: -1

date       cs-uri-stem                         c-ip            Hits
---------- ----------------------------------- --------------- ----
2003-05-19 /Products.asp                       203.195.18.24   281
2003-06-22 /Products.asp                       210.230.200.54  98
2003-06-05 /Products.asp                       203.195.18.24   91
2003-05-07 /Default.asp                        198.132.116.174 74

3
2017-08-06 20:58



আমি যারা তাকিয়ে করেছি এবং তাদের বিশেষভাবে সহায়ক খুঁজে না। তারা বেশিরভাগই "আপস খুঁজে পায়" এবং এটি সত্যিই আমাদের লক্ষ্য নয় (আমরা আপোস করা হয়নি) - Jeff Atwood