Kdo je lastnik dnevnikov OpenVPN: demon, rsyslog ali logrotate?
En pisec, en rotator, ena politika hrambe. Najprej izberite pot, poimenujte demona za ozek filter in dokažite ponovno odpiranje z eno samo rotirano datoteko.
Vrtenje dnevnikov se zlomi na predvidljiv način: tri komponente vsaka meni, da ima datoteko v lasti, rezultat pa je rotiran dnevnik, ki raste naprej, medtem ko nova datoteka ostaja prazna. Demon drži deskriptor, logrotate preimenuje pot, rsyslog pa piše povsem drugje. Izberite enega pisca in en rotator, preden na kup dodate še eno pravilo. Spodnji kontrolni seznam gre v tem vrstnem redu, ker je vsak naslednji korak odvisen od njega.
Odločite, kdo piše datoteko
Dve zasnovi sta legitimeni. Pri prvi proces VPN sam piše datoteko prek svoje možnosti log ali log-append. Pri drugi pošilja zapise sistemskemu beležniku, rsyslog ali journald pa odloči, kam pristanejo.
To so alternative, ne plasti. Gostitelj, ki vklopi oboje, konča z dvema datotekama, ki se ne ujemata, in tista, ki jo berete, je pogosto zastarela. Pot izberite namerno, nato odstranite drugega pisca.
Preden karkoli spremenite, preberite veljavno konfiguracijo storitve, vključno z datotekami drop-in, ki lahko preglasijo datoteko unit. Direktiva v profilu, ki ste ga uredili, ni dokaz, da je to tista, ki jo je naložil tekoči proces. Primerjajte unit z argumenti procesa in nato z datotekami, ki jih je res odprl.
Poimenujte demona, da bo filter ozek
Na poti syslog dajte demonu ločeno identiteto in filtrirajte po njej. Pravilo, ki se ujema z imenom programa te instance VPN, drži njene zapise zunaj skupne datoteke, katere politika hrambe pripada nečemu drugemu.
Ozka pravila naredijo odgovorljivo tudi naslednje vprašanje: katera storitev je ustvarila to vrstico? Filter, ki se ujema z vsem, kar vsebuje besedo VPN, bo z veseljem zbral promet drugega tunela in zameglil oba. Ujemajte se s točnim identifikatorjem, ki ga unit preda beležniku.
Po dejanju zaprite pravilo, da zapisi ne padejo tudi v privzeti cilj. Podvojene vrstice v dveh datotekah so videti kot napaka pri beleženju, v resnici pa so manjkajoča ustavitev. Ta ena opustitev tudi podvoji diskovne stroške politike hrambe.
Vrtite brez izgube deskriptorja
Ko demon piše datoteko, logrotate preimenuje pot, proces pa obdrži svoj odprti deskriptor. Novi zapisi se nadaljujejo v preimenovano datoteko, dokler nekaj ne prisili procesa, da znova odpre prvotno pot; zato je vrtenje lahko videti uspešno, medtem ko nova datoteka ostaja prazna.
Rešitev je dejanje postrotate, ki sproži dokumentirano vedenje storitve pri ponovnem nalaganju ali ponovnem zagonu. Pošiljanje signala beležniku je povsem drugo dejanje in za demona, ki drži lastno datoteko, ne naredi ničesar.
Kjer ponovno odpiranje ni mogoče, je copytruncate rezerva: kopirajte datoteko in jo nato odrežite na mestu. Deskriptor ostane veljaven za ceno izgube vsega, kar je zapisano med kopiranjem in rezanjem, zato je to menjava in ne rešitev. Pod obremenitvijo lahko ta vrzel pogoltne prav tisto okvaro, ki jo poskušate ujeti.
Za vsako datoteko izberite eno od dveh in izbiro zapišite, ker njuno mešanje na isti poti ustvari vrzeli, ki jih je pozneje zelo težko pripisati. Bralec, ki v eni mapi najde oba vzorca, ne more reči, kateri je merodajen.
Nastavite hrambo glede na okno incidenta
Hramba, stiskanje in največja velikost naj izhajajo iz tega, kako globoko res preiskujete. Okno sedmih dni s stiskanjem in omejitvijo velikosti je razumno izhodišče za številne uvedbe; številka, kopirana iz priročnika, ni.
Politiko imejte na enem mestu. Če logrotate vrti datoteko in jo rsyslog tudi vrti, zmaga drugo vrtenje, shema poimenovanja prvega pa ostane kot nered. Izberite lastnika, izklopite drugo vrtenje in to odločitev zapišite ob politiki.
Dokumentacija rsyslog pokriva njegov model usmerjanja in dejanj, medtem ko dokumentacija storitve OpenVPN ostaja merodajna za lastne možnosti beleženja demona. Nobena od njiju ne odloči vaše politike hrambe namesto vas.
Preizkusite eno vrtenje in en nov dogodek
Vsilite eno samo vrtenje in nato ustvarite en nov dogodek, na primer neuspešno preverjanje pristnosti. Potrdite, da se novi zapis pojavi v novi datoteki in da je stara datoteka prenehala rasti.
Preverite tudi dovoljenja na novi datoteki, ker vrtenje, ki jo znova ustvari z drugim lastnikom, zlomi pisca pri naslednjem pisanju in ustvari vrzel, ki je videti kot sesutje. Primerjajte lastnika in način z računom storitve, preden odidete. Nato potrdite, da je stisnjen arhiv berljiv, saj arhiv, ki ga nihče ne more odpreti, ni hramba. Hitro branje najnovejšega zapisa v stari datoteki dokaže tako stiskanje kot dovoljenja.
Končajte z zapisom lastnika vsakega koraka: katera komponenta piše, katera vrti in kje živi politika hrambe. Ta zapis spremeni naslednji incident z dnevniki v petminutno preverjanje namesto popoldneva ugibanja, katera plast je izgubila vrstico.