- Üzenetkövető naplók lehetséges felhasználási területei
- Üzenetkövető naplók helye és szerkezete
- Üzenetkövető naplók beállítása
- Mi található az üzenetkövető naplókban
- A Get-MessageTrackingLog cmdlet
Az üzenetkövető naplók értékes információforrást jelentenek minden Exchange admin számára. Míg az Office 365-nek megvan az üzenetkövetése, ami remekül működik, a helyhez kötött Exchange sokkal több adatot tárol a naplókban, amelyek számos célt szolgálhatnak.
- Az üzenetkövető naplók lehetséges felhasználási területei
- Üzenetkövető naplók helye és szerkezete
- Üzenetkövetés beállítása
- Mi van az üzenetkövető naplókban
- Az üzenetkövető naplók legfontosabb mezői
- A Get-MessageTrackingLog cmdlet
- Hogyan szerezhet általános információkat a levélforgalomról az Exchange Serverben
- Hogyan gyűjtsön statisztikákat a Get-MessageTracking Log
- Hogyan követhetünk nyomon konkrét üzeneteket a Get-MessageTrackingLog használatával
Az üzenetkövető naplók lehetséges felhasználási területei
A jó öreg üzenetkövető naplók sokféle célt szolgálhatnak:
- Kézbesítési problémák megoldása – Ha tudja, mit keressen, az üzenetkövető naplókból megtudhatja, miért nem kézbesítettek egy üzenetet, ha késett a kézbesítése, és még sok minden mást (lásd, mi van az üzenetkövető naplókban)
- Statisztika – Az üzenetkövető naplók minden egyes üzenet nyomát megőrzik, amely átment a szerverein. Elég egyszerű módja van annak, hogy elemzési adatokhoz jusson – hány üzenetet dolgoztak fel, vagy ki küldte a legtöbb üzenetet a vállalaton belül.
- Forensics – Tegyük fel, hogy valaki töröl egy e-mailt, és nem volt e-mail biztonsági mentése. Ami még rosszabb, az e-mail bizalmas információkat tartalmazott, és az Ön konkurens cégének küldték. Ez az, ahol az üzenetkövető naplók megmenthetik Önt azáltal, hogy értékes információkat szolgáltatnak az e-mailekről.
- Pertárgyalás – A fenti helyzethez hasonlóan. Az üzenetkövető naplókat akkor lehet és gyakran használják is, amikor peres ügyekben bizonyítékra van szükség.
- Tesztelés a szállítási szabályokról – Különösen hasznos, ha több szállítási szabályt is konfigurált a szervezetében. Valahányszor egy szállítási szabály alkalmazásra kerül, nyomot hagy, és a Get-MessageTrackingLog segítségével megnézheti, hogy mikor váltott ki egy szállítási szabályt vagy DLP-házirendet.
Üzenetkövető naplók helye és szerkezete
Mi az üzenetkövető napló? Az üzenetkövető naplók egyszerű CSV fájlok (LOG kiterjesztéssel), amelyeket az Exchange-kiszolgálón tárolnak. A fizikai tárolási helyük alapértelmezett elérési útja a %ExchangeInstallPath%TransportRoles\Logs\MessageTracking. A naplóknak meghatározott elnevezési konvenciója van. Ne feledje, hogy bár megváltoztathatja a naplók fájlneveit, ezzel megakadályozza, hogy a Get-MessageTrackingLog cmdlet segítségével keresse őket. Ráadásul a megváltozott nevű fájlok nem számítanak bele a mappák méretkorlátozásába. Ez a beállított korlátok túllépéséhez vezethet.
A szervereken tárolt hely és adatmennyiség kezelése érdekében az Exchange körkörös naplózást alkalmaz. Más szóval a legrégebbi fájlok felülíródnak, amikor egy mappa meghaladja a maximális méretét, vagy egy naplófájl eléri a maximális életkorát. Ha ragaszkodik az alapértelmezett beállításokhoz, akkor egy naplófájl maximális kora 30 nap, egy fájl maximális mérete pedig 10 MB. Alapértelmezés szerint az alapértelmezett könyvtárban lévő összes üzenetkövető napló nem haladhatja meg az 1 GB-ot. Ezeket a korlátokat a PowerShell segítségével módosíthatja (a részletekért lásd: Üzenetkövetés konfigurálása)
Minden nap új üzenetkövető naplófájl jön létre. A névkonvenció a következő:
MSGTRKServiceyyyymmdd-nnnn.log, ahol:
- A szolgáltatás attól függ, hogy melyik szolgáltatás hozta létre a naplót. Az MSGTRK a Transport szolgáltatás által létrehozott naplókra mutat; a további betűk megadják, hogy mely más szolgáltatások hozták létre a naplót. Az MA az Üzenet jóváhagyás, az MD a Postafiók szállítási kézbesítési szolgáltatás, az MS a Postafiók szállítási elküldési szolgáltatás jelölésére szolgál.
- yyyymmdd megadja az üzenetnapló létrehozásának dátumát.
- nnnn a naplófájl száma. Amikor egy naplófájl eléri a maximális mérethatárt, egy következő másolat jön létre. Az érték inkrementális, és minden nap (teljesen logikusan) 1-ről indul.
Megemlítettem néhány alapértelmezett értéket. Mint sejtheted, ezek az értékek könnyen megváltoztathatók.
Üzenetkövetés beállítása
Mielőtt elkezdenéd megváltoztatni az üzenetkövető naplók alapértelmezett értékeit, győződj meg róla, hogy tudod, mit csinálsz. Az üzenetkövető naplók méretüket tekintve meglehetősen nehézkessé válhatnak. Ráadásul, ha úgy dönt, hogy határozatlan ideig gyűjt adatokat, minden egyes nagyszabású keresés az üzenetkövető naplókban jelentős időt vesz igénybe. Különösen, ha nem korlátozza a keresési feltételeket. Ha azt tervezi, hogy határozatlan ideig gyűjt adatokat a levélforgalomról, fontolja meg az üzenetkövető naplók tartalmának fájlokba történő exportálását. Ekkor az összes e-mailre vonatkozó adatokat tárolhatja, kivéve azokat, amelyek például az Egészségügyi postafiókokra mutatnak.
Az üzenetkövető naplókat a Set-TransportService cmdlet segítségével konfigurálhatja. Ezzel a cmdlet segítségével:
- Bekapcsolhatja vagy letilthatja az üzenetkövetést,
- megváltoztathatja az üzenetkövetési naplók tárolási helyét,
- módosíthatja az üzenetkövetési naplók méretét és korhatárát
- és engedélyezheti vagy letilthatja a tárgynaplózást. Egy magyarázat: alapértelmezés szerint az üzenetkövető naplók nem tárolják az e-mailek tartalmát, kivéve a tárgysorokat. Bár a tárgysor megjelenése a naplókban jelentősen javítja a nyomon követés élményét, egyes szervezetek biztonsági vagy adatvédelmi okokból megkövetelik e funkció letiltását.
Itt egy példa, amely egyszerre módosítja az összes paramétert:
Set-TransportService Mailbox_Server -MessageTrackingLogEnabled $true -MessageTrackingLogPath "M:\logs" -MessageTrackingLogMaxFileSize 30MB -MessageTrackingLogMaxDirectorySize 2.5GB -MessageTrackingLogMaxAge 365.00:00:00
A fenti cmdlet bekapcsolja az üzenetkövetést a Mailbox_Server számára, és beállítja a naplótárolást M:\logs értékre. Az egyetlen naplófájl méretkorlátja 30 MB-ra módosul. Ez leginkább egy kozmetikai változtatás, amely a naplófájlok számát szabályozza – minél nagyobb a limit, annál kevesebb csv jön létre naponta. A könyvtár maximális mérete (a legrégebbi fájlok felülírása előtt) 2,5 GB-ra lett beállítva, és a naplófájlok 365 napig maradnak meg. A -MessageTrackingLogMaxAge 00:00:00:00 értékre állításával az üzenetkövető naplófájlok korlátlan ideig tárolhatók. Vagy legalábbis a könyvtár méretének elérése előtt. De kinek van szüksége arra, hogy helyet takarítson meg az Exchange-ben, nem igaz?
Mi van az üzenetkövető naplókban
Van néhány dolog, amit tudnia kell arról, hogy az üzenetkövető naplók hogyan tárolják a bejegyzéseiket.
- Minden üzenet általában több bejegyzést generál az üzenetkövető naplóban.
- A naplókban szereplő címek nem azonosak a megfelelő PowerShell attribútumokkal. Például a naplófájlokban szereplő Event-id a PowerShellben EventId. A naplókban szereplő címzett-cím megegyezik a PowerShellben szereplő címzettekkel. Ha kétségei vannak afelől, hogy hogyan keressen egy adott attribútummal, használja a
Get-MessageTrackingLog –ResultSize 1 | FL * or Get-MessageTrackingLog | Get-Member
parancsot. Ezek a cmdletek megadják az attribútumok teljes listáját. - Egyes mezők gyakran üresek az üzenetkövető naplókban. Egyesek esetleg nem tartalmaznak olyan információkat, amelyeket fontosnak vagy relevánsnak találhat.
Az üzenetkövető naplók legfontosabb mezői
- Sender, Recipient, MessageSubject – eléggé magától értetődő, megmutatja, hogy ki kinek küldött üzenetet és mi volt a tárgya
- TotalBytes – megmutatja az üzenet méretét
- Timestamp – információt ad arról, hogy mikor történt az esemény
- EventID – az üzenetkövető naplók egyik legfontosabb mezője. Ez az elsődleges információforrás arról, hogy mi történt az üzenettel. A leggyakoribb értékek a Receive, Send, Submit és Fail (Ez a Microsoft dokumentáció az összes üzenet eseménytípust leírja.)
- MessageInfo és RecipientStatus részletes információt ad arról, hogy mi történt az üzenettel.
- MessageLatency megmutatja, hogy mennyi időre volt szüksége a kiszolgálónak az e-mail feldolgozásához.
A legfontosabb rész az, hogy hogyan használjuk a PowerShellt a megfelelő adatok kinyerésére a naplókból.
A Get-MessageTrackingLog cmdlet
A Get-MessageTrackingLog segítségével az összes üzenetkövető naplóban kereshetünk. Ha a cmdletet minden további attribútum nélkül használja, legfeljebb 1000 bejegyzést ad vissza, amelyek többsége valószínűleg a Postafiókok állapota tevékenységhez kapcsolódik. Ha egyetlen Get-MessageTrackingLog cmdlet segítségével 1000-nél több bejegyzést szeretne bevonni, adja hozzá a -ResultSize unlimited attribútumot. Mégis, egészen biztos vagyok benne, hogy nem a Health Mailboxes tevékenység felügyeletére tervezi használni a cmdletet. A megfelelő szűrés a siker kulcsa. Az alábbiakban bemutatok néhány technikát, amellyel szűrheti az eredményeket.
Hogyan szerezhet általános információkat a levélforgalomról az Exchange Serverben
Ha az a célja, hogy nagyon általános képet kapjon a szervezetében a legutóbbi levélforgalomról, használja az alábbiakban leírt szintaxist:
Get-MessageTrackingLog -Start (Get-Date).AddDays(-14) -ResultSize Unlimited | Where -Property Recipients -NotLike "*HealthMailbox*" | ConvertTo-Html > "C:\mtl.html"
A fenti cmdlet átnézi az üzenetkövető naplók utolsó 14 napját. Elgondolkodhat azon, hogy miért kell használni a Where-Object -Property Recipients -NotLike “HealthMailbox*” részt. Ez a szűrő törli az összes Health Mailboxra dedikált bejegyzést. Ha kíváncsi, összehasonlíthatja az eredményeket a Where-Object szűrővel és anélkül. Végül a csővezeték utolsó cmdletje exportálja az eredményeket az mtl.html fájlba. Az eredményeket CSV-fájlba is exportálhatja a ConvertTo-Csv cmdlet segítségével.
A probléma az, hogy amikor az eredményeket HTML- vagy CSV-fájlba konvertálja, a címzettekre vonatkozó információkat tartalmazó mezők nem jelennek meg helyesen. A megfelelő értékek helyett a mezők System.String kifejezéseket tartalmaznak. Ennek kijavításához szükség lehet arra, hogy az eredményeket egy további Select-Object cmdletbe vezesse át. Ha már itt tartunk, miért nem korlátozza a kimenetet úgy, hogy csak a legfontosabb mezőket tartalmazza?
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"
Ha az összes sikertelen kézbesítést szeretné regisztrálni és egy fájlba rögzíteni, használja az alábbi cmdletet.
Get-MessageTrackingLog -Start (Get-Date).AddHours(-24) -ResultSize Unlimited –EventId Fail | Where -Property Recipients -NotLike "HealthMailbox*" >> "C:\failed deliveries.csv"
A legjobb az egészben, hogy a >> jel új értékeket ad a failed.deliveries.csv fájlhoz, így a cmdletet rendszeresen futtathatja az összes sikertelen esemény naplózásához.
Hogyan gyűjtsön statisztikákat a Get-MessageTracking Log
Ha bonyolultabb műveleteket szeretne végezni az üzenetkövető napló műveletein, mentse azokat egy változóba.
$mtl Get-MessageTrackingLog -Start (Get-Date).AddDays(-2) –eventId Send -ResultSize Unlimited | Where -Property Recipients -NotLike "*HealthMailbox*"
A fenti cmdlet az elmúlt két napban küldött összes üzenetről tárol információkat. Ha azt szeretné mérni, hogy a felhasználók általában hány e-mailt küldtek, egyszerűen írja be:
$mtl | measure
A részletesebb információkért néhány további cmdletet használhat az eredmények csoportosítására, rendezésére és megjelenítésére. Például megjelenítheti az egyes felhasználók e-mailjeinek számát csökkenő sorrendbe rendezve:
$mtl | group-object -property sender | Select-Object name,count | Sort-Object count -desc
A Group-Object, Select-Object és Sort-Object hármas használatával, valamint a Get-MessageTrackingLog cmdlet segítségével könnyen megkaphat bármilyen kívánt levéláramlási statisztikát.
Hogyan követhetünk nyomon konkrét üzeneteket a Get-MessageTrackingLog használatával
Végül, ha ellenőrizni szeretnénk, mi történt egy adott kézbesítetlen üzenettel, gyorsan megjeleníthetjük a legfontosabb információkat, ha a keresést egy Format-List cmdletre pumpáljuk:
… | FL –Property Sender, Recipients, MessageSubject, RecipientStatus
A fenti példában könnyen látható, hogy az üzenet egy szállítási szabály miatt nem lett kézbesítve. Itt kiderült, hogy valaki valamikor elindított egy olyan levéláramlási szabályt, amely blokkol minden olyan üzenetet, amelynek a tárgyában csatolmány és a Kitten kulcsszó szerepel.
Tegyük fel, hogy a vállalatból kiszivárgott néhány titkos adat. Az üzenetkövető naplók segíthetnek azon felhasználók azonosításában, akik a vállalaton kívül küldtek e-maileket, például egy bizonyos versenytárs vállalatnak.
Get-MessageTrackingLog –ResultSize Unlimited | Where -Property Recipients -Like "*@competitive-company.com"
A keresés segítségével megtalálhatja a gyanúsítottakat. Természetesen előfordulhat, hogy bővítenie vagy szűkítenie kell a keresési feltételeket, de ez attól függ, hogy mennyi adat áll rendelkezésére. Hogy mit kezd az eredményekkel, az nem az admin blogjának a témája.
További olvasmányok:
- Üzenetkövetés az Office 365-ben (Exchange Online)
- Exchange 2019, 2016, 2013, 2010 postafiókok mentése PST-be exportálással (PowerShell)