Od kod raste disk strežnika VPN in kako ga omejiti
Rast dnevnikov, preimenovani inode in neomejen journal so vsi videti kot en sam poln disk. Izmerite hitrost, omejite pisca in preverite omejitev po ponovnem zagonu.
Predor neha sprejemati povezave, storitev se dvakrat znova zažene, nato pa se v njenem dnevniku ne pojavi nič. Ta tišina je namig, saj je disk napolnil prav dnevnik in demon nima kam zapisati napake, na katero čakate. Vsaka dolgotrajna storitev lahko pride v to stanje, brisanje imenika z imenom logs pa to redko popravi. Trajna rešitev je vedeti, katero skladišče je zraslo, kdo ima politiko njegovega hranjenja in ali je pisec prostor res sprostil.
Poiščite skladišče, ki je zraslo, in hitrost, s katero je raslo
Začnite z dvema številkama, ki ju je lahko pozabiti: prosti bloki in prosti inodi. Datotečni sistem lahko poroča o veliko prostora in vseeno zavrne pisanje, ker mu je zmanjkalo inodov, kar se zgodi, ko storitev ustvari eno datoteko na sejo. Zahtevajte oba odčitka na istem nosilcu, ker se odgovora lahko razhajata še isti popoldan. Naredite to, dokler je gostitelj zdrav, da številke opisujejo običajno delovanje in ne izpad.
df -h /var
df -i /varNato rast pripišite lastniku. Lastna številka porabe journala pokriva samo journal in nikoli ne bo videla demona, ki piše na pot iz svoje konfiguracijske datoteke.
journalctl --disk-usageRast skozi čas pove več kot katero koli posamezno merjenje. Pustljena vklopljena raven za razhroščevanje, zanka ponovnih poskusov, ki beleži vsak poskus, ali datoteka zajema, ki je nihče ni ustavil: vsaka od tega je lahko v enem trenutku videti običajna, uro pozneje pa zaskrbljujoča. Vzemite eno merjenje, počakajte skozi zasedeno obdobje, vzemite drugo in delite z intervalom. Hitrost, ki jo znate navesti, spremeni zmogljivost v odločitev in ne v požar.
Kaj rotacija naredi z odprto datoteko
Dnevniška datoteka je ime, ki kaže na inode, in prostor se vrne šele, ko se zapre zadnji odprti ročaj. Preimenujte datoteko in pisec še naprej polni isti inode; izbrišite jo in pisec še naprej polni inode brez vsakršnega imena. Zaradi tega stanja stavek „izbrisal sem datoteko, disk pa je ostal poln“ opisuje datotečne deskriptorje in ne pokvarjenega datotečnega sistema. Ponovni zagon pisca ali izbira načina rotacije, ki datoteko znova odpre, je tisto, kar bloke v resnici vrne.
lsof +L1 | headPolitika pripada komponenti, ki datoteko piše. Journal uveljavlja svoje omejitve shranjevanja iz svoje konfiguracijske datoteke, medtem ko se storitev na osnovi datotek običajno opira na logrotate, bodisi s pravilom ustvarjanja in signalom za ponovno odpiranje bodisi z načinom obrezovanja na mestu, ko pisec ne more znova odpreti. Najprej potrdite odločitev, ne da bi karkoli spremenili:
logrotate -d /etc/logrotate.confKam sodi omejitev in kako velika naj bo
Postavite omejitev tja, kjer je konfiguriran pisec, ne na točko priklopa. Kvota na celotnem nosilcu ščiti gostitelja, a ne pove, katera storitev odpove prva, globalna skripta za čiščenje pa ponavadi izbriše dokaze, ki jih bo potreboval naslednji incident. Omejitev journala, število rotacij z največjo velikostjo in hramba na ravni aplikacije vsaka omejuje enega proizvajalca. Skupaj omejujejo celoto; posamično je vsaka ugibanje.
To omejitev določite glede na hrambo, ki jo lahko zagovarjate, ne glede na prosti prostor. Če pregled potrebuje teden poskusov povezave, mora journal držati teden pri najbolj zasedeni pričakovani hitrosti, in ta hitrost je prej izmerjeno število.
Dnevnik razhroščevanja je začasen način z zabeleženim začetnim časom, ne načrt shranjevanja. Vprašanje zasebnosti držite v isti odločitvi, ker dnevniki povezav nosijo naslove in identifikatorje. Daljša hramba je tudi izbira obdelave podatkov in sprejeti bi jo moral nekdo, ki pozna obe omejitvi.
Preverite omejitev po ponovnem zagonu
Sprememba hrambe, ki zdrži do naslednjega ponovnega zagona, ni sprememba. Znova zaženite pisca, potrdite, da nova omejitev velja, in preverite, da rotacija po tem še deluje. Za journal en ponovni zagon in en odčitek porabe odgovorita na obe vprašanji:
systemctl restart systemd-journald
journalctl --disk-usagePri storitvi na osnovi datotek enkrat ročno zaženite opravilo rotacije in potrdite, da je bila datoteka zamenjana in deskriptor znova odprt. Pisec, ki obdrži stari ročaj, prestane površinski pregled in odpove naslednjič, ko se nosilec napolni. Med preskusom spremljajte prosti prostor, ker datoteka, ki se je zmanjšala, prostor pa se ni vrnil, pomeni, da se stari inode še vedno drži.
Primerjajte naslednje merjenje s tem
Vrnite se po tednu in primerjajte hitrost rasti z zabeleženo. Ujemajoča se hitrost pomeni, da omejitev drži in je obremenitev stabilna; podvojena hitrost pomeni, da se je nekaj spremenilo, in koristno vprašanje je kaj. Najprej preberite vsebino dnevnika zaradi ponavljajočih se napak, ker je zanka ponovnih poskusov hkrati simptom in vzrok obsega. Nato preverite vse na novo omogočeno, vključno z ravnmi razhroščevanja, vklopljenimi med incidentom in nikoli izklopljenimi.
Varnostne kopije hranite zunaj istega nosilca ali sprejmite, da en sam poln disk kopijo odnese s seboj. Kopija, zapisana na gostitelja, ki ga varuje, ni načrt obnovitve, in njena hramba potrebuje svoj odgovor.
Zapišite, kaj se hrani, kje, kako dolgo in kdo to odstrani. Ta stavek je rezultat in je edini del tega dela, ki preživi naslednji ponovni zagon.