Et loggdesign besvarer tre spørsmål: hvilken prosess som laget en post, hvor posten lander, og hvor lenge den overlever. OpenVPN kan skrive til en fil, gi meldinger til systemloggen eller overlate dem til det tjenestebehandleren fanger, og det er ikke tre kopier av én strøm. Hvert valg endrer hvem som eier rotasjonen, hvilken bruker som kan lese resultatet, og hva som skjer under oppstart. Bestem svarene før en hendelse, for etterpå arver du det som er konfigurert.

Daemonen og direktivet: hva som faktisk skjer

Direktivene er ikke abstraksjoner; hver av dem avgjør hvor prosessen skriver meldingene sine. log /path åpner filen, log-append /path åpner den for tilføying, og syslog gir meldinger til den lokale systemloggen via sockelen. Uten noen av dem går utdata til standardutdata, og tjenestebehandleren avgjør hva som skjer videre. Les den effektive uniten og profilen sammen før du konkluderer med at daemonen ignorerer konfigurasjonen din.

Det siste tilfellet er det vanlige ved en pakket installasjon, og det forklarer hvorfor to administratorer er uenige om hvor loggen bor. Den ene leser journalen til uniten, den andre en fil som daemonen aldri skrev.

Kontroller den kjørende konfigurasjonen i stedet for filen på disk. En drop-in-overstyring av uniten eller en miljøfil kan endre det effektive direktivet uten å røre profilen du leser.

log avkorter, log-append gjør det ikke

log avkorter en eksisterende fil når direktivet trer i kraft, så en omstart sletter bevisene fra før. log-append beholder det som er der, og legger til. Ingen av dem roterer noe, og ingen av dem åpner filen på nytt av seg selv senere, og derfor trenger rotasjon samarbeid.

Hvis rotasjonen gir filen nytt navn mens daemonen fortsetter å skrive til den gamle deskriptoren, blir den nye filen tom, og diskbruken fortsetter å øke i den omdøpte. Send prosessen signal om å åpne på nytt, eller roter med en kopier-og-avkort-strategi og godta kopivinduet.

Katalogen, eierskapet og tillatelsene er en del av designet. Daemonen kan kjøre som uprivilligert bruker etter oppstart, og en katalog som root opprettet ved installasjonen er kanskje ikke skrivbar da. Forbered den gjennom pakkingen eller utrullingsprosessen i stedet for å rette tillatelser under en hendelse.

Tjenestebehandleren holder en andre kopi

systemd fanger standardutdata og standardfeil som standard, så en unit uten eksplisitt omdirigering har allerede en logg. Legger du til et filedirektiv, får du to strømmer med ulik oppbevaring, ulike lesere og ulike tidsstempler.

Det er ikke automatisk feil, men det må være en beslutning. Behold oppstartsposten i journalen, for feil før den konfigurerte filen finnes vises ingen andre steder. Gjør deretter filen autoritativ for hendelser i drift, og si det i runbooken. To autoritative strømmer betyr to svar på hvert spørsmål.

Bekreft valget med en test som feiler med vilje. Start daemonen med et uleselig sertifikat, og se hvilken strøm som registrerer feilen.

Detaljrikdom er ikke det samme som brukbar detalj

Et høyere verb-nivå legger til flere linjer, og forbi et punkt linjer som ingen leser. Nivå 3 er en rimelig normaltilstand for de fleste installasjoner, mens nivå 4 og over passer en avgrenset undersøkelse med et kjent spørsmål. Repetisjonsdemping reduserer støy, men må ikke skjule hvor ofte en hendelse gjentas. Sett nivået du kan holde, og øk det bare for en navngitt undersøkelse med en slutt.

Behold instansidentitet og tidsstempler i posten. En gjenoppkobling ser nøyaktig ut som en første tilkobling når filen har fått tilføyelser i månedsvis og instansnavnet mangler.

Vær oppmerksom på hva annet som lander i filen. Omdirigert utdata kan inneholde tekst fra kalte skript, og et hjelpeprogram som skriver ut miljøet sitt setter legitimasjon og nøkkelstier i en lesbar logg. Behandle loggtilgang som en sikkerhetsbeslutning selv når daemonen selv ikke skriver ut noe følsomt.

Rotasjon, oppbevaring og signalene som laster på nytt

Bestem oppbevaringen sammen med den som eier disken, og sett den før volumet bestemmer for deg. Et omlastingssignal er ikke en loggvedlikeholdskommando: det gale signalet starter tunnelen på nytt og kobler fra hver bruker. Skriv gjenåpningsprosedyren ved siden av rotasjonsregelen, så de to ikke glir fra hverandre.

Resultatet bør være en tjeneste som en operatør kan beskrive: én autoritativ strøm, hver hendelse plassert i livssyklusen og en post som kan skaffes uten å samle alle hemmelighetsbærende filer på verten. Den beskrivelsen er aksepttesten for designet, og den er billig å kontrollere før neste hendelse.

Relaterte artikler