Komu patří logy OpenVPN: démonu, rsyslogu, nebo logrotate?
Jeden zapisovatel, jeden rotátor, jedna politika uchovávání. Nejprve zvolte cestu, pojmenujte démona pro úzký filtr a dokažte znovuotevření jediným rotovaným souborem.
Rotace logů se láme předvídatelným způsobem: tři komponenty si každá myslí, že vlastní soubor, a výsledkem je rotovaný log, který dál roste, zatímco nový zůstává prázdný. Démon drží deskriptor, logrotate přejmenuje cestu a rsyslog píše úplně jinam. Vyberte jednoho zapisovatele a jednoho rotátora, než na hromadu přidáte další pravidlo. Kontrolní seznam níže jde v tomto pořadí, protože každý další krok na něm závisí.
Určete, kdo soubor zapisuje
Legitimní jsou dvě uspořádání. V prvním proces VPN zapisuje soubor sám pomocí své volby log nebo log-append. Ve druhém posílá záznamy systémovému loggeru a rsyslog nebo journald rozhoduje, kam doputují.
Jsou to alternativy, ne vrstvy. Hostitel, který zapne obojí, skončí se dvěma soubory, které si odporují, a ten, který čtete, je často ten zastaralý. Zvolte cestu záměrně a pak druhého zapisovatele odstraňte.
Přečtěte si platnou konfiguraci služby, než cokoli změníte, včetně drop-in souborů, které mohou přepsat unit soubor. Direktiva přítomná v profilu, který jste upravili, není důkazem, že je to ta, kterou načetl běžící proces. Porovnejte unit s argumenty procesu a potom se soubory, které skutečně otevřel.
Pojmenujte démona, aby filtr mohl být úzký
Na cestě přes syslog dejte démonovi zvláštní identitu a filtrujte podle ní. Pravidlo, které odpovídá názvu programu této instance VPN, drží její záznamy mimo sdílený soubor, jehož politika uchovávání patří něčemu jinému.
Úzká pravidla také činí odpověditelnou další otázku: která služba vytvořila tento řádek? Filtr, který odpovídá všemu se slovem VPN, ochotně posbírá provoz druhého tunelu a oba rozmázne. Porovnávejte přesný identifikátor, který unit předává loggeru.
Pravidlo po akci uzavřete, aby záznamy nespadly také do výchozího cíle. Duplicitní řádky ve dvou souborech vypadají jako chyba logování a ve skutečnosti jsou chybějícím zastavením. To jediné opomenutí také zdvojnásobuje diskové náklady politiky uchovávání.
Rotujte, aniž byste ztratili deskriptor
Když démon soubor zapisuje, logrotate přejmenuje cestu, ale proces si drží otevřený deskriptor. Nové záznamy pokračují do přejmenovaného souboru, dokud něco nepřiměje proces znovu otevřít původní cestu; proto se rotace může zdát funkční, zatímco nový soubor zůstává prázdný.
Řešením je akce postrotate, která spustí dokumentované chování služby při znovunačtení nebo restartu. Poslat loggeru signál je zcela jiná akce a démonovi, který drží vlastní soubor, nijak nepomůže.
Tam, kde je znovuotevření nemožné, je copytruncate náhradou: zkopírujte soubor a pak ho na místě zkraťte. Deskriptor zůstane platný za cenu ztráty všeho zapsaného mezi kopií a zkrácením, takže je to výměna, nikoli řešení. Pod zátěží může tato mezera spolknout právě tu poruchu, kterou se snažíte zachytit.
Zvolte pro každý soubor jednu ze dvou možností a volbu zapište, protože jejich míchání na stejné cestě vytváří mezery, které se později velmi těžko přisuzují. Čtenář, který v jednom adresáři najde oba vzory, nedokáže říct, který je směrodatný.
Nastavte uchovávání podle okna incidentu
Uchovávání, komprese a maximální velikost by měly vycházet z toho, jak hluboko skutečně zkoumáte. Okno sedmi dnů s kompresí a stropem velikosti je rozumný výchozí bod pro mnoho nasazení; číslo opsané z návodu ne.
Držte politiku na jednom místě. Pokud logrotate soubor rotuje a rsyslog ho také rotuje, vyhrává druhá rotace a schéma pojmenování první přežívá jako nepořádek. Určete vlastníka, druhou rotaci vypněte a to rozhodnutí poznamenejte vedle politiky.
Dokumentace rsyslogu pokrývá jeho model směrování a akcí, zatímco dokumentace služby OpenVPN zůstává směrodatná pro vlastní volby logování démona. Ani jedna za vás nerozhodne o vaší politice uchovávání.
Otestujte jednu rotaci a jednu novou událost
Vynuťte jedinou rotaci a pak vytvořte jednu novou událost, například neúspěšnou autentizaci. Potvrďte, že se nový záznam objeví v novém souboru a že starý soubor přestal růst.
Zkontrolujte také práva na novém souboru, protože rotace, která ho znovu vytvoří s jiným vlastníkem, zlomí zapisovatele při dalším zápisu a vytvoří mezeru, jež vypadá jako pád. Porovnejte vlastníka a režim s účtem služby, než odejdete. Potom potvrďte, že komprimovaný archiv je čitelný, protože archiv, který nikdo nedokáže otevřít, není uchovávání. Rychlé přečtení nejnovějšího záznamu ve starém souboru prokáže jak kompresi, tak práva.
Skončete zapsáním vlastníka každého kroku: která komponenta zapisuje, která rotuje a kde žije politika uchovávání. Právě tento záznam promění příští incident s logy v pětiminutovou kontrolu místo odpoledne hádání, která vrstva řádek zahodila.