<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Über diese Dokumentation on PowerShell Modul DNSServer.DebugLogParser</title><link>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/</link><description>Recent content in Über diese Dokumentation on PowerShell Modul DNSServer.DebugLogParser</description><generator>Hugo</generator><language>de</language><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="https://DNSServerDebugLogParser.andibellstedt.com/de/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>Übersicht</title><link>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/01-overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/01-overview/</guid><description>&lt;p&gt;Windows DNS Server kann ein Debug-Log schreiben. Es ist eine Textdatei, die für Menschen lesbar ist und an einem stark genutzten Domänencontroller täglich um mehrere hundert Megabyte wächst. Diese Kombination macht sie nahezu nutzlos, sobald du eine Frage beantworten willst wie &lt;em&gt;„Welcher Client hat diese Domain letzte Nacht 40.000 Mal abgefragt?“&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DNSServer.DebugLogParser&lt;/strong&gt; verwandelt diese Textdatei in eine CSV-Tabelle. Eine Logzeile wird zu einer Zeile mit benannten Spalten, sodass du sie in Excel öffnen, in Power BI laden, massenhaft in SQL Server einfügen oder an dein SIEM schicken kannst.&lt;/p&gt;</description></item><item><title>Ausgabeformate</title><link>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/02-output-formats/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/02-output-formats/</guid><description>&lt;p&gt;&lt;code&gt;Convert-DNSDebugLogFile&lt;/code&gt; erzeugt bis zu drei Dateien pro Eingabeprotokoll:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Datei&lt;/th&gt;
					&lt;th&gt;Enthält&lt;/th&gt;
					&lt;th&gt;Erstellt bei&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;lt;name&amp;gt;.csv&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Eine Zeile pro geparstem Protokolleintrag&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;-OutputType CSV&lt;/code&gt; oder &lt;code&gt;Both&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;lt;name&amp;gt;_Statistic.csv&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Tägliche Anzahl der Einträge pro Kontext&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;-OutputType Statistic&lt;/code&gt; oder &lt;code&gt;Both&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;lt;name&amp;gt;_PacketStatistic.csv&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Tägliche Abfrageanzahl pro Client, Protokoll, Richtung und Eintragstyp&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;-OutputType Statistic&lt;/code&gt; oder &lt;code&gt;Both&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;Both&lt;/code&gt; ist die Standardeinstellung. Die Ausgabe landet neben der Eingabedatei, sofern du nicht &lt;code&gt;-OutputFile&lt;/code&gt; setzt.&lt;/p&gt;
&lt;p&gt;Die auf dieser Seite verlinkten Beispieldateien sind echte Konversionsergebnisse, keine Mock-ups. Lade eine herunter und öffne sie in Excel, bevor du dich für ein Pipeline-Design entscheidest.&lt;/p&gt;</description></item><item><title>Parameter und Optionen</title><link>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/03-parameters-and-options/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/03-parameters-and-options/</guid><description>&lt;p&gt;Diese Seite erklärt die Optionen in einfacher Sprache und in der Reihenfolge, in der du sie typischerweise brauchst. Es ist ein Leitfaden, keine Spezifikation — die autoritative, immer aktuelle Parameterliste findest du in der &lt;a href="../commands/convert-dnsdebuglogfile/"&gt;Befehlsreferenz&lt;/a&gt; und in:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Get-Help Convert-DNSDebugLogFile -Full
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="die-kurzfassung"&gt;Die Kurzfassung&lt;/h2&gt;
&lt;pre&gt;&lt;code class="language-powershell"&gt;Convert-DNSDebugLogFile -InputFile &amp;quot;C:\Logs\dns.log&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Diese eine Zeile liefert dir schon ein sinnvolles Verhalten: sowohl Daten- als auch Statistikdateien, Semikolon als Trennzeichen, das Datumsformat deiner Maschine, Header-Validierung an, Quell-Log bleibt unverändert. Alles Weitere ist Feintuning.&lt;/p&gt;</description></item><item><title>Performance</title><link>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/04-performance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/04-performance/</guid><description>&lt;p&gt;DNS-Debug-Logs auf einem stark genutzten Domänencontroller sind groß. &lt;code&gt;Convert-DNSDebugLogFile&lt;/code&gt; ist genau für diesen Fall gemacht: Es wurde mit Logs von 100 MB und mehr getestet und verarbeitet sie in Minuten auf gewöhnlicher Server-Hardware.&lt;/p&gt;
&lt;h2 id="warum-es-so-schnell-ist"&gt;Warum es so schnell ist&lt;/h2&gt;
&lt;p&gt;Du musst das nicht wissen, um das Modul zu nutzen, aber es erklärt das Verhalten, das du beobachten wirst.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Technik&lt;/th&gt;
					&lt;th&gt;Effekt, den du bemerkst&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;StreamReader&lt;/code&gt; / &lt;code&gt;StreamWriter&lt;/code&gt; mit 64 KB Puffern&lt;/td&gt;
					&lt;td&gt;Die Datei wird in Stücken gelesen und geschrieben, statt mit einem großen &lt;code&gt;Get-Content&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Streaming, ein Durchlauf&lt;/td&gt;
					&lt;td&gt;Der Speicherverbrauch bleibt ungefähr konstant, egal wie groß das Log ist&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;String-Operationen (&lt;code&gt;.Substring()&lt;/code&gt;, &lt;code&gt;.IndexOf()&lt;/code&gt;) statt regulärer Ausdrücke&lt;/td&gt;
					&lt;td&gt;Deutlich weniger CPU pro Zeile, und es sind Millionen von Zeilen&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;CSV wird manuell geschrieben statt mit &lt;code&gt;Export-Csv&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Kein Overhead durch Objekt-Pipeline pro Datensatz&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Hashtable-basierte Aggregation für Statistiken&lt;/td&gt;
					&lt;td&gt;Zusammenfassungen kosten während des gleichen Durchlaufs fast nichts extra&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Die wichtige Konsequenz: &lt;strong&gt;Das gesamte Log wird nie komplett im Speicher gehalten.&lt;/strong&gt; Ein 500 MB großes Log braucht nicht 500 MB RAM. Das ist der Unterschied zwischen dem Modul und dem „Datei lesen, splitten, Objekte bauen“-Ansatz, den die meisten selbstgebastelten Skripte verwenden – dieser Ansatz funktioniert bei einer 5 MB Probe gut, aber bei einem echten DC bricht er zusammen.&lt;/p&gt;</description></item><item><title>Integration mit Analysetools</title><link>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/05-integration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/05-integration/</guid><description>&lt;p&gt;Der Sinn der Konvertierung eines DNS-Debug-Logs liegt im, was danach passiert. CSV wurde gewählt, weil es von allem gelesen wird – aber „alles liest CSV“ verbirgt zwei Einstellungen, die entscheiden, ob der Import schmerzfrei oder ein Nachmittag voller Fummelei wird.&lt;/p&gt;
