Jump to content

Admin

  • entries
    124
  • comments
    78
  • views
    34751

Ο ανεξερεύνητος κόσμος των Exchange 2007 Logs ( Μέρος 2ο )


i-away

1086 views

 Share

Συνεχίζοντας την κατάδυση μας στον κόσμο των logs ήρθε η ώρα να βρούμε το πρώτο μας μαργαριτάρι.



Ποίος είνια αυτός ο καταραμένος χρήστης που σφυροκοπάει τον server μας και μας δυσκολεύει την ζωή??:





"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 sender-address, Count(*) AS messagesSent FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - default-first-site-name to internet' GROUP BY sender-address ORDER BY messagesSent DESC" -rtp:-1 -i:CSV -nSkipLines:4 -o:DATAGRID





Παρατηρήστε ότι χρησιμοποιούμε το  connector-id='edgesync - default-first-site-name to internet'. Αυτό μπορούμε να το κάνουμε και για inbound αλλά και για outbound messages.



 image




Ας δούμε όμως όχι μόνο ποιοί στέλνουν αλλά και πόσα είναι αυτά που στέλνουν:


"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 sender-address, DIV(Sum(total-bytes),1048576) AS TotalBytes(MB) INTO TopVolumeSenders.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - default-first-site-name to internet' GROUP BY sender-address ORDER BY TotalBytes(MB) DESC" -chartType:Barclustered3d -i:CSV -nSkipLines:4 -o:CHART





 image




Και τώρα ας τα βάλουμε μαζί:


"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 sender-address, Count(*) AS messagesSent, DIV(Sum(total-bytes),1048576) AS TotalBytes(MB) INTO TopSendersCombined.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - default-first-site-name to internet' GROUP BY sender-address ORDER BY messagesSent DESC" -chartType:BarClustered3D -i:CSV -nSkipLines:4 -o:CHART





image 



Ας δούμε όχι μόνο ποιός στέλνει αλλά και ποιός παίρνει:



 





"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 recipient-address, Count(*) AS messagesRec, DIV(Sum(total-bytes),1048576) AS TotalBytes(MB) INTO TopReceiversCombined.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - inbound to default-first-site-name' GROUP BY recipient-address ORDER BY messagesRec DESC" -chartType:BarClustered3d -i:CSV -nSkipLines:4 -o:CHART





 image




Και τώρα ας δούμε το συνολικό Traffic:





"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT CASE connector-id WHEN 'edgesync - default-first-site-name to internet' THEN 'MB Sent' WHEN 'edgesync - inbound to default-first-site-name' THEN 'MB Received' ELSE connector-id END AS connector-id2, DIV(Sum(total-bytes),1048576) AS TotalBytes(MB) INTO totalbytessendreceive.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' GROUP BY connector-id2" -i:CSV -nSkipLines:4 -o:CHART  -chartType:Column3D -chartTitle:"Total Bytes Sent/Received (MB)"





 image




Μπορούμε όμως να δούμε και ποιοί είναι οι χρήστες απέξω που μας στέλνουν mail:



 





"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 sender-address, Count(*) AS messagesRec FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - inbound to default-first-site-name' GROUP BY sender-address ORDER BY messagesRec Desc" -rtp:-1 -i:CSV -nSkipLines:4 -o:DATAGRID





 image




Το  [email protected] είναι ένα internal account υπεύθυνο για την αποστολή  Delivery Status Notifications (DSN). Αν θέλουμε να το εξαιρέσουμε :



AND sender-address<>’ [email protected]



Ας απαντήσουμε τώρα στην ερώτηση σε ποιόν στέλνουν οι χρήστες mail και ποιοί λαμβάνουν τα περισσότερα σε έννοια αριθμού και μεγέθους:



 





"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 recipient-address, Count(*) AS messagesSent, DIV(Sum(total-bytes),1048576) AS TotalBytes(MB) INTO TopExternalReceiversCombined.gif from C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - default-first-site-name to internet' GROUP BY recipient-address ORDER BY messagesSent DESC" -chartType:BarStacked3d -i:CSV -nSkipLines:4 -o:CHART





 image




Οι δυνατότητες όμως δεν σταματάνε εδώ. μπορούμε να εκμεταλευτούμε και τα IIS logs.



 



Το πρώτο που μπορούμε να κάνουμε είναι να δούμε ποιοί χρήστες συνδέονται στους the internal Exchange CAS servers:





