Logfiler til sporing af meddelelser i Exchange Server

  • Mulige anvendelser af logfiler til sporing af meddelelser
  • Placering og struktur af logfiler til sporing af meddelelser
  • Konfigurer sporing af meddelelser
  • Hvad findes i logfilerne til sporing af meddelelser
  • Anvendelse af Get-MessageTrackingLog cmdlet

Messagesporingsprotokoller er en værdifuld informationskilde for enhver Exchange-administrator. Mens Office 365 har sin meddelelsessporing, som fungerer udmærket, gemmer lokal Exchange langt flere data i logfilerne, som kan tjene mange formål.

Message Tracking logs Exchange

Mulige anvendelser for logs til sporing af meddelelser

Gode gamle logs til sporing af meddelelser kan tjene mange forskellige formål:

  • Løsning af leveringsproblemer – Hvis du ved, hvad du leder efter, kan logfiler til sporing af meddelelser fortælle dig, hvorfor en meddelelse ikke blev leveret, om leveringen blev forsinket og meget mere (se, hvad der står i logfilerne til sporing af meddelelser)
  • Statistik – Logfiler til sporing af meddelelser gemmer spor af hver eneste meddelelse, der er gået gennem dine servere. Der er en ret nem måde at få nogle data til analyse – hvor mange meddelelser der blev behandlet, eller hvem der sendte flest meddelelser i virksomheden.
  • Forensics – Lad os sige, at nogen sletter en e-mail, og du ikke havde en e-mailbackup. Hvad værre er, e-mailen indeholdt fortrolige oplysninger og blev sendt til din konkurrerende virksomhed. Det er her, hvor logfiler til sporing af meddelelser kan redde dig ved at give dig nogle værdifulde oplysninger om e-mails.
  • Litigation – Svarende til ovenstående situation. Logfiler til sporing af meddelelser kan og bliver ofte brugt, når der er behov for beviser i forbindelse med retssager.
  • Test af transportregler – Særligt nyttigt, når du har konfigureret flere transportregler i din organisation. Hver gang en transportregel anvendes, efterlader den et spor, og du kan bruge Get-MessageTrackingLog til at se, hvornår en transportregel eller en DLP-politik blev udløst.

Meddelelsessporingslogs placering og struktur

Hvad er meddelelsessporingslogs? Logfiler til sporing af meddelelser er simple CSV-filer (med en LOG-udvidelse), der er gemt på din Exchange-server. Standardstien til deres fysiske placering er %ExchangeInstallPath%TransportRoles\Logs\MessageTracking. Logfilerne har en fast navngivningskonvention. Husk, at selv om du kan ændre filnavne i logfilerne, forhindrer det dig i at søge i dem ved hjælp af Get-MessageTrackingLog cmdlet. Desuden vil filer med ændrede navne ikke blive medregnet i mappestørrelsesgrænsen. Dette kan føre til, at du overskrider de grænser, du har konfigureret.

For at administrere plads og mængden af data, der er gemt på servere, anvender Exchange cirkulær logføring. Med andre ord overskrives de ældste filer, når en mappe overskrider sin maksimale størrelse, eller når en logfil når sin maksimale alder. Hvis du holder dig til standardindstillingerne, er den maksimale alder for en logfil 30 dage, og den maksimale størrelse for en enkelt fil er 10 MB. Som standard kan alle logfiler til sporing af meddelelser i standardmappen ikke overstige 1 GB. Du kan ændre alle disse grænser ved hjælp af PowerShell (se Konfigurer sporing af meddelelser for at få flere oplysninger)

Hver dag oprettes der en ny logfil til sporing af meddelelser. Navngivningskonventionen er:

MSGTRKServiceyyyyyymmdd-nnnn.log hvor:

  • Tjenesten afhænger af, hvilken tjeneste der har oprettet en log. MSGTRK peger på logfiler, der er oprettet af transporttjenesten; yderligere bogstaver angiver, hvilke andre tjenester der har genereret logfilen. MA står for meddelelsesgodkendelse, MD for tjenesten Mailbox Transport Delivery, MS for tjenesten Mailbox Transport Submission.
  • yyyymmdd angiver den dato, hvor meddelelsesloggen blev oprettet.
  • nnnn er nummeret for logfilen. Når en logfil når sin maksimale størrelsesgrænse, oprettes der en ny kopi. Værdien er inkrementel, og hver dag starter den fra (ganske logisk) 1.

Jeg har nævnt nogle standardværdier. Som du måske kan ane, kan disse værdier nemt ændres.

Konfigurer sporing af meddelelser

Hvor du begynder at ændre standardværdierne for logfiler for sporing af meddelelser, skal du sikre dig, at du ved, hvad du gør. Logfiler til sporing af meddelelser kan blive ret besværlige, hvad angår størrelse. Hvad mere er, hvis du beslutter dig for at indsamle data i en ubestemt periode, vil hver stor søgning i logfilerne for sporing af meddelelser tage en betydelig mængde tid. Især hvis du ikke begrænser dine søgekriterier. Hvis du planlægger at indsamle oplysninger om din poststrøm i en ubestemt periode, bør du overveje at eksportere indholdet af logfilerne for sporing af meddelelser til filer. Så kan du gemme data om alle e-mails, bortset fra dem, der f.eks. peger på Sundhedsbrevkasser.

