’n Logontwerp beantwoord drie vrae: watter proses het ’n rekord geskep, waar daardie rekord beland en hoe lank dit oorleef. OpenVPN kan na ’n lêer skryf, boodskappe aan die stelsellogger gee of dit oorlaat aan wat die diensbestuurder vasvang, en dit is nie drie kopieë van een stroom nie. Elke keuse verander wie die rotasie besit, watter gebruiker die resultaat kan lees en wat tydens die opstart gebeur. Bepaal die antwoorde voor ’n voorval, want daarna erf jy wat geconfigureer is.

Wat die daemon werklik met die richtlijn doen

Die richtlyne is nie abstraksies nie; elkeen bepaal waar die proses sy boodskappe skryf. log /path open daardie lêer, log-append /path open dit om by te voeg, en syslog gee boodskappe aan die plaaslike stelsellogger via sy socket. Sonder enige van hulle gaan die uitset na standaarduitset, en die diensbestuurder besluit wat volgende gebeur. Lees die effektiewe unit en die profiel saam voordat jy aflei dat die daemon jou konfigurasie ignoreer.

Laasgenoemde geval is algemeen by ’n pakketinstallasie, en dit verduidelik waarom twee administrateurs nie saamstem oor waar die log woon nie. Die een lees die unit se joernaal, die ander ’n lêer wat die daemon nooit geskryf het nie.

Kontroleer die lopende konfigurasie eerder as die lêer op skyf. ’n Drop-in-unitoorheersing of ’n omgewingslêer kan die effektiewe richtlijn verander sonder om die profiel te raak wat jy lees.

log sny af, log-append nie

log sny ’n bestaande lêer af wanneer die richtlijn in werking tree, so ’n herbegin vee die bewyse van voor dit uit. log-append hou wat daar is en voeg by. Nie een opsie roteer iets nie, en nie een heropen die lêer later self nie, daarom het rotasie samewerking nodig.

As die rotasie die lêer hernoem terwyl die daemon steeds na die ou descriptor skryf, bly die nuwe lêer leeg en die skyfgebruik bly in die hernoemde een klim. Stuur ’n sein aan die proses om weer oop te maak, of roteer met ’n kopieer-en-sny-strategie en aanvaar die kopievenster.

Die gids, eienaarskap en toestemmings is deel van die ontwerp. Die daemon kan ná opstart as ’n onbevoorregte gebruiker loop, en ’n gids wat root tydens installasie geskep het, is dalk dan nie skryfbaar nie. Berei dit deur verpakking of die ontplooiingsproses voor in plaas daarvan om toestemmings tydens ’n voorval reg te maak.

Die diensbestuurder hou ’n tweede kopie

systemd vang standaarduitset en standaardfout by verstek, so ’n unit sonder uitdruklike herleiding het reeds ’n log. Om ’n lêerrichtlijn by te voeg gee twee strome met verskillende bewaring, lesers en tydstempels.

Dit is nie outomaties verkeerd nie, maar dit moet ’n besluit wees. Hou die opstartrekord in die joernaal, want mislukkings voordat die geconfigureerde lêer bestaan verskyn nêrens anders nie. Maak die lêer daarna gesaghebbend vir gebeurtenisse in bestendige bedryf en sê dit in die runbook. Twee gesaghebbende strome beteken twee antwoorde op elke vraag.

Bevestig die keuse met ’n toets wat doelbewus misluk. Begin die daemon met ’n onleesbare sertifikaat en kyk watter stroom die fout aanteken.

Uitvoerigheid is nie dieselfde as bruikbare besonderhede nie

’n Hoër verb-vlak voeg meer reëls by, en verby ’n punt reëls wat niemand lees nie. Vlak 3 is ’n redelike bestendige toestand vir die meeste ontplooiings, terwyl vlak 4 en hoër by ’n begrensde ondersoek met ’n bekende vraag pas. Herhalingsonderdrukking verminder geraas, maar dit moet nie verberg hoe dikwels ’n gebeurtenis herhaal nie. Stel die vlak wat jy kan volhou, en verhoog dit net vir ’n genoemde ondersoek met ’n einde.

Hou instansie-identiteit en tydstempels in die rekord. ’n Herverbinding lyk presies soos ’n eerste verbinding wanneer die lêer maande lank bygevoeg is en die instansienaam ontbreek.

Let op wat nog in daardie lêer beland. Herleide uitset kan teks van aangeroepe skripte bevat, en ’n hulpprogram wat sy omgewing druk, plaas geloofsbriewe en sleutelpaaie in ’n leesbare log. Behandel logtoegang as ’n sekuriteitsbesluit selfs wanneer die daemon self niks sensitief druk nie.

Rotasie, bewaring en die seine wat herlaai

Bepaal die bewaring saam met die persoon wat die skyf besit, en stel dit voordat die volume vir jou besluit. ’n Herlaaisein is nie ’n logonderhoudsopdrag nie: die verkeerde een herbegin die tonnel en verbreek elke gebruiker. Skryf die heropeningsprosedure langs die rotasiereël sodat die twee nie uitmekaar dryf nie.

Die resultaat moet ’n diens wees wat ’n operateur kan beskryf: een gesaghebbende stroom, elke gebeurtenis in die lewensiklus geplaas, en ’n rekord wat verkrygbaar is sonder om elke geheimdraende lêer op die gasheer te versamel. Daardie beskrywing is die aanvaardingstoets vir die ontwerp, en dit is goedkoop om dit voor die volgende voorval te kontroleer.

Verwante artikels