Toiminnalliset parhaat käytännöt

Mitä pitää saada oikein ennen kuin DNS-lokin muunnos ajetaan valvomatta tuotannon toimialueen ohjaimilla.

For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /fi/docs/06-operational-best-practices/index.md.

Lokien käsin muuntaminen on helppoa. Sen ajaminen joka yö jokaisella toimialueen ohjaimella vuosikausia ilman, että kukaan katsoo tuloksia, vaatii hieman suunnittelua. Tässä ovat käytännössä tärkeimmät kohdat.

1. Muunna kiertävät lokit, älä aktiivista

Ota lokin kierto käyttöön DNS-palvelimella ja muunna vain suljetut tiedostot. Moduuli voi lukea lokia, johon DNS-palvelin parhaillaan kirjoittaa, mutta kyseinen tiedosto muuttuu muunnoksen aikana: uusimmat merkinnät voivat puuttua ja viimeinen rivi voi olla katkaistu. Kaksi ajoa tuottaa kaksi erilaista tulosta.

Vakio käytäntö ohittaa uusimman tiedoston:

Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
    Sort-Object LastWriteTime -Descending |
    Select-Object -Skip 1 |
    Convert-DNSDebugLogFile -ComputerName $env:COMPUTERNAME

Huomioitava kompromissi: vähäliikenteisellä palvelimella kierto voi kestää yli päivän, jolloin kuluvan päivän tiedot pysyvät muuntamattomina kunnes tiedosto kiertää. Säädä kierron kynnysarvo sen mukaisesti.

2. Ajoita tehtävä ja anna sille toimiva tunnus

Tehtävien ajoitus on tavallisin tapa — päivittäinen ajo on järkevä oletus. Täydellinen ryhmäkäytäntöön perustuva toteutus toimialueen ohjaimille on dokumentoitu GPO-ohjatun keräyksen esimerkissä, ja itsenäinen tehtävä Scheduled Task -esimerkissä.

Kolme yleistä ongelmaa:

  • Moduulin löydettävyys. SYSTEM-tilassa ja -NoProfile-valitsimella ajettava tehtävä näkee vain konekohtaiset moduulipolut. Asenna moduuli konekohtaisesti tai lisää tehtävän toimintaan eksplisiittinen Import-Module.
  • Kulttuuri. Tehtävän suorittavalla tilillä ei välttämättä ole samaa paikallisasetusta, jolla testasit interaktiivisesti. Aseta -InputCulture ja -OutputCulture eksplisiittisesti äläkä luota oletuksiin.
  • Verkkoyhteys. Jos lähde- tai kohdekohde on UNC-polku, SYSTEM todentuu koneen tilinä. Anna jaetun kansion ja NTFS-oikeudet koneen tilille (tai Domain Controllers -ryhmälle) tai aja tehtävä omalla palvelutilillä.

3. Kierrä tiedostokoko, jonka pystyt käsittelemään

50–200 Mt per tiedosto pitää muunnokset ennustettavina ja mahdollistaa yön aikana suoritettavan työn. Yksi jatkuvasti kasvava tiedosto ei lopulta pysy mukana. Katso Suorituskyky.

4. Vahvista ensimmäiset tulokset ennen automatisointia

Aja muunnos manuaalisesti kahdella tai kolmella oikealla lokilla ja avaa CSV-tiedostot:

  • Ovatko aikaleimat oikein — eivätkö päivä ja kuukausi ole vaihtaneet paikkaa? (Jos ovat, aseta -InputCulture.)
  • Vastaako erotin kuluttajasi odotuksia?
  • Onko ComputerName täytetty?
  • Ovatko tarvitsemasi kontekstit mukana ja tarpeettomat suodatettu pois?

-WhatIf näyttää, mitä tiedostoja erä koskisi ennen kuin se koskee niitä:

Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
    Convert-DNSDebugLogFile -RemoveSourceFile -WhatIf

5. Päätä, mitä käsitellyille lokeille tapahtuu