Du kan konfigurere logfiler til sporing af meddelelser ved hjælp af cmdletten Set-TransportService. Ved hjælp af denne cmdlet kan du:

  • aktivere eller deaktivere sporing af meddelelser,
  • ændre placeringen til lagring af logfiler for sporing af meddelelser,
  • ændre størrelses- og aldersgrænserne for logfiler for sporing af meddelelser
  • og aktivere eller deaktivere logning af emner. En forklaring: Som standard gemmer logfiler til sporing af meddelelser ikke noget indhold af e-mails, bortset fra emnelinjen. Selv om det forbedrer sporingsoplevelsen betydeligt at have emnelinjen i logfilerne, kræver nogle organisationer, at denne funktion deaktiveres af sikkerheds- eller fortrolighedshensyn.

Her er et eksempel, som ændrer alle parametre på én gang:

Set-TransportService Mailbox_Server -MessageTrackingLogEnabled $true -MessageTrackingLogPath "M:\logs" -MessageTrackingLogMaxFileSize 30MB -MessageTrackingLogMaxDirectorySize 2.5GB -MessageTrackingLogMaxAge 365.00:00:00

Cmdletten ovenfor slår meddelelsessporing til for Mailbox_Server og indstiller logfillagringen til M:\logs. Størrelsesgrænsen for en enkelt logfil ændres til 30 MB. Det er mest en kosmetisk ændring, som styrer antallet af logfiler – jo større grænsen er, jo mindre csv oprettes hver dag. Den maksimale mappestørrelse (før de ældste filer overskrives) er sat til 2,5 GB, og logfilerne opbevares i 365 dage. Hvis du indstiller -MessageTrackingLogMaxAge til 00:00:00:00, kan du gemme logfilerne til sporing af meddelelser i en ubegrænset periode. Eller i det mindste før mappens størrelse er nået. Men hvem har brug for at spare plads i Exchange, ikke?

Hvad der står i logfilerne til sporing af meddelelser

Der er et par ting, du skal vide om, hvordan logfilerne til sporing af meddelelser gemmer deres poster.

  1. Hver meddelelse genererer normalt mere end en enkelt post i logfilen til sporing af meddelelser.
  2. Hovederne i logfilerne er ikke de samme som deres tilsvarende PowerShell-attributter. F.eks. er Event-id i logfilerne EventId i PowerShell. Recipient-address i logfilerne er lig med recipients i PowerShell. Når du er i tvivl om, hvordan du skal søge ved hjælp af en bestemt attribut, skal du bruge Get-MessageTrackingLog –ResultSize 1 | FL * or Get-MessageTrackingLog | Get-Member. Disse cmdlets giver dig en komplet liste over attributter.
  3. Visse felter er ofte tomme i logfilerne til sporing af meddelelser. Nogle indeholder måske ikke oplysninger, som du måske finder vigtige eller relevante.

De vigtigste felter i logfiler for sporing af meddelelser

  • Sender, Recipient, MessageSubject – ret selvforklarende, viser, hvem der har sendt en meddelelse til hvem, og hvad emnet var
  • TotalBytes – viser størrelsen af en meddelelse
  • Timestamp – giver oplysninger om, hvornår hændelsen fandt sted
  • EventID – et af de vigtigste felter i logfiler for sporing af meddelelser. Det er den primære kilde til oplysninger om, hvad der er sket med meddelelsen. De mest almindelige værdier er Receive, Send, Submit og Fail (Denne Microsoft-dokumentation beskriver alle meddelelseshændelsestyper.)
  • MessageInfo og RecipientStatus giver detaljerede oplysninger om, hvad der er sket med meddelelsen.
  • MessageLatency viser, hvor lang tid serveren har haft brug for at behandle e-mailen.

Den vigtigste del er, hvordan du bruger PowerShell til at få de rigtige data fra logfilerne.

Ved hjælp af cmdletten Get-MessageTrackingLog

Med Get-MessageTrackingLog kan du søge i alle logfilerne til sporing af meddelelser. Hvis du bruger cmdletten uden yderligere attributter, returnerer den op til 1000 poster, hvoraf de fleste sandsynligvis vil være forbundet med aktiviteten Sundhedsbrevkasser. Hvis du ønsker at medtage mere end 1000 poster med en enkelt Get-MessageTrackingLog-cmdlet, skal du tilføje attributten -ResultSize unlimited. Alligevel er jeg ret sikker på, at du ikke har planer om at bruge cmdletten til at overvåge Health Mailboxes-aktiviteten. Den rigtige filtrering er nøglen til en succes. Nedenfor præsenterer jeg et par teknikker, som du kan bruge til at filtrere resultaterne.

