CybersLion

IIS लॉग टूल्स — IIS के लिए लॉगिंग, पार्सिंग और मॉनिटरिंग का पूरा गाइड

 

Internet Information Services (IIS) लॉग टूल्स — विस्तृत उपयोग और प्रैक्टिकल गाइड (हिंदी)


Meta Description: सीखें कि कैसे IIS लॉग्स को कन्फ़िगर, पार्स, फ़ॉरवर्ड और एनालाइज़ करें — Log Parser, Filebeat+ELK, Splunk, ETW & FREB सहित प्रैक्टिकल कॉन्फ़िगरेशन, क्वेरीज़, डैशबोर्ड और सर्वोत्तम प्रैक्टिस।
Focus Keywords: IIS लॉग टूल्स, Internet Information Services लॉगिंग, Log Parser, Filebeat ELK, Splunk IIS लॉग, ETW FREB, IIS मॉनिटरिंग, IIS लॉग बेस्ट प्रैक्टिस


1. परिचय

IIS (Internet Information Services) समृद्ध टेलीमेट्री उत्पन्न करता है — जो सिक्योरिटी, परफ़ॉर्मेंस ट्रबलशूटिंग, अनुपालन और फॉरेंसिक के लिए बेहद उपयोगी है। यह गाइड प्रमुख IIS लॉग टूल्स और उनके व्यावहारिक उपयोग बताता है: IIS में कौन-से फ़ील्ड सक्षम करें, लॉग कैसे पार्स/फ़ॉरवर्ड करें, और कैसे बड़े-पैमाने पर डैशबोर्ड और अलर्ट बनाएं। उदाहरण Windows वातावरण और आम लॉग स्टैक्स (ELK, Splunk) पर केंद्रित हैं, पर सिद्धांत किसी भी सेंट्रलाइज्ड लॉगिंग सेटअप के लिए लागू होते हैं।


2. IIS लॉग्स की संरचना — फॉर्मेट्स और महत्वपूर्ण फ़ील्ड्स

IIS आमतौर पर W3C फॉर्मेटेड एक्सेस लॉग लिखता है। हर रिकॉर्ड हेडर में फ़ील्ड नाम बताता है और उसके बाद रिक्वेस्ट-लाइन आती है। सुरक्षा और परफ़ॉर्मेंस एनालिसिस हेतु निम्न फ़ील्ड शामिल करना ज़रूरी है:

  • date, time — अनुरोध का टाइमस्टैम्प

  • s-ip — सर्वर IP

  • cs-method — HTTP मेथड (GET/POST)

  • cs-uri-stem — रिक्वेस्ट की रूट/पाथ

  • cs-uri-query — क्वेरी स्ट्रिंग

  • s-port — डेस्टिनेशन पोर्ट

  • cs-username — ऑथेन्टिकेटेड यूज़र (यदि उपलब्ध)

  • c-ip — क्लाइंट IP

  • cs(User-Agent) — यूज़र-एजेंट

  • sc-status — रिस्पॉन्स स्टेटस कोड

  • sc-substatus, sc-win32-status — अतिरिक्त स्टेटस जानकारी

  • time-taken — अनुरोध का समय (ms)

विशेषकर cs-username, c-ip, cs(User-Agent) और time-taken सुरक्षा व परफ़ॉर्मेंस के लिए बहुत उपयोगी हैं।


3. IIS लॉगिंग सक्षम करना और कॉन्फ़िगरेशन (प्रैक्टिकल)

GUI (IIS Manager)

  1. IIS Manager खोलें → साइट चुनें → Logging.

  2. Log file format: W3C चुनें।

  3. Select Fields में ऊपर बताये फ़ील्ड्स सक्षम करें।

  4. Log rollover (Daily या size-based) और log directory सेट करें (सिफारिश: non-system वॉल्यूम)।

  5. सेव करें।

PowerShell (उदाहरण)

