Minne OpenVPN-palvelimen pitäisi kirjoittaa lokinsa ja miksi
log, log-append ja syslog eroavat toisistaan, ja palvelunhallinta pitää omaa kopiotaan. Valitse yksi auktoritatiivinen virta, pidä elinkaari luettavana ja aseta säilytys.
Lokiratkaisu vastaa kolmeen kysymykseen: mikä prosessi tuotti merkinnän, mihin merkintä päätyy ja kuinka kauan se säilyy. OpenVPN voi kirjoittaa tiedostoon, antaa viestit järjestelmälokille tai jättää ne sille, mitä palvelunhallinta kaappaa, eivätkä ne ole yhden virran kolme kopiota. Jokainen valinta muuttaa sitä, kuka omistaa kierrätyksen, kuka käyttäjä voi lukea tuloksen ja mitä käynnistyksen aikana tapahtuu. Ratkaise vastaukset ennen häiriötä, koska sen jälkeen perit sen, mikä on määritetty.
Miten daemon oikeastaan käsittelee direktiivin
Direktiivit eivät ole abstraktioita; kukin päättää, mihin prosessi kirjoittaa viestinsä. log /path avaa tiedoston, log-append /path avaa sen lisäystä varten ja syslog välittää viestit paikalliselle järjestelmälokille socketinsa kautta. Ilman niitä tuloste menee vakiotulosteeseen ja palvelunhallinta päättää, mitä seuraavaksi tapahtuu. Lue voimassa oleva unit ja profiili yhdessä ennen kuin päättelet, että daemon jättää kokoonpanosi huomiotta.
Viimeinen tapaus on pakettiasennuksessa tavallinen, ja se selittää, miksi kaksi ylläpitäjää on eri mieltä lokin sijainnista. Toinen lukee unitin journalia, toinen tiedostoa, jota daemon ei koskaan kirjoittanut.
Tarkista käynnissä oleva kokoonpano levyn tiedoston sijaan. Drop-in-unitin ohitus tai ympäristötiedosto voi muuttaa voimassa olevaa direktiiviä koskematta profiiliin, jota luet.
log katkaisee, log-append ei
log katkaisee olemassa olevan tiedoston, kun direktiivi astuu voimaan, joten uudelleenkäynnistys pyyhkii sitä edeltävät todisteet. log-append säilyttää sen, mikä on, ja lisää perään. Kumpikaan vaihtoehto ei kierrätä mitään, eikä kumpikaan avaa tiedostoa myöhemmin itsestään, minkä vuoksi kierrätys tarvitsee yhteistyötä.
Jos kierrätys nimeää tiedoston uudelleen daemonin kirjoittaessa edelleen vanhaan kuvaajaan, uusi tiedosto jää tyhjäksi ja levynkäyttö kasvaa edelleen uudelleennimetyssä. Signalisoi prosessille uudelleenavausta tai kierrätä kopioi-ja-katkaise-strateigialla ja hyväksy kopiointi-ikkuna.
Hakemisto, omistus ja käyttöoikeudet ovat osa suunnittelua. Daemon voi käynnistyksen jälkeen toimia ilman erioikeuksia, eikä rootin asennuksen aikana luoma hakemisto välttämättä ole silloin kirjoitettava. Valmistele se paketoinnin tai käyttöönoton kautta sen sijaan, että korjaisit käyttöoikeuksia häiriön aikana.
Palvelunhallinta pitää toista kopiota
systemd kaappaa vakiotulosteen ja vakiovirheen oletuksena, joten unit ilman nimenomaista uudelleenohjausta sisältää jo lokin. Tiedostodirektiivin lisääminen antaa kaksi virtaa, joilla on eri säilytys, eri lukijat ja eri aikaleimat.
Se ei ole automaattisesti väärin, mutta sen on oltava päätös. Pidä käynnistysmerkintä journalissa, koska ennen määritetyn tiedoston olemassaoloa tapahtuvat virheet eivät näy missään muualla. Tee sitten tiedostosta auktoritatiivinen tasaisen tilan tapahtumille ja kerro se runbookissa. Kaksi auktoritatiivista virtaa tarkoittaa kahta vastausta jokaiseen kysymykseen.
Vahvista valinta testillä, joka epäonnistuu tarkoituksella. Käynnistä daemon lukukelvottomalla varmenteella ja katso, kumpi virta tallentaa virheen.
Monisanaisuus ei ole sama asia kuin käyttökelpoinen yksityiskohta
Korkeampi verb-taso lisää rivejä ja jossain vaiheessa rivejä, joita kukaan ei lue. Taso 3 on järkevä vakiotila useimmille käyttöönotoille, kun taas taso 4 ja sitä korkeammat sopivat rajattuun tutkimukseen, jossa on tunnettu kysymys. Toistojen vaimentaminen vähentää kohinaa, mutta se ei saa peittää sitä, kuinka usein tapahtuma toistuu. Aseta taso, jonka voit pitää, ja nosta sitä vain nimetylle tutkimukselle, jolla on loppu.
Pidä instanssin identiteetti ja aikaleimat merkinnässä. Uudelleenyhteys näyttää täsmälleen ensimmäiseltä yhteydeltä, kun tiedostoon on lisätty kuukausia ja instanssin nimi puuttuu.
Varo, mitä muuta tiedostoon päätyy. Uudelleenohjattu tuloste voi sisältää kutsuttujen skriptien tekstiä, ja apuohjelma, joka tulostaa ympäristönsä, laittaa tunnukset ja avainpolut luettavaan lokiin. Käsittele lokin käyttöoikeuksia turvallisuuspäätöksenä, vaikka daemon itse ei tulostaisi mitään arkaluontoista.
Kierrätys, säilytys ja uudelleenlataavat signaalit
Päätä säilytyksestä levyn omistajan kanssa ja aseta se ennen kuin taltio päättää puolestasi. Uudelleenlataussignaali ei ole lokin ylläpitokomento: väärän lähettäminen käynnistää tunnelin uudelleen ja katkaisee jokaisen käyttäjän yhteyden. Kirjoita uudelleenavausmenettely kierrätyssäännön viereen, jotta ne kaksi eivät ajaudu erilleen.
Tuloksen pitäisi olla palvelu, jonka operaattori pystyy kuvaamaan: yksi auktoritatiivinen virta, jokainen tapahtuma elinkaaressa paikallaan ja merkintä, joka on saatavissa keräämättä jokaista salaisuuksia sisältävää tiedostoa koneelta. Tämä kuvaus on suunnittelun hyväksymistesti, ja sen tarkistaminen ennen seuraavaa häiriötä on halpaa.