Mistä VPN-palvelimen levynkasvu tulee ja miten se rajataan
Lokien kasvu, uudelleennimetty inode ja rajaamaton journal näyttävät kaikki yhdeltä täydeltä levyltä. Mittaa vauhti, rajaa kirjoittaja ja varmista raja uudelleenkäynnistyksen jälkeen.
Tunneli lakkaa hyväksymästä yhteyksiä, palvelu käynnistyy uudelleen kahdesti, eikä sen lokiin sen jälkeen ilmesty mitään. Se hiljaisuus on vihje, sillä loki täytti levyn eikä daemonilla ole paikkaa kirjoittaa virhettä, jota odotat. Mikä tahansa pitkään käynnissä oleva palvelu voi päätyä siihen tilaan, ja logs-nimisen hakemiston poistaminen korjaa sen harvoin. Kestävä ratkaisu on tietää, mikä säilö kasvoi, kuka omistaa sen säilytyskäytännön ja päästikö kirjoittaja tilan todella irti.
Etsi kasvanut säilö ja sen kasvuvauhti
Aloita kahdesta helposti unohtuvasta luvusta: vapaat lohkot ja vapaat inodet. Tiedostojärjestelmä voi ilmoittaa runsaasti tilaa ja silti kieltäytyä kirjoituksesta, koska inodeja ei ole jäljellä, mitä tapahtuu, kun palvelu luo yhden tiedoston istuntoa kohden. Kysy molemmat lukemat samalta taltiolta, sillä vastaukset voivat olla eri mieltä samana iltapäivänä. Tee se, kun isäntä on terve, jotta luvut kuvaavat normaalia toimintaa eivätkä katkoa.
df -h /var
df -i /varKohdista kasvu sitten omistajalle. Journalin oma käyttöluku kattaa vain journalin, eikä se koskaan näe daemonia, joka kirjoittaa polkuun asetustiedostostaan.
journalctl --disk-usageKasvu ajan myötä kertoo enemmän kuin yksikään yksittäinen lukema. Päälle jäänyt virheenjäljitystaso, uudelleenyrityssilmukka, joka kirjaa jokaisen yrityksen, tai kaappaus tiedosto, jota kukaan ei pysäyttänyt: kukin niistä voi näyttää hetkessä tavalliselta ja tuntia myöhemmin hälyttävältä. Ota yksi lukema, odota kiireinen jakso, ota toinen ja jaa välillä. Vauhti, jonka voit ilmoittaa, muuttaa kapasiteetin päätökseksi eikä tulipaloksi.
Miten rotaatio tekee avoimelle tiedostolle
Lokitiedosto on nimi, joka osoittaa inodeen, ja tila palaa vasta, kun viimeinen avoin kahva sulkeutuu. Nimeä tiedosto uudelleen ja kirjoittaja jatkaa saman inoden täyttämistä; poista se ja kirjoittaja jatkaa inoden täyttämistä ilman mitään nimeä. Juuri siksi lause ”poistin tiedoston ja levy pysyi täynnä” kuvaa tiedostokahvoja eikä rikkinäistä tiedostojärjestelmää. Kirjoittajan uudelleenkäynnistys tai sellaisen rotaatiotilan valinta, joka avaa tiedoston uudelleen, palauttaa lohkot todella.
lsof +L1 | headKäytäntö kuuluu komponentille, joka kirjoittaa tiedoston. Journal pakottaa omat tallennusrajansa asetustiedostostaan, kun taas tiedostopohjainen palvelu luottaa yleensä logrotateen joko luontisäännöllä ja uudelleenavausignaalilla tai paikallaan katkaisun tilalla, kun kirjoittaja ei voi avata tiedostoa uudelleen. Vahvista päätös ensin muuttamatta mitään:
logrotate -d /etc/logrotate.confMinne raja kuuluu ja kuinka suuri sen pitäisi olla
Aseta raja sinne, missä kirjoittaja on määritetty, ei liitospisteeseen. Koko taltion kiintiö suojaa isäntää mutta ei kerro, mikä palvelu kaatuu ensin, ja globaali siivouskomentosarja poistaa usein todisteet, joita seuraava tapaus tarvitsee. Journalin raja, maksimikoolla varustettu rotaatiomäärä ja sovellustason säilytys rajaavat kukin yhtä tuottajaa. Yhdessä ne rajaavat kokonaisuuden; erikseen kukin on arvaus.
Mitoita raja siltä säilytykseltä, jonka voit perustella, älä vapaasta tilasta. Jos katsaus tarvitsee viikon yhteydenottoja, journalin on pidettävä viikko kiireisimmällä odotetulla vauhdilla, ja se vauhti on aiemmin mitattu luku.
Virheenjäljitysloki on tilapäinen tila, jonka aloitusaika kirjataan, ei tallennussuunnitelma. Pidä yksityisyyskysymys samassa päätöksessä, koska yhteyslokit kantavat osoitteita ja tunnisteita. Pidempi säilytys on myös tietojenkäsittelyvalinta, ja sen pitäisi tehdä joku, joka tuntee molemmat rajoitukset.
Varmista raja uudelleenkäynnistyksen jälkeen
Säilytysmuutos, joka kestää seuraavaan uudelleenkäynnistykseen, ei ole muutos. Käynnistä kirjoittaja uudelleen, vahvista että uusi raja tulee voimaan ja tarkista, että rotaatio toimii vielä sen jälkeen. Journalin osalta yksi uudelleenkäynnistys ja yksi käyttölukema vastaavat molempiin kysymyksiin:
systemctl restart systemd-journald
journalctl --disk-usageTiedostopohjaisen palvelun kohdalla aja rotaatiotyö kerran käsin ja vahvista, että tiedosto korvattiin ja kahva avattiin uudelleen. Vanhan kahvan säilyttävä kirjoittaja läpäisee pinnallisen tarkistuksen ja epäonnistuu seuraavan kerran, kun taltio täyttyy. Seuraa vapaata tilaa testin aikana, sillä tiedosto, joka pieneni mutta tila ei palannut, tarkoittaa, että vanha inode on yhä pidettynä.
Vertaa seuraavaa lukemaa tähän
Palaa viikon kuluttua ja vertaa kasvuvauhtia kirjattuun. Vastaava vauhti tarkoittaa, että raja pitää ja kuormitus on vakaa; kaksinkertaistunut vauhti tarkoittaa, että jokin muuttui, ja hyödyllinen kysymys on mikä. Lue ensin lokin sisältö toistuvien virheiden varalta, sillä uudelleenyrityssilmukka on sekä oire että määrän syy. Tarkista sitten kaikki äskettäin käyttöön otettu, mukaan lukien virheenjäljitystasot, jotka kytkettiin päälle tapauksen aikana eikä koskaan pois.
Pidä varmuuskopiot saman taltion ulkopuolella tai hyväksy, että yksi täysi levy vie varmuuskopion mukanaan. Kopio, joka kirjoitetaan suojattavalle isännälle, ei ole palautussuunnitelma, ja sen säilytys tarvitsee oman vastauksensa.
Kirjoita ylös, mitä säilytetään, missä, kuinka kauan ja kuka sen poistaa. Se lause on toimitettava tulos, ja se on ainoa osa tästä työstä, joka selviää seuraavasta uudelleenkäynnistyksestä.