Kellele kuuluvad OpenVPN-i logid: deemonile, rsyslogile või logrotate'ile?
Üks kirjutaja, üks pööraja, üks säilituspoliitika. Vali esmalt tee, nimeta deemon kitsa filtri jaoks ja tõesta uuesti avamist ühe pööratud failiga.
Logirotatsioon puruneb ettearvataval viisil: kolm komponenti arvavad igaüks, et fail kuulub neile, ja tulemuseks on pööratud logi, mis kasvab edasi, samal ajal kui uus jääb tühjaks. Deemon hoiab failideskriptorit, logrotate nimetab tee ümber ja rsyslog kirjutab hoopis mujale. Vali üks kirjutaja ja üks pööraja enne, kui lisad hunnikusse veel ühe reegli. Allolev kontrollnimekiri liigub selles järjekorras, sest iga järgmine samm sõltub sellest.
Otsusta, kes faili kirjutab
Kaks lahendust on õiguspärased. Esimeses kirjutab VPN-protsess ise faili oma log- või log-append-valiku kaudu. Teises saadab see kirjed süsteemilogijale ning rsyslog või journald otsustab, kuhu need maanduvad.
Need on alternatiivid, mitte kihid. Hosti, mis lubab mõlemat, jääb kaks faili, mis ei klapi, ja see, mida sa loed, on sageli vananenud. Vali tee teadlikult ja eemalda seejärel teine kirjutaja.
Loe teenuse kehtivat konfiguratsiooni enne, kui midagi muudad, sealhulgas drop-in faile, mis võivad unit-faili üle kirjutada. Redigeeritud profiilis olev direktiiv ei ole tõestuseks, et just see on see, mille töötav protsess laadis. Võrdle unit-faili protsessi argumentidega ja seejärel failidega, mille see tegelikult avas.
Nimeta deemon, et filter saaks olla kitsas
syslogi teel anna deemonile eristatav identiteet ja filtreeri selle järgi. Reegel, mis sobib selle VPN-i eksemplari programmi nimega, hoiab selle kirjed väljaspool jagatud faili, mille säilituspoliitika kuulub millelegi muule.
Kitsad reeglid teevad vastatavaks ka järgmise küsimuse: milline teenus selle rea tekitas? Filter, mis sobib kõigega, kus on sõna VPN, korjab hea meelega üles teise tunneli liikluse ja hägustab mõlemad. Sobita täpse identifikaatoriga, mille unit logijale edastab.
Sulge reegel pärast tegevust, et kirjed ei langeks ka vaike-sihtkohta. Topeltread kahes failis näivad logimisveana ja on tegelikult puuduv peatus. See üksainus väljajätt kahekordistab ka säilituspoliitika kettakulu.
Pööra ilma deskriptorit kaotamata
Kui deemon faili kirjutab, nimetab logrotate tee ümber, kuid protsess hoiab oma avatud deskriptorit. Uued kirjed lähevad edasi ümbernimetatud faili seni, kuni miski sunnib protsessi algse tee uuesti avama; seepärast võib rotatsioon näida töötavat, samal ajal kui uus fail jääb tühjaks.
Lahendus on postrotate-tegevus, mis käivitab teenuse dokumenteeritud uuestilaadimise või taaskäivituse käitumise. Logijale signaali saatmine on hoopis teine tegevus ega tee omal failil püsivale deemonile midagi.
Kui uuesti avamine on võimatu, on copytruncate tagavara: kopeeri fail ja kärbi see seejärel kohapeal. See hoiab deskriptori kehtivana, aga kaotab kõik, mis kirjutati koopia ja kärpimise vahel, seega on see vahetus, mitte lahendus. Koormuse all võib see vahe just selle rikke alla neelata, mida püüad tabada.
Vali iga faili kohta üks kahest ja kirjuta valik üles, sest nende segamine samal teel tekitab vahesid, mida on hiljem väga raske millelegi omistada. Lugeja, kes leiab ühest kataloogist mõlemad mustrid, ei oska öelda, milline on määrav.
Määra säilitus intsidendi akna järgi
Säilitus, pakkimine ja maksimaalne suurus peaksid tulenema sellest, kui kaugele sa tegelikult uurid. Seitsmepäevane aken pakkimise ja suurusepiiranguga on paljude juurutuste jaoks mõistlik alguspunkt; õpetusest kopeeritud number ei ole.
Hoia poliitikat ühes kohas. Kui logrotate pöörab faili ja rsyslog pöörab seda samuti, võidab teine rotatsioon ning esimese nimetusskeem jääb segadusena alles. Vali omanik, lülita teine rotatsioon välja ja märgi see otsus poliitika kõrvale.
rsyslogi dokumentatsioon katab selle marsruutimise ja tegevuste mudelit, samas kui OpenVPN-i teenuse dokumentatsioon jääb deemonile enda logimisvalikute osas määravaks. Kumbki neist ei otsusta sinu säilituspoliitikat sinu eest.
Kontrolli ühte rotatsiooni ja üht uut sündmust
Sunniviisiliselt üks rotatsioon ja seejärel tekita üks uus sündmus, näiteks ebaõnnestunud autentimine. Kinnita, et uus kirje ilmub uude faili ja et vana fail lakkas kasvamast.
Kontrolli ka uue faili õigusi, sest rotatsioon, mis loob selle uuesti teise omanikuga, murrab kirjutaja järgmisel kirjutamisel ja tekitab vahe, mis näeb välja nagu kokkujooks. Võrdle omanikku ja õigusi teenusekontoga enne, kui lahkud. Seejärel kinnita, et pakitud arhiiv on loetav, sest arhiiv, mida keegi avada ei saa, ei ole säilitus. Kiire pilk vana faili uusimale kirjele tõestab nii pakkimist kui ka õigusi.
Lõpeta iga sammu omaniku kirjapanekuga: milline komponent kirjutab, milline pöörab ja kus elab säilituspoliitika. Just see kirje muudab järgmise logimisintsidendi viieminutiliseks kontrolliks, mitte terveks pärastlõunaks oletamist, milline kiht rea kaotas.