Import-Module WebAdministration # "Default Web Site" के लिए W3C logging सक्षम करना Set-ItemProperty "IIS:\Sites\Default Web Site" -Name logFile -Value @{logExtFileFlags="Date,Time,ClientIP,UserName,Method,UriStem,UriQuery,ServerPort,UserAgent,Status,SubStatus,Win32Status,TimeTaken"} # लॉग डायरेक्टरी सेट करें Set-ItemProperty "IIS:\Sites\Default Web Site" -Name logFile.directory -Value "D:\IISLogs\DefaultWebSite" # रोज़ाना रोलओवर Set-ItemProperty "IIS:\Sites\Default Web Site" -Name logFile.period -Value "Daily"

सुझाव: लॉग्स को समर्पित वॉल्यूम पर रखें और NTFS अनुमतियाँ सीमित रखें ताकि केवल प्रशासन और लॉग कलेक्टर ही पढ़ सकें।


4. Failed Request Tracing (FREB) और ETW — गहरी ट्रेसिंग कब चाहिए

  • Failed Request Tracing (FREB): मॉड्यूल-लेवल ट्रेसिंग देता है जब अनुरोध किसी कंडीशन (जैसे 500) से मिलती है या time-taken अधिक हो। IIS Manager → Failed Request Tracing Rules से सक्षम करें।

  • Event Tracing for Windows (ETW): IIS और HTTP.SYS से लॉ-लेवल इवेंट देता है (कनेक्शन, queue drops आदि)। logman/wevtutil या Windows Performance Recorder से ETW सत्र इकट्ठा कर सकते हैं।

ये उनके उपयोग तब होता है जब सामान्य access logs में समस्या स्पष्ट नहीं दिखती — जैसे intermittent 500s या module failures।


5. लोकल पार्सिंग: Log Parser 2.2 और विकल्प

Log Parser 2.2 (Microsoft)

CLI टूल जो लॉग फाइलों को SQL-टेबल की तरह क्वेरी करने देता है — तेज़, ad-hoc एनालिसिस के लिए बढ़िया।

उदाहरण क्वेरीज़

  • Top 10 slowest pages:

LogParser.exe "SELECT TOP 10 cs-uri-stem, AVG(time-taken) as avg_ms, COUNT(*) as hits FROM D:\IISLogs\u_ex*.log GROUP BY cs-uri-stem ORDER BY avg_ms DESC" -i:W3C
  • 5xx error देने वाले क्लाइंट IPs:

LogParser.exe "SELECT c-ip, COUNT(*) AS errors FROM D:\IISLogs\u_ex*.log WHERE sc-status >= 500 GROUP BY c-ip ORDER BY errors DESC" -i:W3C

GUI विकल्प: Log Parser Lizard — Log Parser का UI wrapper जो विज़ुअलाइज़ेशन देता है।
अन्य विकल्प: PowerShell, छोटे एनालिटिक्स टूल जैसे goaccess (सीमित), या custom parsing स्क्रिप्ट।


6. सेंट्रलाइज्ड फ़ॉरवर्डिंग — Filebeat / Winlogbeat / Syslog

उत्पादन-पर्यावरण में लॉग्स सेंट्रल कलेक्टर पर भेजे जाने चाहिए।

Filebeat (Elastic Stack)

  1. IIS होस्ट पर Filebeat इंस्टॉल करें।

  2. filebeat.inputs में IIS लॉग डायरेक्टरी (u_ex*.log) रीड करने के लिए कॉन्फ़िग करें।

  3. W3C logs को डिकोड करने के लिए iis module का उपयोग करें या decode_csv_fields प्रोसेसर लगाएँ।

filebeat.yml (स्निपेट)