Tehtävä, joka yksinkertaisesti muuntaa “kaikki lokit paitsi uusimman”, käsittelee samat tiedostot joka yö uudelleen. Se on luotettava ja yksinkertainen, mutta ylikirjoittaa tulokset ja voi työntää duplikaattirivejä kerääjälle.

Valitse yksi:

  • siirrä käsitellyt .log-tiedostot arkistokansioon
  • poista ne -RemoveSourceFile-valitsimella, kun putki on luotettava
  • tee kerääjästä duplikaattien poisto

Minkä tahansa valitsetkin, kirjaa se ylös — tämä yksityiskohta hämmentää seuraavaa ylläpitäjää.

6. Suunnittele tallennus ja säilytys

Pakkaus (-CompressOutput) yleensä pienentää CSV:n kokoa yli 90 %, mutta määrä kasvaa silti. Arvioi todellisen kyselymääräsi ja säilytysvelvoitteesi perusteella ja aseta datalle päättymispäivä sen sijaan, että annat sen kasvaa loputtomasti.

-OutputType Statistic kannattaa harkita pitkään säilytykseen: päivittäiset yhteenvedot ovat pieniä ja vastaavat usein niitä trendikysymyksiä, joita vanha rivikohtainen data palveli.

7. Kohtele tulosta arkaluontoisena

Jäsennellyt DNS-lokit kuvaavat sisäistä nimirakennettasi ja kuka on mitäkin hakenut. Se paljastaa enemmän kuin useimmat infrastruktuurilokit, ja riippuen lainsäädännöstäsi se voi olla henkilötietoa.

  • Rajoita NTFS- ja jaetun kansion oikeudet tuloskansioissa.
  • Älä pudota CSV-tiedostoja yleiskäyttöiselle tiedostojakolle “väliaikaisesti”.
  • Sisällytä DNS-lokit säilytys- ja poistopolitiikkaasi, älä pelkästään varmuuskopiointipolitiikkaan.
  • Pakattu tulos on pienempi, ei suojattu — käytä salausta tai pääsynvalvontaa siellä, missä sillä on merkitystä.

8. Pidä otsikkotarkistus päällä

Oletustarkistus, joka varmistaa tiedoston olevan oikeasti DNS-debug-loki, ei maksa mitään ja estää väärin kirjoitetun polun tuottamasta tuhansia järjettömiä rivejä. Käytä -SkipHeaderValidation vain aidosti poikkeuksellisissa formaateissa — ja huomaa, että komento kieltäytyy yhdistämästä sitä -RemoveSourceFile-valitsimen kanssa juuri tästä syystä.

9. Valvo tehtävää, älä pelkästään palvelinta

Valvomaton muunnos, joka hiljaa pysähtyy, on pahempi kuin ei muunnosta ollenkaan, koska aukko huomataan vasta, kun joku tarvitsee dataa.

  • Tarkkaile virheiden esiintymistä; GPO-viiteimplementaatio heittää virheen, kun $Error.Count -gt 0, jotta tehtävä raportoi epäonnistumisen.
  • Hälytä ajoitetun tehtävän viimeisestä tuloskoodista, älä pelkästään siitä, onko tehtävä olemassa.
  • Tarkista, että tulostiedostot todella ilmestyvät ja niissä on tuoreita aikaleimoja.
  • Seuraa vapaata levytilaa sekä lokilevyllä että tulostuskohteessa.

Yleisiä epäonnistumisen syitä — pääsyn estot, vioittuneet lokit, virheelliset otsikot — käsitellään Vianmäärityksessä.

10. Dokumentoi työnkulku

Missä lokit kirjoitetaan, milloin tehtävä ajetaan, mitä parametreja käytetään, minne tulos menee, kuka sitä käyttää ja kuinka kauan sitä säilytetään. Kuusi riviä ylläpitowikissäsi. Se tekee asetuksesta auditoitavan ja siirrettävän.