Sådan får du generelle oplysninger om poststrømmen i Exchange Server

Hvis du sigter mod at få en meget generel idé om den seneste poststrøm i din organisation, skal du bruge den syntaks, der er beskrevet nedenfor:

Get-MessageTrackingLog -Start (Get-Date).AddDays(-14) -ResultSize Unlimited | Where -Property Recipients -NotLike "*HealthMailbox*" | ConvertTo-Html > "C:\mtl.html"

Cmdletten ovenfor gennemgår de sidste 14 dages logfiler for sporing af meddelelser. Du undrer dig måske over, hvorfor du skal bruge Where-Object -Property Recipients -NotLike “HealthMailbox*”-delen. Dette filter sletter alle poster, der er dedikeret til Health Mailboxes. Hvis du er nysgerrig, kan du sammenligne resultaterne med og uden Where-Object-filteret. Endelig eksporterer den sidste cmdlet i pipelinen resultaterne til mtl.html-filen. Du kan også eksportere resultaterne til en CSV-fil ved hjælp af cmdletten ConvertTo-Csv.

Problemet er, at når du konverterer resultaterne til en HTML- eller en CSV-fil, vises felter med oplysninger om modtagere ikke korrekt. I stedet for de rigtige værdier vil felterne indeholde System.String-udtryk. For at løse dette skal du muligvis pipeline resultaterne til en ekstra Select-Object cmdlet. Mens du er i gang, hvorfor så ikke begrænse output, så det kun indeholder de vigtigste felter?

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"

Hvis du vil registrere alle mislykkede leveringer og registrere dem i en fil, skal du bruge nedenstående cmdlet.

Get-MessageTrackingLog -Start (Get-Date).AddHours(-24) -ResultSize Unlimited –EventId Fail | Where -Property Recipients -NotLike "HealthMailbox*" >> "C:\failed deliveries.csv"

Det bedste er, at >>-tegnet tilføjer nye værdier til failed.deliveries.csv-filen, så du kan køre cmdletten med jævne mellemrum for at logge alle fejlslagne hændelser.

Sådan indsamler du statistik ved hjælp af Get-MessageTracking Log

Hvis du vil udføre nogle mere komplicerede operationer på dine logoperationer til sporing af meddelelser, skal du gemme dem i en variabel.

$mtl Get-MessageTrackingLog -Start (Get-Date).AddDays(-2) –eventId Send -ResultSize Unlimited | Where -Property Recipients -NotLike "*HealthMailbox*"

Cmdletten ovenfor gemmer oplysninger om alle meddelelser, der er sendt i løbet af de seneste to dage. Hvis du vil måle, hvor mange e-mails dine brugere har sendt generelt, skal du blot skrive:

$mtl | measure

count sent items in message tracking logs

For at få mere detaljerede oplysninger kan du bruge nogle yderligere cmdlets til at gruppere, sortere og vise resultaterne. Du kan f.eks. vise antallet af e-mails for bestemte brugere sorteret i faldende rækkefølge:

$mtl | group-object -property sender | Select-Object name,count | Sort-Object count -desc

Sortering af resultater i logfiler for sporing af meddelelser

Med Group-Object, Select-Object og Sort-Object-trioen sammen med cmdletten Get-MessageTrackingLog kan du nemt få alle de mailflowstatistikker, du ønsker.

Sådan sporer du specifikke meddelelser ved hjælp af Get-MessageTrackingLog

Til sidst, hvis du vil kontrollere, hvad der skete med en bestemt ikke-afleveret meddelelse, kan du hurtigt vise alle de vigtigste oplysninger ved at pumpe din søgning til en Format-List cmdlet:

… | FL –Property Sender, Recipients, MessageSubject, RecipientStatus

detailed results info - forensics in message tracking logs

I eksemplet ovenfor kan du nemt se, at meddelelsen ikke blev leveret på grund af en transportregel. Her viste det sig, at nogen på et tidspunkt har lanceret en mailflowregel, som blokerer alle meddelelser, der har en vedhæftet fil og nøgleordet Kitten i emnet.

Lad os antage, at der er lækket nogle klassificerede data ud af virksomheden. Logfiler til sporing af meddelelser kan hjælpe dig med at lokalisere brugere, der har sendt e-mails uden for din virksomhed, f.eks. til en bestemt konkurrerende virksomhed.

Get-MessageTrackingLog –ResultSize Unlimited | Where -Property Recipients -Like "*@competitive-company.com"

Søgningen giver dig mulighed for at finde de mistænkte. Selvfølgelig kan det være nødvendigt at udvide eller stramme søgekriterierne, men det afhænger af, hvor mange data du har. Hvad du gør med resultaterne, er ikke en diskussion til administratorens blog.

Videre læsning:

  • Messagesporing i Office 365 (Exchange Online)
  • Exchange 2019, 2016, 2013, 2010 mailbox backup by export to PST (PowerShell)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.