4.3. Monitorización

La monitorización del sistema operativo consiste en la supervisión de su funcionamiento con el fin de detectar problemas o adelantarse a ellos[1]. Hay, pues, dos modos de llevarla a cabo:

  • La reactiva que consiste en descubrir un problema que ya ha surgido, con el fin de buscarle una solución apropiada.

  • La proactiva que consiste en vigilar el funcionamiento del sistema para medir su rendimiento, detectar debilidades y adelantarse a los problemas.

Para entender completamente estos dos tipos de monitorización consideremos un problema real: que la partición raiz de nuestro sistema se llene por completo. Si esta situación ocurre, el sistema empezará a dar visos de ello con mensajes de que, por ejemplo, no es capaz de escribir en disco. Sospechando que esto pueda ser el problema, podemos usar df para confirmar que la ocupación está al 100%. La secuencia de hechos sería la siguiente:

  • El sistema deja de funcionar bien.

  • Sospechamos que hay algún problema en la escritura de disco.

  • Comprobamos con df que el disco está lleno.

La labor de monitorización puede que no haya acabado aquí, porque sabida la causa deberíamos indagar por qué hemos llegado a este punto: si la causa es que hemos instalado más aplicaciones de las que previmos en un principio, no nos quedará más remedio que ampliar el tamaño de la partición; si la causa es que hicimos el mal diseño de mezclar el sistema con los datos y estos últimos se nos han comido el espacio, podríamos adoptar la solución anterior, o bien, sacar los datos a una partición aparte; si, por el contrario, no es ninguna de estas dos causas, entonces aún no hemos acabado de monitorizar, porque deberemos aún descubrir qué es lo que ha hecho que nos quedemos sin espacio. En ese caso podríamos usar du <du> para descubrir qué parte del árbol de directorios ha crecido desmesuradamente[2].

Sea como sea, este es un ejemplo de monitorización reactiva: ocurre el problema y, como consecuencia, intentamos averiguar qué ha ocurrido con todas las herramientas que nos brinda el sistema.

Sin embargo, podríamos adoptar otra estrategia: en vez de esperar a que ocurre el problema, podemos escribir un sencillo script que con la salida de df compruebe si una partición ha alcanzado más del 90% de ocupación; y en caso de que eso ocurra, envíe un correo a nuestra dirección de administrador que revisamos todos los días. Por último, el script lo incluimos en la planificación de cron para que se ejecute todos los días. Este es otro enfoque para el mismo problema: un enfoque proactivo ya que, mediante una supervisión continua, nos adelantamos al problema.

Como los problemas son innumerables, casi cualquier herramienta vista hasta ahora puede convertirse en una herramienta de monitorización reactiva; y casi con cualquier herramienta podemos construir una script para la monitorización proactiva. Algunas son recurrentes en las labores de monitorización como du o df o las relacionadas con la consulta de procesos. Bajo este epígrafe atenderemos tres aspectos de la monitorización no estudiados aún:

Notas al pie