Integracja z narzędziami analitycznymi

Jak załadować przekonwertowany plik CSV do Excela, Power BI, SQL Server, SIEM lub notatnika Pythona — wraz z ustawieniami separatora i formatu daty, które sprawiają, że działa to od pierwszego uruchomienia.

For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /pl/docs/05-integration/index.md.

Chodzi o to, co się dzieje po konwersji dziennika debugowania DNS. CSV wybrano, bo wszystko go odczytuje — ale „wszystko odczytuje CSV” ukrywa dwa ustawienia, które decydują, czy import będzie bezproblemowy, czy popołudniem spędzonym na poprawkach.

Dwa ustawienia, które decydują o wszystkim

Separator. Domyślnie ;. Zachowaj go dla Excela w lokalizacjach, które używają przecinka jako separatora dziesiętnego. Przełącz na , dla większości baz danych i narzędzi do analizy danych. Cokolwiek wybierzesz, poinformuj o tym stronę importującą.

Format daty. -OutputCulture kontroluje sposób zapisu znaczników czasu. Dla wszystkiego czytanego przez maszynę użyj sv-SE (lub kultury inwariantnej), aby DateTime miał postać 2026-01-20 23:00:16:

Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'

Każdy z poniższych odbiorców rozumie ten format bez podpowiedzi. Format specyficzny dla lokalizacji, np. 20.01.2026, zostanie zaimportowany jako tekst lub, co gorsza, błędnie odczytany jako miesiąc/dzień.

Microsoft Excel

Najszybszy sposób, by spojrzeć na pojedynczy przekonwertowany dziennik.

  • Przy domyślnym separatorze ; i lokalizacji, która go oczekuje, podwójne kliknięcie otwiera plik z poprawnymi kolumnami.
  • Jeśli wszystko trafia do kolumny A, separator nie pasuje do ustawienia Excela. Uruchom ponownie z -Delimiter "," lub zaimportuj przez Dane → Z tekstu/CSV i wybierz tam separator.
  • Zamień zakres na tabelę (Ctrl+T) i zbuduj tabelę przestawną na ClientIP, QuestionName lub QuestionType. Najaktywniejsi klienci i najczęściej zapytywane domeny zajmą około minuty.
  • Dla danych powyżej kilkuset tysięcy wierszy użyj Power Query lub jednej z innych poniższych opcji.

Pliki *_Statistic.csv i *_PacketStatistic.csv to zwykle lepsze cele dla Excela — są wstępnie zagregowane i pozostają małe. Zobacz Formaty wyjściowe.

Power BI

Importuj pliki CSV i twórz pulpity do analizy aktywności DNS, top klientów, trendów zapytań i wskaźników błędów.

  • Wskaż Power Query na folder z przekonwertowanymi plikami, a nie na pojedynczy plik. Układ jest identyczny między serwerami i dniami, więc pliki są po prostu dopisywane.
  • Kolumna ComputerName umożliwia raport wieloserwerowy — ustaw -ComputerName podczas konwersji, inaczej nie będziesz mógł filtrować po serwerze.
  • ResponseCode i QuestionType to naturalne filtry; DateTime staje się osią czasu.
  • Zasilanie Power BI plikami *_PacketStatistic.csv zamiast pełnych danych utrzymuje model małym, gdy potrzebujesz tylko dziennych trendów.

Bazy danych SQL

Masowo załaduj CSV do SQL Server, PostgreSQL lub innej bazy SQL, by przechowywać dane długoterminowo i wykonywać powtarzalne zapytania.

Gotowy przewodnik — definicja tabeli, konwersja, import SqlBulkCopy i zapytanie wykrywające podejrzaną aktywność TXT — jest opisany w Security Analysis Workflow with SQL Server.

Warto zaplanować przed pierwszym załadowaniem:

  • Użyj -OutputCulture 'sv-SE', aby znaczniki czasu trafiły do kolumny datetime2 bez sztuczek konwersji.
  • Information i Details mogą być długie; nadaj im typ nvarchar(max).
  • Indeksuj to, czego faktycznie używasz w zapytaniach — zwykle DateTime, ClientIP i QuestionName.
  • Utrzymuj wypełnione -ComputerName, aby po scaleniu wiersze były przypisywalne.

Systemy SIEM

Splunk, Elastic, Sentinel i podobne platformy pobierają CSV do korelacji z inną telemetrią bezpieczeństwa i do alertów.

  • Wysyłaj skompresowany wynik (-CompressOutput) — jest około dziesięć razy mniejszy, a większość kolektorów sama go rozpakowuje.
  • Zdefiniuj mapowanie pól raz; układ kolumn nigdy się nie zmienia między uruchomieniami czy serwerami, w tym zawsze obecna kolumna ComputerName na końcu.
  • Niech kolektor usuwa duplikaty lub archiwizuje przetworzone pliki .log. Job konwersji, który przetwarza te same rotowane logi, inaczej wyśle identyczne wiersze ponownie.
  • -ContextFilter Packet ogranicza wolumen danych (i koszty licencji), gdy notatki serwera nie są potrzebne.

Python, R i narzędzia do analizy danych

Strukturalne wyjście jest gotowe do wykrywania anomalii, tworzenia bazowych wzorców i niestandardowej analityki.

import pandas as pd

df = pd.read_csv(
    r"C:\Administration\Logs\DNSServer\dns.csv",
    sep=";",
    parse_dates=["DateTime"],
)

# top 20 najczęściej zapytywanych nazw, tylko zapytania
top = (
    df[df["Direction"] == "Rcv"]
    .groupby("QuestionName")
    .size()
    .sort_values(ascending=False)
    .head(20)
)
print(top)

parse_dates działa od razu, gdy wyeksportujesz z -OutputCulture 'sv-SE'. Dalej pandas, scikit-learn czy R radzą sobie z klasteryzacją, sezonowością i wykrywaniem odchyleń jak zwykle.

Pozostając w PowerShell

Nie musisz wychodzić z PowerShell, by szybko uzyskać odpowiedź:

$dns = Import-Csv "C:\Administration\Logs\DNSServer\dns.csv" -Delimiter ';'

# najbardziej hałaśliwi klienci
$dns | Where-Object Direction -eq 'Rcv' |
    Group-Object ClientIP |
    Sort-Object Count -Descending |
    Select-Object -First 10 Count, Name

# nieudane zapytania
$dns | Where-Object ResponseCode -eq 'NXDOMAIN' |
    Group-Object QuestionName |
    Sort-Object Count -Descending |
    Select-Object -First 10 Count, Name

Import-Csv wczytuje cały plik do pamięci, więc nadaje się na rotowany fragment, ale nie na wielogigabajtowy eksport — do tego są bazy danych i SIEM.