Jump to content

Admin

  • entries
    124
  • comments
    78
  • views
    33170

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


i-away

464 views

 Share

Αναζητώντας λύση σε ένα πρόβλημα που είχε ο φίλτατος Blackman με τον Exchange του συνειδητοποίησα πόσο σημαντική μπορεί να είναι η συλλογή των log files και η ανάλυση τους. Η Microsoft το 2005 κυκλοφόρησε το  SQL Server 2000 Report Pack for Microsoft Exchange, μια lite έκδοση του Exchange Reporter της  SSW.

Εναλλακτικά υπήρχε ο  Microsoft Operations Manager (MOM) 2005 μαζί με το  Exchange Server Management Pack που έκαναν καταπληκτική δουλειά. Δυστυχώς το επόμενο Management Pack για τον  System Center Operations Manager (SCOM) 2007 μας στέρησε κάποιες απο τις δυνατότητες που είχαμε το 2005.Ευτυχώς με το  Microsoft Exchange Server 2007 Management Pack for System Center Operations Manager 2007 R2 οι ελλείψεις αυτές διορθώθηκαν .

Πριν προχωρήσουμε όμως ας δούμε που αποθηκεύονται και ποιά είναι τα Exchange Server Logs:

Log

Default Path

Protocol Logs (SMTP Send)

\Exchange Server\TransportRoles\Logs\ProtocolLog\SmtpSend

Protocol Logs (SMTP Receive)

\Exchange Server\TransportRoles\Logs\ProtocolLog\SmtpReceive

Agent Logs

\Exchange Server\TransportRoles\Logs\AgentLog

IIS Logs

[Windows 2003] \Windows\System32\LogFiles\W3SVC1

[Windows 2008] \Inetpub\Logs\LogFiles\W3SVC1

Message Tracking Logs

\Exchange Server\TransportRoles\Logs\MessageTracking

POP3/IMAP Logs

\Exchange Server\ClientAccess\PopImap

Connectivity Logs

\Exchange Server\TransportRoles\Logs\Connectivity

Pipeline Tracing Logs

\Exchange Server\Transport Roles\Logs\PipelineTracing

Routing Table Logs

\Exchange Server\TransportRoles\Logs\Routing

MRM Logs

\Exchange Server\Logging\Managed Folder Assistant

 

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

Τα μόνα Logs που ενεργοποιούνται εξορισμού είναι τα  SMTP Send και  SMTP Receive το logging level των οποίων ελέγχεται στο επίπεδο του Exchange connector.

