Lokien kierrätys hajoaa ennustettavalla tavalla: kolme komponenttia luulee kukin omistavansa tiedoston, ja tuloksena on kierrätetty loki, joka jatkaa kasvuaan, kun uusi jää tyhjäksi. Daemon pitää tiedostokuvaajaa, logrotate nimeää polun uudelleen ja rsyslog kirjoittaa aivan muualle. Valitse yksi kirjoittaja ja yksi pyörittäjä ennen kuin lisäät pinon päälle uuden säännön. Alla oleva tarkistuslista etenee tässä järjestyksessä, koska jokainen myöhempi vaihe riippuu siitä.

Päätä, kuka kirjoittaa tiedoston

Kaksi suunnittelua on pätevä. Ensimmäisessä VPN-prosessi kirjoittaa tiedoston itse oman log- tai log-append-vaihtoehtonsa kautta. Toisessa se lähettää tietueet järjestelmälokittajalle, ja rsyslog tai journald päättää, mihin ne päätyvät.

Ne ovat vaihtoehtoja, eivät kerroksia. Isäntä, joka ottaa käyttöön molemmat, päätyy kahteen tiedostoon, jotka ovat ristiriidassa, ja se, jota luet, on usein vanhentunut. Valitse polku tarkoituksella ja poista sitten toinen kirjoittaja.

Lue palvelun voimassa oleva kokoonpano ennen kuin muutat mitään, mukaan lukien drop-in-tiedostot, jotka voivat ohittaa unit-tiedoston. Muokkaamassasi profiilissa oleva direktiivi ei todista, että se on se, jonka käynnissä oleva prosessi latasi. Vertaa unit-tiedostoa prosessin argumentteihin ja sitten tiedostoihin, jotka se todella avasi.

Nimeä daemon, jotta suodatin voi olla kapea

syslog-polkua käytettäessä anna daemonille erillinen identiteetti ja suodata sen perusteella. Sääntö, joka vastaa tämän VPN-instanssin ohjelman nimeä, pitää sen tietueet poissa jaetusta tiedostosta, jonka säilytyskäytäntö kuuluu jollekin muulle.

Kapeat säännöt tekevät myös seuraavasta kysymyksestä vastattavan: mikä palvelu tuotti tämän rivin? Suodatin, joka vastaa kaikkea, jossa on sana VPN, kerää mielellään toisen tunnelin liikenteen ja hämärtää molemmat. Kohdista täsmälliseen tunnisteeseen, jonka unit välittää lokittajalle.

Sulje sääntö toiminnon jälkeen, jotta tietueet eivät myöskään putoa oletuskohteeseen. Kahden tiedoston kaksoisrivit näyttävät lokitusvialta ja ovat todellisuudessa puuttuva pysäytys. Se yksi poisjättö myös kaksinkertaistaa säilytyskäytännön levykulun.

Kierrätä kadottamatta tiedostokuvaajaa

Kun daemon kirjoittaa tiedoston, logrotate nimeää polun uudelleen, mutta prosessi pitää avoimen kuvaajansa. Uudet tietueet jatkuvat uudelleen nimettyyn tiedostoon, kunnes jokin saa prosessin avaamaan alkuperäisen polun uudelleen; siksi kierrätys voi näyttää toimivan, vaikka uusi tiedosto jää tyhjäksi.

Ratkaisu on postrotate-toiminto, joka laukaisee palvelun dokumentoidun uudelleenlataus- tai uudelleenkäynnistyskäyttäytymisen. Signaalin lähettäminen lokittajalle on täysin eri toiminto eikä tee mitään daemonille, joka pitää omaa tiedostoaan.

Kun uudelleenavaaminen on mahdotonta, copytruncate on varakeino: kopioi tiedosto ja katkaise se sitten paikoilleen. Se pitää kuvaajan kelvollisena, mutta kadottaa kaiken kopion ja katkaisun välillä kirjoitetun, joten se on vaihtokauppa eikä ratkaisu. Kuormituksessa tuo aukko voi niellä juuri sen vian, jota yrität napata.

Valitse tiedostoa kohden toinen kahdesta ja kirjoita valinta muistiin, sillä niiden sekoittaminen samalla polulla tuottaa aukkoja, joita on myöhemmin hyvin vaikea kohdistaa. Lukija, joka löytää molemmat mallit yhdestä hakemistosta, ei osaa sanoa, kumpi on määräävä.

Aseta säilytys tapahtumaikkunan mukaan

Säilytyksen, pakkauksen ja enimmäiskoon pitäisi seurata siitä, kuinka kauas todella tutkit. Seitsemän päivän ikkuna pakkauksella ja kokorajalla on monille käyttöönotoille järkevä lähtökohta; oppaasta kopioitu luku ei ole.

Pidä käytäntö yhdessä paikassa. Jos logrotate kierrättää tiedoston ja rsyslog myös kierrättää sen, toinen kierrätys voittaa ja ensimmäisen nimeämiskaava jää jäljelle sotkuna. Valitse omistaja, poista toinen kierrätys käytöstä ja merkitse päätös käytännön viereen.

rsyslogin dokumentaatio kattaa sen reititys- ja toimintomallin, kun taas OpenVPN-palvelun dokumentaatio pysyy määräävänä daemonin omille lokitusvaihtoehdoille. Kumpikaan niistä ei päätä säilytyskäytäntöäsi puolestasi.

Testaa yksi kierrätys ja yksi uusi tapahtuma

Pakota yksi kierrätys ja luo sitten yksi uusi tapahtuma, esimerkiksi epäonnistunut todennus. Vahvista, että uusi tietue ilmestyy uuteen tiedostoon ja että vanha tiedosto lakkasi kasvamasta.

Tarkista myös uuden tiedoston käyttöoikeudet, sillä kierrätys, joka luo sen uudelleen eri omistajalla, rikkoo kirjoittajan seuraavalla kirjoituksella ja tuottaa aukon, joka näyttää kaatumiselta. Vertaa omistajaa ja tilaa palvelutilin kanssa ennen kuin lähdet. Vahvista sitten, että pakattu arkisto on luettavissa, sillä arkisto, jota kukaan ei voi avata, ei ole säilytystä. Nopea vilkaisu vanhan tiedoston uusimpaan tietueeseen todistaa sekä pakkauksen että käyttöoikeudet.

Lopeta kirjaamalla jokaisen vaiheen omistaja: mikä komponentti kirjoittaa, mikä kierrättää ja missä säilytyskäytäntö asuu. Juuri tuo kirjaus tekee seuraavasta lokitustapahtumasta viiden minuutin tarkistuksen eikä iltapäivää kestävää arvailua siitä, mikä kerros pudotti rivin.

Aiheeseen liittyvät artikkelit