&lt;h2 id="zwei-einstellungen-die-alles-entscheiden"&gt;Zwei Einstellungen, die alles entscheiden&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Trennzeichen.&lt;/strong&gt; Standard ist &lt;code&gt;;&lt;/code&gt;. Behalte es für Excel in Regionen, die das Komma als Dezimaltrennzeichen verwenden. Wechsle zu &lt;code&gt;,&lt;/code&gt; für die meisten Datenbanken und Data-Science-Tools. Was auch immer du wählst, sag der importierenden Seite dasselbe.&lt;/p&gt;</description></item><item><title>Operative Best Practices</title><link>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/06-operational-best-practices/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/06-operational-best-practices/</guid><description>&lt;p&gt;Ein Protokoll manuell zu konvertieren ist einfach. Es jede Nacht auf jedem Domänencontroller über Jahre hinweg laufen zu lassen, ohne dass jemand hinschaut, erfordert etwas Planung. Das sind die Punkte, die in der Praxis wichtig sind.&lt;/p&gt;
&lt;h2 id="1-konvertiere-rotierte-protokolle-nicht-das-aktive"&gt;1. Konvertiere rotierte Protokolle, nicht das aktive&lt;/h2&gt;
&lt;p&gt;Aktiviere die Protokollrotation auf dem DNS-Server und konvertiere nur geschlossene Dateien. Das Modul &lt;em&gt;kann&lt;/em&gt; das Protokoll lesen, in das der DNS-Server gerade schreibt, aber diese Datei ändert sich während der Konvertierung: die neuesten Einträge können fehlen und der letzte Eintrag kann abgeschnitten sein. Zwei Durchläufe liefern zwei unterschiedliche Ergebnisse.&lt;/p&gt;</description></item><item><title>Fehlerbehebung</title><link>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/08-troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://DNSServerDebugLogParser.andibellstedt.com/de/docs/08-troubleshooting/</guid><description>&lt;h2 id="die-datei-ist-keine-gültige-dns-debug-logdatei"&gt;„Die Datei ist keine gültige DNS-Debug-Logdatei“&lt;/h2&gt;
&lt;p&gt;Die Header-Prüfung hat die Eingabe abgelehnt. Meistens ist der Pfad einfach falsch — eine &lt;code&gt;.log&lt;/code&gt;-Datei im gleichen Ordner, die kein DNS-Debug-Log ist, oder eine Datei, die nur einen rotierten Header enthält.&lt;/p&gt;
&lt;p&gt;Arbeite das Folgende durch:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Öffne die Datei. Ein DNS-Debug-Log beginnt mit einer Header-Zeile wie &lt;code&gt;Message logging started at …&lt;/code&gt; und enthält danach mit Zeitstempel versehene Abfrageeinträge.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bestätige, dass das DNS-Debug-Logging tatsächlich aktiviert ist und in den erwarteten Pfad schreibt:&lt;/p&gt;</description></item></channel></rss>