"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 cs-username, Count(*) AS OWAHits INTO OWAActivity.gif FROM C:\Inetpub\logs\LogFiles\W3SVC1\u_ex*.log WHERE cs-uri-stem LIKE '/OWA/' AND cs-username IS NOT NULL GROUP BY cs-username ORDER BY OWAHits DESC" -charttype:Bar3D -o:CHART -view:ON





 image




Αντίστοιχα για τους  ActiveSync users:


"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT cs-username, Count(*) AS EASHits FROM C:\Inetpub\logs\LogFiles\W3SVC1\u_ex*.log WHERE cs-uri-stem LIKE '%%Microsoft-Server-ActiveSync%%' AND cs-username IS NOT NULL GROUP BY cs-username ORDER BY EASHits DESC" -rtp:-1 -o:DATAGRID





 image




Ας πάρουμε και ένα δείγμα των devices που χρησιμοποιούνται στο ActiveSync





"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT cs(user-agent), count(*) AS Devices INTO devices.gif FROM C:\Inetpub\logs\LogFiles\W3SVC1\u_ex*.log WHERE cs-uri-stem LIKE '%%microsoft-server-activesync%%' AND cs-username IS NOT NULL AND cs(User-Agent) IS NOT NULL GROUP BY cs(User-Agent) ORDER BY Devices DESC" -charttype:pieexploded3d -ChartTitle:"Device Activity by Type" -categories:OFF





 



 image




Ας δούμε και την κίνηση του OWA κατά την διάρκεια της ημέρας:





"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TO_STRING(time, 'HH') AS Hour, COUNT(*) AS Hits INTO hitPerSecond.jpg FROM C:\Inetpub\logs\LogFiles\W3SVC1\u_ex*.log GROUP BY Hour ORDER BY Hour ASC" -i:IISW3C -o:CHART -chartType:ColumnClustered -chartTitle:"Hourly Hits" -groupSize:420x280





 image




Όλες οι παραπάνω εντολές όμως ήταν γενικές και δεν ήταν περιορισμένες σε συγκεκριμένή ημερομηνία – ώρα.Για να γίνει αυτό θα πρέπει να χρησιμοποιήσουμε αποτελεσματικά την παράμετρο  WHERE.



Για παράδειγμα ο παρακάτω πίνακας  δείχνει τις αλλαγές που πρέπει να γίνουν για να πάρουμε ημερομηνία και ώρα απο τα  Protocol Logs και τα  Message Tracking Logs



Για τα Agent Logs, η ημερομηνία και ώρα ορίζονται ως Timestamp. Για να χρησιμοποιήσουμε τις εντολές αλλάζουμε το [#Fields: date-time] με το [#Fields: Timestamp].


Extracting



Log Parser expression



Format



Date



EXTRACT_PREFIX([#Fields: date-time],0,'T')



YYYY-MM-DD



Time



EXTRACT_PREFIX(TO_STRING(EXTRACT_SUFFIX([#Fields: date-time],0,'T')),0,'.')



HH:MM:SS



Date & time



TO_TIMESTAMP ( EXTRACT_PREFIX(TO_STRING([#Fields: date-time]),0,'.') , 'yyyy-mm-ddThh:mm:ss')



TO_TIMESTAMP (Log Parser time stamp type)





 



Για παράδειγμα ας τρέξουμε το top internal senders query, αλλά μετά τις  ‘2009-09-17 11:30:00’.



 





"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 sender-address, Count(*) AS messagesSent FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\MessageTracking\MSG*.log WHERE recipient-status LIKE '250%%' AND connector-id='edgesync - default-first-site-name to internet' AND TO_TIMESTAMP(EXTRACT_PREFIX(TO_STRING([#Fields: date-time]),0,'.') , 'yyyy-mm-ddThh:mm:ss') > TO_TIMESTAMP ('2009-09-17 11:30:00','yyyy-mm-dd hh:mm:ss') GROUP BY sender-address ORDER BY messagesSent Desc" -rtp:-1 -i:CSV -nSkipLines:4 -o:DATAGRID





 



Πιστεύω ότι το συγκεκριμένο εργαλείο θα αποτελέσει βασικότατο και χρήσιμο εργαλείο στο οπλοστάσιο ενός Exchange server administrator.Να σημειώσω εδώ ότι οι παραπάμω εντολές μπορούν να γίνουν script ώστε να τις έχουμε πάντα διαθέσιμες.

 Share

5 Comments


Recommended Comments

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...