Een logontwerp beantwoordt drie vragen: welk proces heeft een record gemaakt, waar dat record belandt en hoe lang het overleeft. OpenVPN kan naar een bestand schrijven, berichten aan de systeemlogger geven of ze overlaten aan wat de servicemanager opvangt, en dat zijn geen drie kopieën van één stroom. Elke keuze verandert wie de rotatie bezit, welke gebruiker het resultaat kan lezen en wat er tijdens het opstarten gebeurt. Bepaal de antwoorden vóór een incident, want daarna erft u wat er is geconfigureerd.

Wat de daemon werkelijk met de richtlijn doet

De richtlijnen zijn geen abstracties; elk bepaalt waar het proces zijn berichten schrijft. log /path opent dat bestand, log-append /path opent het om aan te vullen, en syslog geeft berichten via zijn socket aan de lokale systeemlogger. Zonder een van deze gaat de uitvoer naar de standaarduitvoer, en de servicemanager beslist wat er daarna gebeurt. Lees de effectieve unit en het profiel samen voordat u concludeert dat de daemon uw configuratie negeert.

Dat laatste geval is het gebruikelijke bij een pakketinstallatie, en het verklaart waarom twee beheerders het oneens zijn over waar het log staat. De een leest het journal van de unit, de ander een bestand dat de daemon nooit heeft geschreven.

Controleer de actieve configuratie in plaats van het bestand op schijf. Een drop-in unit-override of een omgevingsbestand kan de effectieve richtlijn wijzigen zonder het profiel aan te raken dat u leest.

log kapt af, log-append niet

log kapt een bestaand bestand af zodra de richtlijn ingaat, dus een herstart wist het bewijs van daarvoor. log-append houdt wat er staat en vult aan. Geen van beide opties roteert iets, en geen van beide heropent het bestand later uit zichzelf, daarom heeft rotatie samenwerking nodig.

Als de rotatie het bestand hernoemt terwijl de daemon blijft schrijven naar de oude descriptor, blijft het nieuwe bestand leeg en groeit het schijfgebruik in het hernoemde bestand verder. Signaleer het proces om opnieuw te openen, of roteer met een kopieer-en-knap-strategie en accepteer het kopieervenster.

De map, het eigenaarschap en de rechten horen bij het ontwerp. De daemon kan na het opstarten als onbevoorrechte gebruiker draaien, en een map die root bij de installatie heeft gemaakt is dan misschien niet beschrijfbaar. Bereid die voor via de pakkettering of het uitrolproces in plaats van rechten tijdens een incident te repareren.

De servicemanager houdt een tweede kopie

systemd vangt standaard de standaarduitvoer en standaardfout op, dus een unit zonder expliciete omleiding heeft al een log. Een bestandsrichtlijn toevoegen geeft twee stromen met verschillende bewaring, lezers en tijdstempels.

Dat is niet automatisch fout, maar het moet een beslissing zijn. Houd het opstartrecord in het journal, want fouten voordat het geconfigureerde bestand bestaat verschijnen nergens anders. Maak daarna het bestand gezaghebbend voor gebeurtenissen in de normale gang en zeg dat in het runbook. Twee gezaghebbende stromen betekenen twee antwoorden op elke vraag.

Bevestig de keuze met een test die met opzet faalt. Start de daemon met een onleesbaar certificaat en kijk welke stroom de fout vastlegt.

Uitvoerigheid is niet hetzelfde als bruikbaar detail

Een hoger verb-niveau voegt meer regels toe, en voorbij een punt regels die niemand leest. Niveau 3 is een redelijke normale toestand voor de meeste uitrollen, terwijl niveau 4 en hoger passen bij een begrensd onderzoek met een bekende vraag. Herhalingsonderdrukking vermindert ruis, maar mag niet verbergen hoe vaak een gebeurtenis terugkeert. Stel het niveau in dat u kunt volhouden, en verhoog het alleen voor een benoemd onderzoek met een einde.

Houd de identiteit van de instantie en tijdstempels in het record. Een herverbinding lijkt precies op een eerste verbinding wanneer het bestand al maanden wordt aangevuld en de instantienaam ontbreekt.

Let op wat er nog meer in dat bestand belandt. Omgeleide uitvoer kan tekst van aangeroepen scripts bevatten, en een hulpprogramma dat zijn omgeving print zet inloggegevens en sleutelpaden in een leesbaar log. Behandel logtoegang als een beveiligingsbeslissing, ook wanneer de daemon zelf niets gevoeligs afdrukt.

Rotatie, bewaring en de signalen die herladen

Bepaal de bewaring met de persoon die de schijf bezit, en stel die in voordat het volume voor u beslist. Een herlaadsignaal is geen logonderhoudscommando: het verkeerde signaal herstart de tunnel en verbreekt elke gebruiker. Schrijf de heropenprocedure naast de rotatieregel, zodat de twee niet uit elkaar lopen.

Het resultaat moet een dienst zijn die een beheerder kan beschrijven: één gezaghebbende stroom, elke gebeurtenis in de levenscyclus geplaatst, en een record dat verkrijgbaar is zonder elk bestand met geheimen op de host te verzamelen. Die beschrijving is de acceptatietest voor het ontwerp, en die is goedkoop te controleren vóór het volgende incident.

Gerelateerde artikelen