LogParser
Sehr interessantes AdOn:
LogParser Studio
http://blogs.technet.com/b/exchange/archive/2013/06/17/log-parser-studio-2-2-is-now-available.aspx
http://blogs.technet.com/b/exchange/archive/2012/03/07/introducing-log-parser-studio.aspx
Mit dem LogParser stellt Microsoft ein sehr mächtiges Werkzeug bereit, was sich aber erst auf den zweiten Blick erschließt. All zu viele Administratoren scheuen den Zugriff auf eine Kommandozeile, die Eingabe von umfangreichen Kommandozeilen oder SQL-Statements oder gar das Schreiben eigener Skripte und DLLs. Auch wenn das gar nicht schwer ist, so kann LogParser auch ohne umfangreiche Entwicklung genutzt werden. Microsoft liefert ausreichend Beispiele mit, die leicht auf eigene Bedürfnisse angepasst werden können. Dann hingegen können sie z.B.:
- IIS-Logs
Eine Suche auf "verdächtige" URLs (z.B. MSADC) und eine eventuelle Häufung sind einfach zu ermitteln - EVENTLOG
Sie können mit LogParser auch das Eventlog als Quelle nutzen und gezielt bestimmte EventIDs oder Quellen und Meldungen ausgeben lassen. Dies ist besonders hilfreich, wenn Sie keine Überwachungssoftware wie MOM2005 o.ä. einsetzen. - CSV-Dateien
LogParser kann aber auch fast alle anderen tabellarischen Datenquellen als Datei einlesen und auswerten - Und viele mehr
Sehr oft hilft LogParser damit, eigene VBSkripte zum Parsen verschiedener Textdateien gänzlich zu ersetzen. Allerdings ist der Einsatz aufgrund der umfangreichen Funktion nicht gerade als "einfach" anzusehen, zumal die Steuerung über Kommandozeilen und Skriptaufrufe erfolgt.
LogParser EXE
Die meisten werden LogParser als Kommandozeile einsetzen, d.h. aus einer DOS-Box aufrufen und deren bestehende Protokolldateien laufen lassen. Über die Kommandozeile werden die Parameter angegeben
- Parameter 1: -i:Inputformat
Format der Eingabe. Dies kann z.B. sein:
EVT = Eventlog, ADS = LDAP, IIS = Protokolle des Webserver, REG = Registry, NETMON = Netzwerkmonitor und einige mehr. - Parameter 2: (Optional) Steuerung der Eingabe
z.B.: das Trennzeichen einer Texteingabedatei - Parameter 3: -o:Output Format
CSV = Kommaseparierte Datei
CHART = grafische Aufbereitung als GIF-Bild
SYSLOG, SQL, IIS, XML und einige andere. - Parameter 4: optionale Parameter für die Ausgabe
z.B.: das Trennzeichen einer CSV-Datei - Parameter 5: Abfrage
Hier steckt sicher dann dass "Know-how" eine Abfrage zu finden, die ihre Daten entsprechend aufbereitet
Durch die Nutzung als Kommandozeile eignet sich LogParser Natürlich wunderbar für den regelmäßigen Start über den Microsoft Taskplaner zur Erzeugung von konsolidierten Daten. Wer braucht heute schon bei einem Webserver im Protokoll die gesamten Abrufe der Bilder, Stylesheets etc. Diese könnten durch Logparser einfach weggefiltert bzw. durch eine Summenzeile ersetzt werden.
- Log Parser and PowerShell – Part I
http://muegge.com/blog/log-parser-and-powershell-part-i/
LogParser COM-Objekt
Wenn Sie selbst programmieren, dann können Sie die gleichen Funktionen auch über das ebenfalls mit installierte COM-Objekt aus ihren Programmen nutzen: Im Object Browser sieht dies z.B. wie folgt aus:
(Erstellt mit dem Object Browser von Visual Basic 2005 Express)
Es gib ein Objekt mit dem Namen "MSUtil.LogQuery", welches Sie instanziieren und mit den Parametern für die Eingabe und Ausgeben (Ebenfalls Objekte) füttern, ehe Sie am Ende dann die "ExecuteBatch"-Methode aufrufen. Beispiele dazu finden Sie in Hilfe von Logparser (c:\programme\logparser 2.2\Logparser.chm)
- Log Parser and PowerShell – Part II
http://muegge.com/blog/log-parser-and-powershell-part-ii/
Logparser und SQL
Manchmal sind die Daten aber auch so umfangreich und sollten anders weiter verarbeitet werde, So dass eine interaktive Auswertung mit Logparser nicht weiter hilft. Der Weg zur Ablage der Daten in einer SQL-Datenbank ist gefordert. Auch hier kann Logparser unterstützt. Er kann nämlich dazu genutzt werden, die CSV-Dateien einzulesen, eine Vorfilterung und Verarbeitung vorzunehmen aber dann die Ausgaben in eine SQL-Datenbank zu exportieren.
Das geht sehr einfach per Kommandozeile. Zeile wurde zur besseren Lesbarkeit umgebrochen:
logparser.exe "SELECT * INTO iisLogs FROM c:\webserver\logs\*.log" -i:iisw3c -o:SQL -server:localhost -database:IISLogs -Username:sa -password:password -createTable: ON -cleartable: ON transactionRowCount:-1
Natürlich können Sie auch hier weitere Bearbeitungsschritte addieren. Die Ablage in SQL hat insbesondere den Vorteil, dass Sie z.B. mit SQL Reporting Services, Stored Procedures etc. sehr flexibel individuelle Reports erstellen können oder den Anwendern oder anderen Personen einen einfachen Zugang schaffen können.
Es gibt aber auch einige 3rd Party Produkte, die genau das schon machen. Schauen Sie also zuerst einmal nach, was der Markt hergibt, ehe Sie mit dem Programmieren beginnen.
- Import IIS Logs into SQL Server
http://blogs.msdn.com/b/mutaz/archive/2011/09/29/import-iis-logs-into-sql-server.aspx - Import website (IIS) logs into SQL
Server using Log Parser and PowerShell
http://www.technologytoolbox.com/blog/jjameson/archive/2012/02/29/import-website-iis-logs-into-sql-server-using-log-parser.aspx - LogParser Performance Inserting into SQL
Server
http://www.purplefrogsystems.com/blog/2013/08/logparser-performance-inserting-into-sql-server/ - Importing IIS Logs into a SQL
Database/Table
http://chrisbitting.com/2012/04/12/importing-iis-logs-into-a-sql-database-table/
Logparser Studio
Die Kommandozeilen und SQL-Statements sind nicht jedermanns Sache. Aber mit dem Logparser Studio gibt es eine sehr elegante Möglichkeit selbst verschiedene Datenquellen auszuwerten. Sie laden die aktuelle Version einfach herunter und packen diese aus:
Download
http://gallery.technet.microsoft.com/Log-Parser-Studio-cd458765
In dem Verzeichnis befindet sich dann eine LPS.EXE zum Starten und zeigt ihnen die zur Verfügung stehenden Reports direkt an. Sie denke u.a. folgende Bereiche ab:
- ActiveSync
- EWS
- OWA
- RPCA
- Eventlogmeldungen
- NETLOGON Anmeldungen
- Generische IIS Auswertungen
- Messagetracking
Die Vordefinierten Reports sind in der Datei "LPSV2Library.XML" definiert. Die dazugehörige Beschreibung erspare ich ihnen. Auch so ist die Übersicht der Reports schon "Appetitanregung" genug. Die meisten Auswertungen sind für Exchange. Es gibt aber auch Beispiele für Windows Eventlogs
ActiveSync Proxy: Exchange 2013, Find OPTIONS requests with errors ActiveSync Proxy: Find Field Names ActiveSync Report ActiveSync Report [Top 20] ActiveSync: 500x HTTP /3 Minutes ActiveSync: Apple Device/iOS Version Report ActiveSync: Budget Report [100% Exceeded] ActiveSync: Budget Report [75% Exceeded] ActiveSync: Client Device Generated Protocol Commands ActiveSync: Count all errors ActiveSync: Count all Syncs per SyncKey ActiveSync: Count all Syncs per SyncKey ActiveSync: Count Syncs with SyncKey of Zero Per User ActiveSync: Device Calendar requests ActiveSync: Device Query ActiveSync: Devices Report [Top 20 Devices] ActiveSync: Devices Report [Top 20 Devices] Specific Device ActiveSync: Errors by User to CSV ActiveSync: Exchange 2013 Active Sync Throttling Report - Count Users over budget. ActiveSync: Exchange 2013 ActiveSync Throttling Report ActiveSync: Exchange 2013 ActiveSync Throttling Report - Negative Balance ActiveSync: Exchange 2013 ActiveSync User Performance Report ActiveSync: Exchange 2013 Device query ActiveSync: Find All Non-Zero Sync Keys Per User ActiveSync: Find All SyncKeys Per User Sorted By User ActiveSync: Find All SyncKeys Per User/Chronological Order ActiveSync: Find All Zero SyncKeys Per User (Expanded) ActiveSync: High CPU caused by Mobile Devices ActiveSync: High RPC counts or latency ActiveSync: HTTP 500 /Hour ActiveSync: HTTP 503 1/2 hour ActiveSync: iPhone Report by User/Hits/Device ActiveSync: iPhone Top 20 Report by User/Hits/Device ActiveSync: Requests > 8 Seconds ActiveSync: Requests with ActiveSync errors ActiveSync: SendMail ActiveSync: Status Code Report ActiveSync: Status Code Report II ActiveSync: Top 100 Users per Device ActiveSync: Top 3 ActiveSync Users ActiveSync: Unique Devices by # Hits ActiveSync: User Bandwidth > 10MB ActiveSync: User Bandwidth Top 100 ActiveSync: User by Proxy Error Authentication Failures Autodiscover Proxy: Exchange 2013 requests per hour per User Autodiscover: Slow Requests by User Average Bandwidth per 1/2 Hour Avg Response for a User Avg Response for all Users CAS: All Requests with more than one hundred 500 errors. CAS-CAS Proxy ECP: by Username [CAS Proxy Target] ECP: Request by Username [CAS INTERNET] Error Report by Status EVENTS: Count Application Errors per Hour EVENTS: Count Application Log Entries EVENTS: Count Errors and Warnings Every 24 hours EVENTS: Find All Remote Logons EVENTS: Find Event Log Field Names Events: Query an exported event log file. EVENTS: Sample EVENTS: Top 1000 Errors and Warnings EWS: [500 Errors] EWS: 500 Errors [CSV] EWS: All 500s per User, per 15 Minute interval between two times EWS: Average Bandwidth Second/Hour EWS: Average Response Time 1/2 Hour EWS: BESAdmin Impersonated Login Report [CSV] EWS: Budget Report [100% Exceeded] EWS: Budget Report [75% Exceeded] EWS: Count requests per User per 15 minute interval between two times EWS: Count Users with 503 errors EWS: Exchange 2013 - TOP 1000 EWS requests by CPU Used EWS: Exchange 2013 EWS CPU usage per 5 minute interval. EWS: Failed SoapActions by Action/Item/User/Error EWS: Find all EWS requests between two timeframes excluding 401s EWS: GetOOFSettings Report EWS: HTTP 500 Errors per Hour per User EWS: HTTP 500 Errors per Hour w/Description EWS: PROXY (500 Errors) EWS: Requests Every 3 Minutes EWS: Requests Every Hour EWS: Requests per Hour EWS: SOAP Report by SoapAction EWS: SoapActions by Action/Item/User EWS: SoapActions by Action/Item/User [CSV] EWS: SoapActions by Action/Item/User [Failures] EWS: Top 20 EWS Users EWS: Top 20 EWS Users - Min/Max/Avg EWS: Top 20 EWS Users CSV EWS: Top 5 EWS Users ExRCA: Requests EXRPC: Find Exchange RPC Client Access Log Field Names EXRPC: Find requests with rpc-status or failures > 0 EXSMTP: Sample SmtpSend Query FileSystem: Sample query lists properties for all LPS files. Find ActiveSync User Find EWS Delays by User [CSV] Find EWS Users w/TimeOutExpired Errors FS: IIS Log File Sizes Last 10 Days HTTPERR: Abandoned Requests HTTPERR: Abandoned Requests - Specific AppPool HTTPERR: AppPool Crashes per 1/2 Hour HTTPERR: Client_Reset Report HTTPERR: Common Http.Sys Errors HTTPERR: Connections_Refused HTTPERR: Find App Pool Crashes HTTPERR: Queue_Full HTTPERR: Timer_AppPool IIS: All Requests, Specific User [CSV] IIS: Count all Web Service 500 Errors by URI IIS: HTTP 401 by User [CSV] IIS: HTTP 503 Errors [CSV] IIS: HTTP Status Codes by Count IIS: Request per Hour IIS: Request per Hour by Bytes Sent IIS: Status/SubStatus Report IIS: Top 20 HTTP Verbs IIS: Top 20 URIs IIS: Top 25 Slow URLs IIS: User-Agent Report IIS: VDir Hits by IP IIS: Win32 Error Report LPS: Search Library XML Message Tracking: Exchange 2010 - Delivery Failures by Percentage Message Tracking: Exchange 2010 - Failures by sender/receiver/direction/status Message Tracking: Exchange 2010 - Failures per Failure/Direction Message Tracking: Exchange 2010 - Mesage Subject by Count Message Tracking: Exchange 2010 - Messages in pipeline per 1/2 hour Message Tracking: Exchange 2010 - Messages Received by Count Message Tracking: Exchange 2010 - Top Talkers by Sender/Send Source Message Tracking: Exchange 2010 - Top Ten Senders Message Tracking: Exchange 2010 -Top Talkers by percentage Message Tracking: Exchange 2010 -Top Talkers by Sender Message Tracking: Track Message by Subject Text NETLOGON: Count all [Critical] Errors NETLOGON: Count lockout errors. NETLOGON: Find all [Critical] Errors NETLOGON: Find all can't allocate API slot errors II NETLOGON: Find all entries that don't return zero (success) EXPERIMENTAL NETLOGON: Find can't allocate client API slot errors NETLOGON: Find failed password attempts NETLOGON: Find locked out accounts NETMON: Bytes Per Minute OLA: RPC/HTTP Users by Requests OWA: Budget Report [100% Exceeded] OWA: Budget Report [75% Exceeded] OWA: Budget Report [CSV] OWA: Budget Report [Top 100 Users] OWA: Exchange 2013 ActiveSync User Report OWA: Exchange 2013 OWA action report by duration/User. OWA: Exchange 2013 Throttling Report OWA: Hits by User/page requested OWA: Latency Report [Top 100] OWA: Latency Report [Top 20] OWA: Latency Report [CSV] OWA: Status Codes By VDir OWA: Status Codes By VDir [CSV] OWA: Top 20 OWA Users Page Hits per Single IP Password Error Report Powershell: Find 500 Errros Powershell: Hits (HTTP 500) REGISTRY: Find Registry Query Field Names REGISTRY: Writes Since Previous Date RPCA: Breakdown of MAPI clients by percentage RPCA: Breakdown of MAPI clients by percentage/version RPCA: Client connect/disconnect report by hour RPCA: Connect/Disconnect Report (10 Second Intervals) RPCA: Count RPC backoff errors per User RPCA: Count Various Errors RPCA: MAPI client report by percentage RPCA: Timed ROPs Report TextLine: Download a web page from the Internet TextLine: Sample Batch Query 1 TextLine: Sample Batch Query 2 Throttling: Find Delays XML: Books Sample 1 XML: Books Sample 2
Im Internet gibt es auch jede Menge weiterführende Informationen:
- Introducing: Log Parser
Studio
http://blogs.technet.com/b/exchange/archive/2012/03/07/introducing-log-parser-studio.aspx - Getting Started with Log
Parser Studio
Teil1: http://blogs.technet.com/b/karywa/archive/2013/04/21/getting-started-with-log-parser-studio.aspx
Teil2:http://blogs.technet.com/b/karywa/archive/2013/04/21/getting-started-with-log-parser-studio-part-2.aspx - Log Parser Studio
http://blogs.msdn.com/b/ronalg/archive/2012/03/13/log-parser-studio.aspx - Exchange 2007/2010: Log
Parser Studio
http://www.frankysweb.de/?p=688
Es gibt aber noch andere Programme, die sich auf die COM-API von Logparser stützen
- Visual Log Parser
http://visuallogparser.codeplex.com/ - Log Parser Lizard GUI - FREE Query Software
http://www.lizard-labs.net/log_parser_lizard.aspx
Beispiele
Zur besseren Lesbarkeit sind die Zeilen umgebrochen. Sie müssen natürlich "am Stück" eingegeben werden.
Benutzer von OWA
(Quelle: TechNet) (Zur Lesbarkeit umgebrochen
logparser.exe "SELECT TO_STRING(time, 'HH') AS Hour, COUNT(*) AS Hits INTO hitPerSecond.jpg FROM ex*.log GROUP BY Hour ORDER BY Hour ASC" -i:IISW3C -o:CHART -chartType:ColumnClustered -chartTitle:"HoURLy Hits" -groupSize:420x280
Liste der OWA Anwender
logparser.exe "SELECT cs-Username AS UserID,Count(*) FROM '[LOGFILEPATH]' WHERE cs-uri-stem LIKE '%owa%' AND UserID is not null GROUP BY UserID ORDER BY COUNT(*) DESC "
Bandbreitennutzung durch OWA
logparser file:QDailyHits.sql -i:IISW3C -o:CHART -chartType:ColumnClustered -chartTitle:"owa.msxfaq.de - Volumen in KB pro Stunde" -groupSize:420x280 Inhalt von QDailyHits.sql: SELECT TO_STRING(time, 'HH') AS Hour, DIV(Sum(cs-bytes),1024) AS Incoming(K), DIV(Sum(sc-bytes),1024) AS Outgoing(K) INTO %chartname% FROM %source% GROUP BY Hour
Auswertung von SMTP-Logs und Mssagetracking Logs
LogParser kann auch die Exchange Logs und
LogParser.exe" -i:W3C -o:TSV "select TO_TIMESTAMP( STRCAT( '2006-10-15', STRCAT(' ', STRREV( SUB( STRREV( TIME ) , 'TMG ') ))),'yyyy- MM-dd h:m:s') AS DateTime, Recipient-Address AS RcptAddress, MSGID, total-bytes AS TotalBytes, Number-Recipients AS NumRcpts, Sender-Address AS Sender FROM c:\Programme\exchsrvr\log\20061015.log TO test.tab WHERE recipient-Address LIKE '%%@%%' GROUP BY DateTime, MSGID, Recipient-Address, total-bytes, Number-Recipients, Sender-Address" -filemode:1
Auswertung von Messagetracking für Statistiken
logparser.exe "SELECT TO_LOCALTIME(TO_TIMESTAMP(EXTRACT_PREFIX(TO_STRING([#Fields: date-time]),0,'T'), 'yyyy-MM-dd')) AS Date, COUNT(*) AS Hits from *.log where (event-id='RECEIVE') GROUP BY Date ORDER BY Date ASC" -i:CSV -nSkipLines:4 -rtp:-1
- Calculate Daily Email Traffic using
Message Tracking Logs and Log Parser
http://exchangeserverpro.com/daily-email-traffic-message-tracking-log-parser/
Auswertung der Nutzung von ActiveSync
Die Auswertung von ActiveSync ist sicher besonders interessant, da so eine Übersicht der Nutzung (und auch zu erwartenden Kosten) zu erhalten ist.
- Exchange 2003 - Active Sync reporting
http://blogs.technet.com/b/exchange/archive/2006/02/14/419562.aspx - More on Exchange ActiveSync Reporting with Log Parser - COM object
available
http://msexchangeteam.com//archive/2006/03/03/421149.aspx
Diesmal mit einem COM-Objekt, um das Parsen der IIS-URLs auszulagern -
IT's Showtime: IIS Data Mining with Log Parser 2.X
http://www.Microsoft.com/emea/itsshowtime/sessionh.aspx?videoid=265
Auf diesen Webseiten finden Sie sehr viele Beispiele. Besonders interessant ist hierbei eine DLL "lpeas.dll ", die bei der Auswertung von IIS_Logs die Besonderheiten von EAS genauer auseinander nimmt.
Weitere Links
-
Apache Log Analyse per PowerShell
Auf der Suche nach Fehlern, Angriffen und Lasthinweisen. - Introducing: Log Parser Studio
http://blogs.technet.com/b/exchange/archive/2012/03/07/introducing-log-parser-studio.aspx - Logparser 2.2 Download
http://www.Microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en - Professor Windows - May 2005 How
Log Parser 2.2 Works
http://www.Microsoft.com/technet/community/columns/profwin/pw0505.mspx - Log Parser 2.2
http://www.Microsoft.com/technet/scriptcenter/tools/logparser/default.mspx - Logparser als COM-Object verwenden
http://www.microsoft.com/technet/scriptcenter/resources/tales/sg0105.mspx - TechNet Log Parser Examples
http://www.Microsoft.com/technet/scriptcenter/tools/logparser/lpexamples.mspx - LogParser Advanced Exchange 2007 Transport Logs Troubleshooting using
Log Parser - Part 1+2
http://blogs.technet.com/b/exchange/archive/2007/11/12/447515.aspx
http://blogs.technet.com/b/exchange/archive/2007/11/28/447598.aspx - "Unofficial Support Site"
http://www.logparser.com/ - More on Exchange ActiveSync Reporting with Log Parser - COM object
available
http://msexchangeteam.com//archive/2006/03/03/421149.aspx - More fun with Logparser and Exchange logs
http://blogs.technet.com/b/exchange/archive/2007/09/12/446982.aspx - LogParser und RRDTool
http://geekswithblogs.net/woodenshoe/archive/2005/09/17/54194.aspx - Auswertung on BLOG-Logs mit Logparser samt grafischer Ausgabe
http://www.xenopz.com/blog/bartdeboeck/PermaLink,guid,04befb52-cfb3-4df8-98d2-f4640a2b6dae.aspx - LogParser Commandline Creator
http://www.anonymoos.com/logparser.php - Logparser Forum
http://www.logparser.com/instantforum33/default.aspx - Using PowerShell für Message Analyzer Text Log Parsers
http://blogs.technet.com/b/askpfeplat/archive/2015/08/17/using-powershell-for-message-analyzer-text-log-parsers.aspx - Reporting on OWA usage
http://www.msd2d.com/Content/Tip_viewitem_03NoAuth.aspx?id=d8f61600-172e-4ad4-a5b2-5e9526890cca§ion=Exchange - Monitoring IIS with Logparser and the RRDtool
http://geekswithblogs.net/woodenshoe/archive/2005/09/17/54194.aspx
Siehe dazu auch RRDTool -
http://www.anonymoos.com/logparser.php
Webseite zum Generieren von Logparser Kommandozeilen - Monitoring IIS with Logparser and the RRDtool
http://geekswithblogs.net/woodenshoe/archive/2005/09/17/54194.aspx - Coding Horror - Microsoft LogParser
http://www.codinghorror.com/blog/2005/08/microsoft-logparser.html - Forensic Log Parsing with Microsoft's LogParser
http://www.symantec.com/connect/articles/forensic-log-parsing-microsofts-logparser - Artikel zu Logparser von Marc Grothe
http://www.msexchange.org/tutorials/Using-Logparser-Utility-Analyze-ExchangeIIS-Logs.html - Parsing my IIS Log Files with LogParser 2.2 to learn more about Blogs
stats from NewsGator and NewsGatorOnline
http://www.hanselman.com/blog/ParsingMyIISLogFilesWithLogParser22ToLearnMoreAboutBlogsStatsFromNewsGatorAndNewsGatorOnline.aspx