Hvor en OpenVPN-server skal skrive sin log, og hvorfor
log, log-append og syslog er forskellige, og servicemanageren holder sin egen kopi. Vælg én autoritativ strøm, hold livscyklussen læsbar, fastsæt opbevaringen.
Et logdesign besvarer tre spørgsmål: hvilken proces skabte en post, hvor posten lander, og hvor længe den overlever. OpenVPN kan skrive til en fil, give meddelelser til systemloggen eller overlade dem til det, servicemanageren fanger, og det er ikke tre kopier af én strøm. Hvert valg ændrer, hvem der ejer rotationen, hvilken bruger der kan læse resultatet, og hvad der sker under opstart. Afgør svarene før en hændelse, for bagefter arver du det, der er konfigureret.
Hvad dæmonen faktisk gør med direktivet
Direktiverne er ikke abstraktioner; hver især afgør, hvor processen skriver sine meddelelser. log /path åbner filen, log-append /path åbner den til tilføjelse, og syslog giver meddelelser til den lokale systemlog via sin socket. Uden nogen af dem går output til standardoutput, og servicemanageren afgør, hvad der sker derefter. Læs den effektive unit og profilen sammen, før du konkluderer, at dæmonen ignorerer din konfiguration.
Det sidste tilfælde er det almindelige ved en pakket installation, og det forklarer, hvorfor to administratorer er uenige om, hvor loggen bor. Den ene læser unitens journal, den anden en fil, som dæmonen aldrig skrev.
Kontrollér den kørende konfiguration i stedet for filen på disken. En drop-in-override af uniten eller en miljøfil kan ændre det effektive direktiv uden at røre profilen, du læser.
log afkorter, log-append gør ikke
log afkorter en eksisterende fil, når direktivet træder i kraft, så en genstart sletter beviserne fra før. log-append beholder det, der er, og tilføjer. Ingen af mulighederne roterer noget, og ingen af dem genåbner filen senere af sig selv, og derfor kræver rotation samarbejde.
Hvis rotationen omdøber filen, mens dæmonen fortsat skriver til den gamle deskriptor, forbliver den nye fil tom, og diskforbruget fortsætter med at stige i den omdøbte. Send processen et signal om at genåbne, eller rotér med en kopiér-og-afkort-strategi og accepter kopivinduet.
Mappen, ejerskabet og tilladelserne er en del af designet. Dæmonen kan køre som uprivilligeret bruger efter opstart, og en mappe, som root oprettede ved installationen, er måske ikke skrivbar da. Forbered den via pakningen eller udrulningsprocessen i stedet for at rette tilladelser under en hændelse.
Servicemanageren holder en anden kopi
systemd fanger standardoutput og standardfejl som standard, så en unit uden eksplicit omdirigering har allerede en log. Tilføjer man et filedirektiv, får man to strømme med forskellig opbevaring, forskellige læsere og forskellige tidsstempler.
Det er ikke automatisk forkert, men det skal være en beslutning. Behold opstartsposten i journalen, for fejl før den konfigurerede fil findes, vises ingen andre steder. Gør derefter filen autoritativ for hændelser i drift, og skriv det i runbooken. To autoritative strømme betyder to svar på hvert spørgsmål.
Bekræft valget med en test, der fejler med vilje. Start dæmonen med et ulæseligt certifikat, og se hvilken strøm der registrerer fejlen.
Detaljerigdom er ikke det samme som brugbar detalje
Et højere verb-niveau tilføjer flere linjer og efter et punkt linjer, som ingen læser. Niveau 3 er en rimelig normal tilstand for de fleste installationer, mens niveau 4 og derover passer til en afgrænset undersøgelse med et kendt spørgsmål. Gentagelsesdæmpning reducerer støj, men må ikke skjule, hvor ofte en hændelse gentages. Sæt det niveau, du kan holde, og hæv det kun til en navngivet undersøgelse med en slutning.
Behold instansidentitet og tidsstempler i posten. En genopkobling ser nøjagtigt ud som en første forbindelse, når filen er blevet tilføjet i månedsvis, og instansnavnet mangler.
Vær opmærksom på, hvad der ellers lander i filen. Omdirigeret output kan indeholde tekst fra kaldte scripts, og et hjælpeprogram, der udskriver sit miljø, sætter legitimationsoplysninger og nøglestier i en læsbar log. Behandl logadgang som en sikkerhedsbeslutning, selv når dæmonen selv ikke udskriver noget følsomt.
Rotation, opbevaring og signalerne, der genindlæser
Afgør opbevaringen sammen med den, der ejer disken, og sæt den, før disken beslutter for dig. Et genindlæsningssignal er ikke en logvedligeholdelseskommando: det forkerte signal genstarter tunnelen og afbryder hver bruger. Skriv genåbningsproceduren ved siden af rotationsreglen, så de to ikke glider fra hinanden.
Resultatet bør være en tjeneste, som en operatør kan beskrive: én autoritativ strøm, hver hændelse placeret i livscyklussen og en post, der kan skaffes uden at samle alle hemmelighedsbærende filer på værten. Den beskrivelse er accepttesten for designet, og den er billig at kontrollere før næste hændelse.