Sistemes

Un vigilant de disc amb cron

Monitoritzar l'espai lliure d'un servidor amb un script i cron: silenci quan tot va bé, avís clar quan no.

Un vigilant de disc amb cron

Fa temps que una pregunta em ronda: com vigilar un servidor sense muntar tot un sistema de monitoratge corporatiu? Hi ha solucions per tot arreu, però per a un servidor casolà em semblen un canó per matar mosques. La meva resposta: cron i un script.

El problema concret

A fxserver, el disc on viu /home s’omple ràpid quan alguna automatització es descontrola. Un disc ple és una alarma silenciosa: les bases de dades deixen d’escriure, els logs creixen sense control i al final res funciona.

La idea

El programa és mínim: comprovar l’espai lliure, netejar cachés si cal, i avisar només si després de netejar el problema continua.

  • Si queda molt espai: silenci. No molesta.
  • Si queda poc: primer intenta netejar allò regenerable (cachés que es tornen a descarregar soles).
  • Si després de netejar encara queda poc: avís clar, amb la causa sospitosa.

El silenci és la part més important del disseny: si només parla quan hi ha problema, quan parla hi fas cas.

Per què cron i no un servei

Cron corre sol, cada 30 minuts, des de fa mesos, i no ha demanat mai res a canvi. No necessita dimonis, ni dashboards, ni res que mantenir: un script en bash i una línia al crontab. Per a la mida del meu projecte, aquest equilibri és exactament el que tocava.

El detall que m’ha après la realitat

La primera versi oscil·lava entre el silenci i les alarmes inútils. Vaig aprendre que no és el mateix “queden 2 GB” que “he netejat i continuen baixant”: el segon és una fuita real, el primer és manteniment normal. Distingir-los és la diferència entre un vigilant útil i un que acaba ignorant-se.

I una lliçó que va costar més: quan alguna cosa s’escriu a disc sota un punt de muntatge que després s’oculta, du no la veu però el disc sí que se n’adona. Les eines enganyen si no saps què hi ha a sota.