filebeat.inputs: - type: log enabled: true paths: - D:\IISLogs\*\*.log fields: source: iis multiline.pattern: '^\#Fields:' multiline.negate: true multiline.match: after filebeat.config.modules: path: ${path.config}/modules.d/*.yml output.logstash: hosts: ["elk-collector:5044"]

Filebeat का iis module ingest pipeline के साथ आता है जो स्पेशलाइज़्ड parsing करता है — यह कम त्रुटिपूर्ण होता है बनिस्बत कस्टम grok के।

Winlogbeat

Windows Event Logs और ETW चैनलों को भेजने के लिए Winlogbeat उपयोग करें — यह SIEM/ELK के लिए उपयोगी है।


7. ELK में पार्सिंग और ingestion (Logstash / Ingest pipeline)

Logstash grok उदाहरण (यदि Filebeat module नहीं उपयोग कर रहे)

input { beats { port => 5044 } } filter { if "iis" in [fields][source] { grok { match => { "message" => "%{YEAR:date} %{TIME:time} %{IP:server_ip} %{WORD:method} %{DATA:uri_stem}(?: %{DATA:uri_query})? %{INT:status}" } } date { match => [ "date time", "yyyy MM dd HH:mm:ss" ] } } } output { elasticsearch { hosts => ["http://elasticsearch:9200"] } }

पर ध्यान दें: Filebeat-iis module उपयोग करना अधिक भरोसेमंद और मेंटेनेबल है क्योंकि यह ingest pipeline अग्रिम रूप से परिभाषित करता है।


8. Splunk में ingestion और सर्च उदाहरण

Indexing

  • Universal Forwarder या HTTP Event Collector (HEC) के जरिए लॉग भेजें।

  • W3C फ़ील्ड के लिए field extractions बनाएं।

Splunk SPL उदाहरण

  • Top client IPs hitting 500 errors:

index=iis_logs sc_status>=500 | stats count by c_ip | sort -count
  • संभावित वेब-शेल अपलोड की खोज (शक के साथ POSTs):

index=iis_logs cs_method=POST cs_uri_stem="*.*" | where like(cs_uri_stem, "%.aspx%") OR like(cs_uri_stem, "%.ashx%") | stats count by cs_uri_stem, c_ip

Saved searches और alerts सेट कर के threshold पर notification भेजें।


9. डिटेक्शन नियम और अलर्ट उदाहरण

काफी मजबूत डिटेक्शन नियम बनाएं जो मल्टी-इंडिकेटर को जोड़ते हों:

  • Credential stuffing: बहुत सारे failed logins (401/403) एक ही IP से कई अकाउंट्स पर → alert & block।

  • Web shell upload: फ़ाइल अपलोड के साथ webroot में नई executable फ़ाइल का मिलना (FIM) + असामान्य आउटबाउंड कनेक्शन → high severity।

  • Slow pages: किसी क्रिटिकल पेज का average time-taken threshold से ऊपर → परफ़ॉर्मेंस अलर्ट।

  • Information leakage: 500/stack trace वाली responses → dev टीम को नोटिफाई करें।

Automated response: WAF/Firewall में IP ब्लॉक, session revoke, या orchestration tool से host isolate कराना।


10. फॉरेंसिक्स: लॉग एक्विज़िशन और Integrity कैसे रखें

  • लॉग्स को नियमित रूप से rotate और archive करें — immutable/append-only स्टोरेज बेहतर है।

  • archived logs पर SHA256 हैश जोड़कर अलग स्टोर करें ताकि बाद में integrity साबित की जा सके।

  • घटना की स्थिति में IIS लॉग, FREB traces, ETW captures, और Windows Event logs एकत्र करें; filesystem snapshot व forensic image बनाना सर्वोत्तम अभ्यास है।

  • chain-of-custody बनाए रखें ताकि लीगल प्रक्रियाओं में प्रमाण मान्य रहें।


11. परफ़ॉर्मेंस और रिटेंशन विचार

  • हाई-ट्रैफ़िक सर्वर पर GBs/दिन के हिसाब से लॉग उत्पन्न हो सकते हैं — डिस्क क्षमता, संपीड़न और आर्काइविंग प्लान करें।

  • रिटेंशन नीति: व्यापार/कम्प्लायंस के अनुसार रखें (उदाहरण: detailed logs 90 दिन, aggregated metrics 1 वर्ष)।

  • ELK/Splunk में केवल आवश्यक फ़ील्ड इंडेक्स करें; पुराने डेटा को cold/archival स्टोरेज में भेजें।


12. एन्ड-टू-एन्ड प्रैक्टिकल एक्सरसाइज़ (Hands-on)

लक्ष्य: IIS लॉग इनेबल करें → Filebeat से ELK में भेजें → Kibana डैशबोर्ड और अलर्ट बनाएं।

  1. टेस्‍ट साइट पर IIS लॉगिंग सक्षम करें और फ़ील्ड जोड़ें: date time c-ip cs-method cs-uri-stem cs-uri-query sc-status sc-substatus sc-win32-status time-taken cs(User-Agent) cs-username.

  2. IIS होस्ट पर Filebeat इंस्टॉल करें और iis module सक्षम करें:

    PS> .\filebeat.exe modules enable iis PS> .\filebeat.exe setup --dashboards
  3. Filebeat शुरू करें ताकि लॉग्स Logstash/Elasticsearch को भेजे जाएँ।

  4. Elasticsearch में जाँचे कि filebeat-* इंडेक्स में parsed फ़ील्ड्स (client.ip, http.request.method, url.path, http.response.status_code) उपलब्ध हों।

  5. Kibana में विज़ुअलाइज़ेशन बनाएं:

    • Top client IPs by request count.

    • 5xx errors over time.

    • Average time-taken per endpoint.

  6. अलर्ट बनाएं: http.response.status_code:500 का rate X% से Y मिनट में बढ़े → Slack/email और ticket।

  7. टेस्ट करें: controlled environment में एक simulated error trigger करें और जाँचें कि डैशबोर्ड व अलर्ट कार्य कर रहे हैं।

यह पूरा पाइपलाइन दिखाता है कि लॉगिंग से लेकर डिटेक्शन तक कैसे काम चलता है।


13. सुरक्षा और अनुपालन सर्वोत्तम प्रैक्टिस

  • लॉग्स की सुरक्षा: access को सीमित रखें, टी‐एलएस के साथ इन-ट्रांज़िट एन्क्रिप्ट करें और एन्‍क्रिप्ट-एट-रेस्ट रखें।

  • टैम्पर-एविडेंस: इंटीग्रिटी चेक और append-only स्टोरेज अपनाएँ।

  • लीस्ट प्रिविलेज: लॉग कलेक्टर सर्विस को न्यूनतम अनुमति दें।

  • प्राइवेसी: संवेदनशील PII को क्लियर-टेक्स्ट लॉग न करें; आवश्यकतानुसार मास्क/टोकनाइज़ करें।

  • वेरिफ़िकेशन: समय-समय पर synthetic events generate कर के pipeline की जाँच करें कि events SIEM में पहुँच रहे हैं।


14. उपयोगी टूल्स सारांश

  • IIS Manager & PowerShell — लॉगिंग और FREB कॉन्फ़िगरेशन।

  • Log Parser 2.2 / Log Parser Lizard — लोकल ad-hoc queries।

  • Filebeat / Winlogbeat — Elastic के लिए lightweight forwarders।

  • Logstash / Elasticsearch / Kibana — पार्स, इंडेक्स और visualize।

  • Splunk — enterprise SIEM और अलर्टिंग।

  • Wazuh / OSSEC — FIM और endpoint monitoring।

  • Suricata / Zeek — नेटवर्क टेलीमेट्री को correlate करने के लिए।


15. निष्कर्ष

IIS लॉगिंग एक सशक्त सत्य स्रोत है — सुरक्षा डिटेक्शन, परफ़ॉर्मेंस मोनिटरिंग और फॉरेंसिक के लिए। एक व्यावहारिक लॉग पाइपलाइन में सही फ़ील्ड्स को सक्षम करना, आवश्यकता पर FREB/ETW ट्रेस इकट्ठा करना, लॉग्स को सुरक्षित रूप से सेंट्रलाइज़ करना, और structured parsing व उच्च-कांश के डिटेक्शन नियम बनाना शामिल है। रिटेंशन, इंटीग्रिटी और प्राइवेसी के नियम लागू रखें तथा pipeline को नियमित रूप से टेस्ट व परखें।