- Utilizări posibile pentru jurnalele de urmărire a mesajelor
- Localizarea și structura jurnalelor de urmărire a mesajelor
- Configurarea urmăririi mesajelor
- Ce se află în jurnalele de urmărire a mesajelor
- Utilizarea funcției Get-…MessageTrackingLog cmdlet
Registrele de urmărire a mesajelor sunt o sursă valoroasă de informații pentru orice administrator Exchange. În timp ce Office 365 are sistemul său de urmărire a mesajelor, care funcționează foarte bine, Exchange on-premise stochează mult mai multe date în jurnale, care pot servi în multe scopuri.
- Utilizări posibile pentru jurnalele de urmărire a mesajelor
- Localizarea și structura jurnalelor de urmărire a mesajelor
- Configurarea urmăririi mesajelor
- Ce se află în jurnalele de urmărire a mesajelor
- Câmpurile cele mai importante din jurnalele de urmărire a mesajelor
- Utilizarea cmdletului Get-MessageTrackingLog
- Cum să obțineți informații generale despre fluxul de corespondență în Exchange Server
- Cum să adunați statistici folosind Get-MessageTracking Log
- Cum să urmăriți mesaje specifice utilizând Get-MessageTrackingLog
Utilizări posibile pentru jurnalele de urmărire a mesajelor
Bunele și bătrânele jurnale de urmărire a mesajelor pot servi în multe scopuri diferite:
- Soluționarea problemelor de livrare – Dacă știți ce căutați, jurnalele de urmărire a mesajelor vă pot spune de ce un mesaj nu a fost livrat, dacă livrarea sa a fost întârziată și multe altele (vedeți ce se află în jurnalele de urmărire a mesajelor)
- Statistici – Jurnalele de urmărire a mesajelor păstrează urme ale fiecărui mesaj care a trecut prin serverele dumneavoastră. Există o modalitate destul de ușoară de a obține unele date pentru analiză – câte mesaje au fost procesate sau cine a trimis cele mai multe mesaje în cadrul companiei.
- Forensics – Să spunem că cineva șterge un e-mail și nu ați avut o copie de rezervă a e-mailului. Ceea ce este mai rău, e-mailul conținea informații confidențiale și a fost trimis către compania dumneavoastră concurentă. Aici este cazul în care jurnalele de urmărire a mesajelor vă pot salva prin furnizarea unor informații valoroase despre e-mailuri.
- Litigii – Similar cu situația de mai sus. Jurnalele de urmărire a mesajelor pot fi și sunt adesea folosite atunci când sunt necesare dovezi în scopuri de litigiu.
- Testarea regulilor de transport – Util mai ales atunci când ați configurat mai multe reguli de transport în organizația dumneavoastră. Ori de câte ori se aplică o regulă de transport, aceasta lasă o urmă și puteți utiliza Get-MessageTrackingLog pentru a vedea când a fost declanșată o regulă de transport sau o politică DLP.
Localizarea și structura jurnalelor de urmărire a mesajelor
Ce sunt jurnalele de urmărire a mesajelor? Jurnalele de urmărire a mesajelor sunt fișiere CSV simple (cu extensia LOG) stocate pe serverul dumneavoastră Exchange. Calea implicită către locația lor fizică este %ExchangeInstallPath%TransportRoles\Logs\MessageTracking. Jurnalele au o convenție de denumire stabilită. Rețineți că, deși puteți schimba numele fișierelor din jurnale, acest lucru vă va împiedica să le căutați cu ajutorul cmdletului Get-MessageTrackingLog. Mai mult, fișierele cu nume schimbate nu vor fi luate în calcul pentru limita de dimensiune a dosarului. Acest lucru poate duce la depășirea limitelor pe care le-ați configurat.
Pentru a gestiona spațiul și cantitatea de date stocate pe servere, Exchange utilizează jurnalizarea circulară. Cu alte cuvinte, cele mai vechi fișiere sunt suprascrise ori de câte ori un dosar își depășește dimensiunea maximă sau un fișier jurnal atinge vârsta maximă. Dacă respectați setările implicite, vârsta maximă pentru un fișier jurnal este de 30 de zile, iar dimensiunea maximă pentru un singur fișier este de 10 MB. În mod implicit, toate jurnalele de urmărire a mesajelor din directorul implicit nu pot depăși 1 GB. Puteți modifica toate aceste limite folosind PowerShell (Consultați configurarea urmăririi mesajelor pentru detalii)
În fiecare zi, se creează un nou fișier jurnal de urmărire a mesajelor. Convenția de denumire este:
MSGTRKServiceyyyymmdd-nnnn.log unde:
- Serviciul depinde de serviciul care a creat un jurnal. MSGTRK indică spre jurnalele create de serviciul Transport; literele suplimentare specifică ce alte servicii au generat jurnalul. MA semnifică Message Approval, MD pentru serviciul Mailbox Transport Delivery, MS pentru serviciul Mailbox Transport Submission.
- yyyymmdd specifică data la care a fost creat jurnalul de mesaje.
- nnnn este numărul pentru fișierul jurnal. Ori de câte ori un fișier jurnal atinge limita maximă de dimensiune, va fi creată o nouă copie. Valoarea este incrementală și, în fiecare zi, începe de la (destul de logic) 1.
Am menționat câteva valori implicite. După cum probabil bănuiți, aceste valori pot fi schimbate cu ușurință.
Configurarea urmăririi mesajelor
Înainte de a începe să modificați valorile implicite ale jurnalelor de urmărire a mesajelor, asigurați-vă că știți ce faceți. Jurnalele de urmărire a mesajelor pot deveni destul de greoaie, din punct de vedere al dimensiunii. Mai mult, dacă decideți să colectați date pentru o perioadă nedeterminată, fiecare căutare pe scară largă în jurnalele de urmărire a mesajelor va dura o perioadă de timp considerabilă. Mai ales dacă nu vă limitați criteriile de căutare. Dacă intenționați să colectați informații despre fluxul dvs. de corespondență pentru o perioadă nedeterminată, luați în considerare posibilitatea de a exporta conținutul jurnalelor de urmărire a mesajelor în fișiere. Apoi, puteți stoca date despre toate mesajele de poștă electronică, cu excepția celor care indică, de exemplu, căsuțe poștale de sănătate.
Puteți configura jurnalele de urmărire a mesajelor utilizând cmdlet-ul Set-TransportService. Cu ajutorul acestui cmdlet, puteți:
- Activați sau dezactiva urmărirea mesajelor,
- Modificați locația pentru stocarea jurnalelor de urmărire a mesajelor,
- Modificați limitele de dimensiune și vârstă pentru jurnalele de urmărire a mesajelor
- Și activați sau dezactivați înregistrarea subiectului. O explicație: în mod implicit, jurnalele de urmărire a mesajelor nu stochează niciun conținut al mesajelor de e-mail, cu excepția subiectului. Deși faptul de a avea linia subiectului în jurnale îmbunătățește foarte mult experiența de urmărire, unele organizații solicită dezactivarea acestei caracteristici din motive de securitate sau de confidențialitate.
Iată un exemplu care modifică toți parametrii deodată:
Set-TransportService Mailbox_Server -MessageTrackingLogEnabled $true -MessageTrackingLogPath "M:\logs" -MessageTrackingLogMaxFileSize 30MB -MessageTrackingLogMaxDirectorySize 2.5GB -MessageTrackingLogMaxAge 365.00:00:00
Cildlet-ul de mai sus activează urmărirea mesajelor pentru Mailbox_Server și setează stocarea jurnalelor la M:\logs. Limita de dimensiune pentru un singur fișier jurnal este modificată la 30 MB. Este în mare parte o modificare cosmetică, care controlează numărul de fișiere jurnal – cu cât limita este mai mare, cu atât mai puține csv-uri sunt create în fiecare zi. Dimensiunea maximă a directorului (înainte ca cele mai vechi fișiere să fie suprascrise) este setată la 2,5 GB, iar fișierele jurnal sunt păstrate timp de 365 de zile. Dacă setați -MessageTrackingLogMaxAge la 00:00:00, veți putea păstra jurnalele de urmărire a mesajelor pentru o perioadă nedeterminată. Sau cel puțin înainte ca dimensiunea directorului să fie atinsă. Dar cine are nevoie să economisească spațiu în Exchange, nu-i așa?
Ce se află în jurnalele de urmărire a mesajelor
Există câteva lucruri pe care trebuie să le știți despre modul în care jurnalele de urmărire a mesajelor își stochează intrările.
- Care mesaj generează, de obicei, mai mult de o singură intrare în jurnalul de urmărire a mesajelor.
- Câteva antecedente din jurnale nu sunt identice cu atributele PowerShell corespunzătoare. De exemplu, Event-id din fișierele jurnal este EventId în PowerShell. Recipient-address din jurnale este egal cu Recipients în PowerShell. Atunci când aveți îndoieli cu privire la modul de căutare folosind un anumit atribut, utilizați
Get-MessageTrackingLog –ResultSize 1 | FL * or Get-MessageTrackingLog | Get-Member
. Aceste cmdlet-uri vă vor oferi o listă completă de atribute. - Câteva câmpuri sunt adesea goale în jurnalele de urmărire a mesajelor. Este posibil ca unele să nu includă informații pe care le-ați putea considera importante sau relevante.
Câmpurile cele mai importante din jurnalele de urmărire a mesajelor
- Sender, Recipient, MessageSubject – destul de autoexplicativ, arată cine a trimis un mesaj cui și care a fost subiectul
- TotalBytes – arată dimensiunea unui mesaj
- Timestamp – oferă informații despre momentul în care a avut loc evenimentul
- EventID – unul dintre cele mai importante câmpuri din jurnalele de urmărire a mesajelor. Este sursa principală de informații cu privire la ceea ce s-a întâmplat cu mesajul. Cele mai frecvente valori sunt Receive, Send, Submit și Fail (Această documentație Microsoft descrie toate tipurile de evenimente de mesaje.)
- MessageInfo și RecipientStatus oferă informații detaliate despre ce s-a întâmplat cu mesajul.
- MessageLatency arată cât timp a avut nevoie serverul pentru a procesa mesajul.
Partea cea mai importantă este cum să folosiți PowerShell pentru a obține datele corecte din jurnale.
Utilizarea cmdletului Get-MessageTrackingLog
Get-MessageTrackingLog vă permite să căutați prin toate jurnalele de urmărire a mesajelor. Dacă utilizați cmdlet-ul fără atribute suplimentare, acesta va returna până la 1000 de intrări, dintre care cele mai multe vor fi probabil legate de activitatea Health Mailboxes. Dacă doriți să includeți mai mult de 1000 de intrări cu un singur cmdlet Get-MessageTrackingLog, adăugați atributul -ResultSize nelimitat. Totuși, sunt destul de sigur că nu intenționați să utilizați cmdlet-ul pentru a monitoriza activitatea Health Mailboxes. Filtrarea corectă este cheia succesului. Mai jos, vă prezint câteva tehnici pe care le puteți utiliza pentru a filtra rezultatele.
Cum să obțineți informații generale despre fluxul de corespondență în Exchange Server
Dacă urmăriți să obțineți o idee foarte generală despre fluxul recent de corespondență din organizația dumneavoastră, utilizați sintaxa descrisă mai jos:
Get-MessageTrackingLog -Start (Get-Date).AddDays(-14) -ResultSize Unlimited | Where -Property Recipients -NotLike "*HealthMailbox*" | ConvertTo-Html > "C:\mtl.html"
Cmodelul de mai sus parcurge ultimele 14 zile de jurnale de urmărire a mesajelor. S-ar putea să vă întrebați de ce să folosiți partea Where-Object -Property Recipients -NotLike „HealthMailbox*”. Acest filtru șterge toate intrările dedicate cutiilor poștale de sănătate. Dacă sunteți curios, puteți compara rezultatele cu și fără filtrul Where-Object. În cele din urmă, ultimul cmdlet din pipeline exportă rezultatele în fișierul mtl.html. De asemenea, puteți exporta rezultatele într-un fișier CSV, utilizând cmdlet-ul ConvertTo-Csv.
Problema este că, atunci când convertiți rezultatele într-un fișier HTML sau CSV, câmpurile care conțin informații despre destinatari nu vor fi afișate corect. În loc de valorile corecte, câmpurile vor conține expresii System.String. Pentru a remedia acest lucru, ar putea fi necesar să direcționați rezultatele către un cmdlet Select-Object suplimentar. Dacă tot sunteți aici, de ce să nu limitați rezultatul astfel încât să conțină doar cele mai importante câmpuri?
Get-MessageTrackingLog -Start (Get-Date).AddDays(-7) -ResultSize Unlimited | Where -Property Recipients -NotLike "*HealthMailbox*" | Select-Object sender,@{Name="Recipients";Expression={$_.recipients}},@{Name="RecipientStatus";Expression={$_.recipientstatus}},messagesubject,totalbytes,eventid,messageinfo,messagelatency | ConvertTo-Html > "C:\mtlx.html"
Dacă doriți să înregistrați toate livrările eșuate și să le înregistrați într-un fișier, utilizați cmdlet-ul de mai jos.
Get-MessageTrackingLog -Start (Get-Date).AddHours(-24) -ResultSize Unlimited –EventId Fail | Where -Property Recipients -NotLike "HealthMailbox*" >> "C:\failed deliveries.csv"
Cea mai bună parte este că semnul >> adaugă noi valori la failed.deliveries.csv, astfel încât să puteți rula cmdlet-ul periodic pentru a înregistra toate evenimentele eșuate.
Cum să adunați statistici folosind Get-MessageTracking Log
Dacă doriți să efectuați unele operații mai complicate asupra operațiunilor din jurnalul de urmărire a mesajelor, salvați-le într-o variabilă.
$mtl Get-MessageTrackingLog -Start (Get-Date).AddDays(-2) –eventId Send -ResultSize Unlimited | Where -Property Recipients -NotLike "*HealthMailbox*"
Ccmdlet-ul de mai sus stochează informații despre toate mesajele trimise în ultimele două zile. Pentru a măsura câte e-mailuri au trimis utilizatorii dvs. în general, tastați pur și simplu:
$mtl | measure
Pentru informații mai detaliate, puteți utiliza câteva cmdlet-uri suplimentare pentru a grupa, sorta și afișa rezultatele. De exemplu, puteți afișa numărul de e-mailuri pentru anumiți utilizatori, sortate în ordine descrescătoare:
$mtl | group-object -property sender | Select-Object name,count | Sort-Object count -desc
Utilizarea trio-ului Group-Object, Select-Object și Sort-Object, împreună cu cmdlet-ul Get-MessageTrackingLog vă permite să obțineți cu ușurință orice statistici privind fluxul de corespondență pe care le doriți.
Cum să urmăriți mesaje specifice utilizând Get-MessageTrackingLog
În cele din urmă, dacă doriți să verificați ce s-a întâmplat cu un anumit mesaj nedistribuit, puteți afișa rapid toate informațiile cele mai importante prin pomparea căutării către un cmdlet Format-List:
… | FL –Property Sender, Recipients, MessageSubject, RecipientStatus
În exemplul de mai sus, puteți vedea cu ușurință că mesajul nu a fost livrat din cauza unei reguli de transport. Aici, s-a dovedit că, la un moment dat, cineva a lansat o regulă de flux de corespondență care blochează toate mesajele care au un atașament și cuvântul cheie Kitten în subiect.
Să presupunem că unele date clasificate s-au scurs din companie. Jurnalele de urmărire a mesajelor vă pot ajuta la localizarea utilizatorilor care au trimis e-mailuri în afara companiei dumneavoastră, de exemplu către o anumită companie concurentă.
Get-MessageTrackingLog –ResultSize Unlimited | Where -Property Recipients -Like "*@competitive-company.com"
Cercetarea vă permite să găsiți suspecții. Desigur, s-ar putea să fie nevoie să lărgiți sau să restrângeți criteriile de căutare, dar acest lucru depinde de cantitatea de date pe care o aveți. Ceea ce faceți cu rezultatele nu este o discuție pentru blogul administratorului.
Lecturi suplimentare:
- Dezvăluirea mesajelor în Office 365 (Exchange Online)
- Exchange 2019, 2016, 2013, 2010 copie de rezervă a căsuței poștale Exchange 2019, 2016, 2013, 2010 prin export în PST (PowerShell)
.