El mundo de la monitorización es esencial para los administradores de sistemas, ya que nos permite mantenernos informados de los eventos que se suceden en nuestra infraestructura, o bien puede ayudarnos a encontrar fácilmente la raíz de un problema en un servidor concreto.

 

En este artículo realizaré un breve recorrido por las diferentes formas de monitorizar servidores Linux, desde las más básicas hasta las monitorizaciones de infraestructuras.

 

1. Monitorización de un servidor Linux: Consola

 

La primera forma y mas rápida de monitorizar un servidor Linux es, obviamente, utilizando nuestra querida terminal. Voy a catalogar algunos comandos de monitorización según el ámbito que abarcan. Existen muchísimos comandos de monitorización e igual se me escapan algunos en este artículo, así que te animo a incluir los comandos que falten en los comentarios ;). Bueno, vamos a verlos:

 

 

  • Visualización general: top, htop, dstat. Estos comandos nos permiten una rápida visualización del sistema en general: carga de CPU, uso de memoria, información de procesos, etc. El comando htop ofrece una interfaz visual mas agradable que top , sin embargo en situaciones críticas (sobrecarga del servidor) es preferible utilizar top , ya que tardarás menos tiempo en que te aparezca la pantalla para saber que es lo que esta saturando el sistema. La herramienta dstat también permite una personalización de lo que se desea monitorizar, mostrando en columnas información referente a discos duros (traza de lectura y escritura), cpu, paginación, interrupciones y mucho mas.
 

 

 

  • Visualización de procesos: ps. El comando ps nos muestra información detallada de los procesos del sistema, pudiendo filtrar por usuarios y detalles de procesos. Las opciones mas usuales de utilizar pueden ser aux o fax , indicando la opción a junto con x para incluir todos los procesos, y las opciones f y u que se utilizan para seleccionar la visualización en árbol o detallada, respectivamente.
 

 

 

  • Visualización de ficheros y servicios: lsof. En este apartado hablaré del comando lsof que nos permite mostrar los ficheros abiertos asociados tanto a procesos como a servicios (sockets, tuberías, etc). Un ejemplo de ello es el comando lsof -i , que permite ver los sockets abiertos que tenemos en el sistema. Si ejecutamos lsof sobre un fichero o directorio, podremos ver si éste esta siendo ocupado por algún proceso.
 
  • Visualización de la red: netsat, route, iptraf, iftop,etc. En este apartado existen muchas herramientas para monitorizar el estado de nuestra red. Los clásicos son netstat para el estado de las conexiones, route para analizar las tablas de rutas, y algunos mas avanzados con menús como pueden ser iptraf , bmon , iftop , etc.
 
  • Visualización del disco: df, iotop. Para la monitorización del disco contamos con varios comandos, dependiendo de lo que queramos observar. Para visualizar el uso del disco tenemos el comando df , aunque también podemos sacar una visión mas amigable de esto con el comando discus . Si lo que queremos visualizar es el I/O del disco podemos utilizar el comando iotop , que nos muestra los procesos del sistema y su trabajo de interrupción en el disco.
 
 

2. Monitorización de un servidor Linux: Aplicaciones de interfaz web

 

El segundo acercamiento para la monitorización de nuestros sistemas se basa en aplicaciones montadas sobre un servidor web.

Existen muchas y muy diversas, como por ejemplo cacti , collectd , mrtg o graphite . Yo personalmente suelo utilizar munin debido a la sencillez que tiene en su instalación y configuración para un solo nodo. Hay que recordar que estas aplicaciones dependen de un servidor web, así que es necesario tener instalado apache , nginx u otro servidor web para poder utilizarlas.

Imagen 0 en 3 Formas de monitorizar servidores Linux

 

 

3. Monitorización de infraestructuras

 

En nuestro ámbito profesional es muy importante conocer este tipo de software ya que el control de las infraestructuras es esencial para todo administrador de sistemas. Una aplicación de este tipo debidamente configurada nos ahorrará muchas incidencias en las que debamos actuar, y nos mantendrá informados de las alertas que se puedan producir en nuestro trabajo diario.

 

Algunas de las aplicaciones web citadas antes permiten la monitorización de infraestructuras, aunque pecan de no tener amplias funcionalidades para la prevención de alertas, o el envío de notificaciones por diversos medios.

 

En mi experiencia como administrador he trabajado con muchas aplicaciones, pero destacaré las dos con las que suelo trabajar hoy día: Nagios y Zabbix .

 

Ambas nos permiten controlar tanto los servicios de red como los recursos hardware de los equipos, pudiendo ampliar dichas funcionalidades gracias a plugins y scripts proporcionados por nosotros. Tienen sistemas de alertas que nos permiten indicar varios niveles de alerta a diferentes medios dependiendo del tiempo que pase la incidencia activa, así como programar acciones para intentar solventar la incidencia de forma automática. Un ejemplo de esto es, en la monitorización de un servidor web, se puede programar que cuando se caiga el servicio lo primero que haga sea intentar levantarlo de nuevo y, si persiste la alerta, establecer que primero se envíe un correo electrónico al responsable, y si aun persiste enviar un SMS al siguiente responsable.

Imagen 1 en 3 Formas de monitorizar servidores Linux

 

Os preguntaréis cuál es mejor....bueno, en mi experiencia puedo decir que ambos son muy buenos y es difícil decantarse por uno...es cuestión de gustos y de la infraestructura que se tenga. Nagios tiene una curva de aprendizaje más sencilla que Zabbix , que quizás al inicio sea una desventaja, pero una vez superada la curva Zabbix puede ofrecer mucha más complejidad de configuración ganando en eficiencia a Nagios .

 

Otra de las grandes diferencias es que Zabbix trabaja con base de datos y Nagios por defecto no, ya que las consultas las realiza al vuelo. Esto puede dar bastantes quebraderos de cabeza al monitorizar grandes infraestructuras ya que hay que afinar mucho la configuración del servicio para no recibir «falsos negativos» debido al uso o sobrecarga del ancho de banda de la red.

 

Bueno, espero que este artículo os haya aclarado un poco más el mundo de la monitorización y dentro de poco tendré alguna sorpresa más que daros referente a este tema ;)

 

 

Nos vemos en el curso de preparación a la certificación oficial Linux LPIC-1 Examen 101 :D