Βέβαια πρέπει να έχουμε θπόψην μας ότι τα σημαντικότερα Logs προέρχονται απο τους Exchange της περιμέτρου του δικτύου μας καθώς κάνουν register τα SMTP transactions απο τα mail που έρχονται ή φεύγουν απο το organization. Σε περίπτωση ύπαρξης Edge transport server τα logs μπορούν να ρυθμιστούν απο τον  internal Hub Transport server (Αν προσπαθήσουμε να το κάνουμε απο τον  connector στον  Edge server, θα έχουμε αυτό

image0021254400298407.jpg

Για να ενεργοποιήσουμε τα  SMTP Protocol Logs στους EdgeSync Send Connectors, στην  Exchange Management Console, στο Organization Configuration, επιλέγουμε  Hub Transport και μετά με δεξί κλίκ στους Send Connectors επιλέγουμε Properties

Στον EdgeSync Connector αλλάζουμε το Protocol logging level σε Verbose

image0041254400298423.jpg

image0061254400298423.jpg

Για τους σκληροπυρηνικούς που πρτοτιμούν  PowerShell:

Set-SendConnector "EdgeSync - Inbound to Default-First-Site-Name" -ProtocolLoggingLevel Verbose

image0081254400298423.jpg

Αφού όλα ενεργοποιηθούν πρέπει να ορίσουμε και το μέγεθος τους. Ο Exchange Server μας επιτρέπει να ορίσουμε το maximum log file size, το maximum directory size και το maximum age των  log files, με την χρήση της Set-TransportServer PowerShell cmdlet.

Οι SendProtocolLogMaxDirectorySize και ReceiveProtocolLogMaxDirectorySize παράμετροι ορίζουν το  maximum size των Send και  Receive Connector Protocol Log directories. Όταν αυτό ξεπεραστεί τότε ο  server σβήνει τα παλιότερα. Η ελάχιστη τιμή είναι  1 MB, ενώ η default είναι  250 MB.

Αλλά επειδή 250MB δεν είναι αρκετά ας τα κάνουμε 2GB για το Send Connector directory και 4GB για το  Receive connector:

Set-TransportServer -Identity E2K7EDGE -SendProtocolLogMaxDirectorySize 2048MB -ReceiveProtocolLogMaxDirectorySize 4096MB

Τώρα για να μπορέσουμε να πάρουμε τα ωραία πραγματάκια που θα δούμε παρακάτω θα χρησιμοποιήσουμε το Log Parser. Το εργαλειάκι αυτό μας δίνει  universal query access σε text-based data όπως log files, XML files και CSV files, όπως επίσης και key data sources των Windows όπως το Event Log, η  Registry, το file system η ακόμα και το Active Directory. Το καλύτερο όμως είναι οτι τα αποτελέσματα των queries μπορούν να γίνουν datagrids ή ακόμα καλύτερα visual charts.

Ακόμα ένα καλό είναι οτι δεν χρειαζεται να γίνει εγκατάσταση επάνω στον Exchange απλά πρέπει να έχει πρόσβαση στα logs.

Για την εγκατάσταση χρειαζόμαστε τα εξής:

  1. Το  Microsoft Logparser 2.2.
  2. Το  Office 2003 Add-in: Office Web Components.
  3. Και τέλος το  Microsoft Office 2003 Web Components Service Pack 1 (SP1) for the 2007 Microsoft Office System.

Το Log Parser έχει ένα επεξηγηματικότατο help file που βρίσκεται στο C:\Program Files (x86)\Log Parser 2.2 επίσης έχει κάποια έτοιμα παραδείγματα στο  C:\Program Files (x86)\Log Parser 2.2\Samples.

image0101254400434688.jpg

 

Εάν χρησιμοποιείται Exchange Server anti-spam agents υπάρχουν κάποια reports που μπορούμε να πάρουμε αναλύοντας τα Logs τους.Αυτά βρίσκονται είτε στον Exchange Edge server είτε στον Exchange Hub server.

Για να πάρουμε μια αρχική ιδέα του τι μπαίνει΄στο organization ας δούμε μια κατάταξη με βάση το  Spam Confidence Level (SCL) .

"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT ReasonData, count(*) AS hits FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\AgentLog\AGENT*.log WHERE ReasonData<>NULL GROUP BY ReasonData ORDER BY hits DESC" -i:CSV -nSkipLines:4  -o:DATAGRID -dtlines:800 -rtp:-1

image0121254400434704.jpg

Αν προτιμούμε το προηγούμενο σε μορφή πίτας προσθέτουμε το  –chartType:PieExplode3D

 

"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT CASE TO_INT(ReasonData) WHEN NULL THEN 0 ELSE TO_INT(ReasonData) END AS ReasonData2, count(*) AS hits INTO agentreasonspread.gif from C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\AgentLog\AGENT*.log GROUP BY ReasonData2 ORDER BY hits DESC" -i:CSV -nSkipLines:4  -o:CHART  -chartType:PieExploded3D -chartTitle:"Agent Reason Spread" -e 200 -dtlines:600

image0141254400434704.jpg

Όπως ξέρουμε τα επίπεδα του  SCL είναι από 1 μέχρι 9.Αν παρατηρήσουμε όμως τα screenshots θα δούμε ότι υπάρχει και η τιμή 0. Αυτή αντιπροσωπεύει τα  “policy is disabled” και  “content filtering was bypassed” δηλαδή τα mail που εισήλθαν στο organization.

Και επειδή αυτό μπορεί να μας μπερδέψει ας δούμε απλά τα  accepted και  rejected mail. Εδώ να υπενθυμίσουμε ότι τα mail με SCL rating  8 ή παραπάνω  θεωρούνται rejected, τα SCL 7 θεωρούνται ,  και όλα τα υπόλοιπα θεωρούνται  accepted.

 

"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT CASE TO_INT(ReasonData) WHEN 9 THEN 'REJECTED' WHEN 8 THEN 'REJECTED' WHEN 7 THEN 'QUARANTINED' ELSE 'ACCEPTED' END AS ReasonData2, TO_INT(mul(100.0,PropCount(*))) as Percent, count(*) as hits INTO agentAcceptedRejected.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\AgentLog\AGENT*.log GROUP BY ReasonData2 ORDER BY hits DESC" -i:CSV -nSkipLines:4  -o:CHART -chartType:PieExploded3D -chartTitle:"%% Accepted/Rejected mail" -dtlines:600 -categories:OFF -values:ON -view:ON

image0161254400434704.jpg 

Ας χρησιμοποιήσουμε τώρα και τα SMTP Protocol Logs. Από αυτά μπορούμε να εξάγουμε πληροφορίες για τα  SMTP connections και για τους  hosts.

Για να πάρουμε μια εικόνα των Total Inbound Simultaneous Connections:

 

"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT QUANTIZE(TO_TIMESTAMP (EXTRACT_PREFIX(TO_STRING(EXTRACT_SUFFIX([#Fields: date-time],0,'T')),0,'.'), 'hh:mm:ss'),3600) AS Hour, COUNT(*) AS Hits INTO radar_traffic.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\ProtocolLog\SmtpReceive\RECV*.LOG WHERE event='+' GROUP BY Hour ORDER BY Hour ASC" -i:CSV -nSkipLines:4 -o:CHART -charttype:RadarLineFilled -charttitle:" Global total SMTP inbound simultaneous connections per hours"

image0181254400581938.jpg

Αντίστοιχα για τα outbound connections:

 

"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT QUANTIZE(TO_TIMESTAMP (EXTRACT_PREFIX(TO_STRING(EXTRACT_SUFFIX([#Fields: date-time],0,'T')),0,'.'), 'hh:mm:ss'),3600) AS Hour, COUNT(*) AS Hits INTO radar_traffic_send.gif FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\ProtocolLog\SmtpSend\SEND*.LOG WHERE event='+' GROUP BY Hour ORDER BY Hour ASC" -i:CSV -nSkipLines:4 -o:CHART -charttype:RadarLineFilled -charttitle:" Global total SMTP outbound simultaneous connections per hours"

image0201254400581938.jpg

Η επόμενη εντολή αναλύει τους  suspicious senders. Για να το πετύχει αυτό κάνει extract από τα SMTP Receive Log όλους τους hosts με  status code 500 και πάνω:

 

"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT EXTRACT_PREFIX(remote-endpoint,0,':') AS Remote-host, count (*) AS hits INTO SuspiciousSenders.xml  FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\ProtocolLog\SmtpReceive\RECV*.log WHERE TO_INT(SUBSTR(DATA,0,3)) > 500 AND event = '>' GROUP BY Remote-host ORDER BY hits DESC" -i:CSV -nSkipLines:4 -o:XML

"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 REVERSEDNS(Remote-host), hits FROM SuspiciousSenders.xml" -i:XML -o:DATAGRID

Προσέξτε ότι υπάρχει και ένας internal host Αυτλος είναι είτε internal application server είτε authorized internal mail relay.

image0221254400581954.jpg

Ας δούμε και τα Top Outbound Rejection Errors για να δούμε μήπως ο server μας είναι blacklisted πουθενά:

 

"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT CASE TO_INT( SUBSTR(DATA,0,3)) when NULL then 0 else TO_INT( SUBSTR(DATA,0,3)) END AS RemoteHostReturnCode, data, count (*) AS hits FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\ProtocolLog\SmtpSend\SEND*.log WHERE RemoteHostReturnCode > 400 AND context <> 'Certificate thumbprint' AND context <> 'sending message' GROUP BY RemoteHostReturnCode, data ORDER BY hits DESC" -i:CSV -nSkipLines:4 -o:DATAGRID

image0241254400581954.jpg

Και τώρα μια απο τις ποιο επιθυμητές αναφορές: ΟΙ top sender hosts :

"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 EXTRACT_PREFIX(remote-endpoint,0,':') AS RemoteSendingHost, count(*) AS Hits INTO topsenders.xml FROM C:\Progra~1\Microsoft\Exchan~1\TransportRoles\Logs\ProtocolLog\SmtpReceive\RECV*.LOG WHERE event='+' GROUP BY RemoteSendingHost ORDER BY Hits DESC" -i:CSV -nSkipLines:4  -o:XML

"C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT TOP 10 REVERSEDNS(RemoteSendinghost), Hits INTO topsenders.gif FROM  TopSenders.xml" -i:XML -o:CHART  -chartType:PieExploded3D -chartTitle:"TOP 10 Senders" -groupSize:1024x768

image0261254400581969.jpg


Η συναρπαστική συνέχεια στο 2ο μέρος...

 Share

1 Comment


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...