Kvar ein OpenVPN-server bør skrive loggen sin, og kvifor
log, log-append og syslog er ulike, og tenestebehandlaren held si eiga kopi. Vel éin autoritativ straum, hald livssyklusen lesbar, set oppbevaringa.
Eit loggdesign svarar på tre spørsmål: kva prosess som laga ei post, kvar posten landar, og kor lenge han overlever. OpenVPN kan skrive til ei fil, gje meldingar til systemloggen eller overlate dei til det tenestebehandlaren fangar, og det er ikkje tre kopiar av éin straum. Kvart val endrar kven som eig rotasjonen, kva brukar som kan lese resultatet, og kva som skjer under oppstart. Avgjer svara før ei hending, for etterpå arvar du det som er konfigurert.
Kva daemonen faktisk gjer med direktivet
Direktiva er ikkje abstraksjonar; kvar av dei avgjer kvar prosessen skriv meldingane sine. log /path opnar fila, log-append /path opnar ho for tilføying, og syslog gjev meldingar til den lokale systemloggen via sockelen. Utan nokon av dei går utdata til standardutdata, og tenestebehandlaren avgjer kva som skjer vidare. Les den effektive uniten og profilen saman før du konkluderer med at daemonen ignorerer konfigurasjonen din.
Det siste tilfellet er det vanlege ved ein pakka installasjon, og det forklarer kvifor to administratorar er usamde om kvar loggen bur. Den eine les journalen til uniten, den andre ei fil som daemonen aldri skreiv.
Kontroller den køyrande konfigurasjonen i staden for fila på disk. Ei drop-in-overstyring av uniten eller ei miljøfil kan endre det effektive direktivet utan å røre profilen du les.
log avkortar, log-append gjer det ikkje
log avkortar ei eksisterande fil når direktivet trer i kraft, så ein omstart slettar bevisa frå før. log-append held på det som er der, og legg til. Ingen av dei roterer noko, og ingen av dei opnar fila på nytt av seg sjølv seinare, og difor treng rotasjon samarbeid.
Viss rotasjonen gjev fila nytt namn medan daemonen held fram med å skrive til den gamle deskriptoren, blir den nye fila tom, og diskbruken held fram med å auke i den omdøypte. Send prosessen signal om å opne på nytt, eller roter med ein kopier-og-avkort-strategi og godta kopivindauget.
Katalogen, eigarskapet og løyva er ein del av designet. Daemonen kan køyre som upriviligert brukar etter oppstart, og ein katalog som root oppretta ved installasjonen er kanskje ikkje skrivbar då. Førebu han gjennom pakkinga eller utrullingsprosessen i staden for å rette løyve under ei hending.
Tenestebehandlaren held ein andre kopi
systemd fangar standardutdata og standardfeil som standard, så ein unit utan eksplisitt omdirigering har allereie ein logg. Legg du til eit filedirektiv, får du to straumar med ulik oppbevaring, ulike lesarar og ulike tidsstempel.
Det er ikkje automatisk feil, men det må vere eit val. Hald oppstartsposten i journalen, for feil før den konfigurerte fila finst viser seg ingen andre stader. Gjer deretter fila autoritativ for hendingar i drift, og skriv det i runbooken. To autoritative straumar tyder to svar på kvart spørsmål.
Stadfest valet med ein test som feilar med vilje. Start daemonen med eit uleseleg sertifikat, og sjå kva straum som registrerer feilen.
Detaljrikdom er ikkje det same som brukbar detalj
Eit høgare verb-nivå legg til fleire linjer, og forbi eit punkt linjer som ingen les. Nivå 3 er ein rimeleg normaltilstand for dei fleste installasjonar, medan nivå 4 og over passar ein avgrensa undersøking med eit kjent spørsmål. Repetisjonsdemping reduserer støy, men må ikkje skjule kor ofte ei hending går att. Set nivået du kan halde, og auk det berre for ei namngjeven undersøking med ein slutt.
Hald instansidentitet og tidsstempel i posten. Ei attkopling ser nøyaktig ut som ei første tilkopling når fila har fått tilføyingar i månadsvis og instansnamnet manglar.
Ver merksam på kva anna som landar i fila. Omdirigert utdata kan innehalde tekst frå kalla skript, og eit hjelpeprogram som skriv ut miljøet sitt set legitimasjon og nøkkelstiar i ein lesbar logg. Handsame loggtilgang som eit tryggleiksval sjølv når daemonen sjølv ikkje skriv ut noko kjenslevart.
Rotasjon, oppbevaring og signala som lastar på nytt
Avgjer oppbevaringa saman med den som eig disken, og set ho før volumet avgjer for deg. Eit omlastingssignal er ikkje ein loggvedlikehaldskommando: det gale signalet startar tunnelen på nytt og koplar frå kvar brukar. Skriv gjenopningsprosedyren ved sida av rotasjonsregelen, så dei to ikkje glid frå kvarandre.
Resultatet bør vere ei teneste som ein operatør kan skildre: éin autoritativ straum, kvar hending plassert i livssyklusen og ein post som kan skaffast utan å samle alle løyndomsberande filer på verten. Den skildringa er aksepttesten for designet, og ho er billig å kontrollere før neste hending.