Sledovanie protokolov protokolu Get-MessageTrackingLog

Rutinu cmdlet môžete použiť na analýzu denníkov prepravy pri sledovaní e-mailov v službe Exchange. Get-MessageTrackingLog Konzola Shell pre správu servera Exchange. V tomto článku uvediem príklady jednoriadkových príkazov PowerShell, ktoré často používam pri vyhľadávaní a sledovaní smerovania pošty v serveroch Exchange Server 2016/2013/2010 a Office 365 (Exchange Online)..

Dovoľte mi pripomenúť, že denníky prepravy Exchange sú uložené v adresári % ExchangeInstallPath% TransportRoles \ Logs \ MessageTracking a najefektívnejším a najflexibilnejším spôsobom analýzy týchto denníkov pri sledovaní správ v systéme Exchange je použitie rutiny cmdlet Get-MessageTrackingLog..

Najprv zvážte hlavné parametre rutiny Get-MessageTrackingLog, ktoré môžete použiť na filtrovanie udalostí v protokoloch. Najbežnejšie používané parametre cmdlet sú:

  • odosielateľ - vyhľadávanie podľa odosielateľa;
  • príjemcovia - vyhľadávanie podľa príjemcu;
  • server - Vyhľadajte na konkrétnom transportnom serveri
  • štart "02/30/2019 08:00:00" -koniec „02/31/2019 21:00:00“ - vyhľadajte konkrétne časové obdobie;
  • MessageSubject - prehľadať predmet správy;
  • EVENTIDE - vyhľadávanie podľa kódu udalosti servera (zvyčajne sa používajú príkazy RECEIVE, SEND, FAIL, DSN, DELIVER, BADMAIL, RESOLVE, EXPAND, REDIRECT, TRANSFER, SUBMIT, POISONMESSAGE, DEFER);
  • MessageID - sledovanie písmen podľa jeho ID.

Ak spustíte rutinu cmdlet Get-MessageTrackingLog bez parametrov sa zobrazia všetky udalosti z denníkov Exchange za posledných 30 dní. Je dobré, že pri takom spustení sa v rutiny cmdlet zobrazuje iba posledných 1000 udalostí. Ak chcete odstrániť limit počtu zobrazených udalostí, musíte zadať parameter -ResultSize Neobmedzené (neodporúča sa to bez zadania ďalších parametrov filtrovania z dôvodu možného vysokého zaťaženia servera).

Informácie o udalostiach na serveri Exchange môžete zobraziť vo forme stránky pomocou príkazu:

Get-MessageTrackingLog | Out-Host-stránkovanie

Na prezentáciu údajov v tabuľkovej forme a zarovnanie šírky stĺpcov použite cmdlet Format-Table:

Get-MessageTrackingLog | Tabuľka formátu -AutoSize

Ak vaša organizácia Exchange používa niekoľko serverov Hub Transport, na prehľadávanie protokolov servera zadajte názov servera ako argument parametra -Server alebo spustite príkaz vyhľadávania pre každý server Hub Transport:

Get-TransportServer | Get-MessageTrackingLog

Zobrazujeme všetky písmená za posledných 12 hodín ((Get-Date) .AddHours (-12)), v ktorej je adresát z poštového systému @ gmail.com uvedený ako príjemca:

Get-MessageTrackingLog -Start (Get-Date) .AddHours (-12) -ResultSize neobmedzený | kde [string] $ _. recipient-like "*@gmail.com"

Ak chcete zobraziť všetky listy, ktoré konkrétny používateľ poslal na zadané obdobie cez určený server (v prehľade sa zobrazia iba určité polia):

Sledovanie správ SMS - VýsledokVeľkosť neobmedzená - Odosielať „[email protected]“ - server msk-hub-01 - Štart „03/30/2019 08:00:00“ - „04/04/2019 21:00:00“ | časová pečiatka pre výber objektu, odosielateľ, príjemcovia, MessageSubject, EventId | ft

Vyhľadajte všetky listy, ktoré poslal jeden používateľ druhému, a nahrajte výsledok do súboru CSV:

Get-MessageTrackingLog -Sender "[email protected]" -Recipients "[email protected]" -ResultSize unlimited -server msk-hub-01 | Časová pečiatka pre výber objektu, Odosielateľ, $ _. Príjemcovia, MessageSubject | Export-Csv-Cesta "C: \ ps \ exchange \ msg_tracking_out.csv" -Zakódovanie predvolené -Delimiter ";"

Vyhľadajte predmet listu. Ak chcete zobraziť všetky písmená s predmetom, ktorý obsahuje frázu „test“, spustite nasledujúci príkaz (výsledky vyhľadávania zobrazíte v samostatnom tabuľkovom grafickom okne s vhodnými možnosťami triedenia, filtrovania a vyhľadávania údajov, môžete použiť cmdlet outviewet view):

Get-MessageTrackingLog -MessageSubject "test" -ResultSize unlimited -server msk-hub-01 | Časová pečiatka pre výber objektu, Odosielateľ, $ _. Príjemcovia, MessageSubject | out-GridView

Môžete vyhľadávať podľa špecifického identifikátora správy (napríklad ste ho dostali od hlavičiek služieb správy v programe Outlook):

Get-MessageTrackingLog -messageID "[email protected]" -VýsledokVýpočet neobmedzený -server msk-hub-01 | Časová pečiatka pre výber objektu, Odosielateľ, $ _. Príjemcovia, Správa správ

Ak chcete vypočítať počet prichádzajúcich správ za posledných 7 dní pre konkrétnu poštovú schránku, postupujte takto:

(Get-MessageTrackingLog -EventID "RECEIVE" -Recipients "[email protected]" -ResultSize unlimited) .Count

Môžete zoskupovať štatistiku písmen. Napríklad by ste chceli vidieť, koľko listov od rôznych odosielateľov z domény mail.ru vaša organizácia dostala do 1 dňa (zobrazíme celkový počet listov poslaných každým externým odosielateľom):

Get-MessageTrackingLog -EventId "Receive" -Start (Get-Date) .AddDays (-1) -ResultSize Unlimited | Where-Object $ _. Podobá sa odosielateľovi "*@mail.ru" | Odosielateľ skupinových objektov | Počet objektov zoradenia - vzostupne | Tabuľka formátov *

Ak chcete vyhľadávať e-maily uložené v poštových schránkach používateľov servera Exchange, použite rutinu Search-Mailbox.

Office 365 má možnosť prehľadávať protokoly sledovania z webového rozhrania servera Exchange Admin Center (EAC). Prejdite do sekcie Tok pošty -> Sledovanie správ. Vyplňte požadované polia pre vyhľadávanie. V podstate ide o webové rozhranie pre cmdlet Get-MessageTrackingLog, ktoré užívateľovi umožňuje vytvoriť príkaz PowerShell v jednoduchej forme na prehľadávanie správ pomocou protokolov..

Vyššie uvedené metódy vám pomôžu získať štatistiky o správach odoslaných a prijatých v systéme Exchange a diagnostikovať problémy s odosielaním správ.