Monitorea servidores GNU/Linux desde la Terminal



Últimamente trabajo demasiado tiempo monitorizando mis servidores para que su funcionamiento sea rápido y estable ahorrando el máximo de memoria y procesador. Para monitorizar estos servidores 24/7 uso varios programas que usan un entorno visual con gráficas y montones de datos en números elevados. Eso es bonito pero ese tipo de programas necesitan tiempo para generar resultados. Para monitorizar a tiempo real siempre he preferido la terminal y sus comandos.
Ajustando cualquier servidor lo que buscamos es un máximo ahorro en recursos de la maquina y que a su vez ofrezca el mejor servicio rápido y estable sin notarse que ahorras el máximo. Cuantos mas recursos ahorres mas tardaras por ejemplo en cambiar de maquina, ampliar su hardware o infraestructura con mas servidores, balanceos de carga, etc …



En mi caso ajusto el hardware para ahorrar mas en memoria que otra cosa porque los servidores que yo administro son básicamente servidores web. Los servidores web usan mas la memoria que el procesador y necesito que la lecturas de memoria sean reales. Entre ellas algunas nos ofrecen el pack completo de estadísticas y otras estadísticas mas especificas centrándose en solo un componente o servicio del sistema. A continuación tenemos las herramientas que suelo usar habitualmente para monitorizar servidores por si alguien ya no las conoce…

Comando - top

No lo tengo claro pero me atrevería a decir que es un Fork del comando Top mejorado en aspecto y manejo mejorado mostrando gráficos, es prácticamente igual con la diferencia de que ofrece varias opciones para interactuar con el sistema al igual que el comando top pero seleccionando el proceso y ejecutar la opción a golpe de tecla. Una de las opciones esenciales de este programa es la de matar procesos, necesario para administradores desesperados por la carga de su servidor. Desde una maquina con Debian o Ubuntu, su instalación es tan sencilla como teclear apt-get install htop y listo para ejecutar.

Comando - apachetop -f /var/log/apache2/access.log

ApacheTop como su nombre indica es una mezcla entre el comando Top pero especifico para el servidor web apache. Una vez ejecutado podemos ver a tiempo real la ultima vez que apache sirvió contenido, tiempo que lleva ejecutado el programa, peticiones por segundo, bytes enviados, recibidos y como no una lista a tiempo real sobre los procesos que va lanzando Apache. Excelente para ver a simple vista que se cuece dentro de nuestro servidor web. Siempre podríamos ver lo que pasa lanzando el comando Tail -f pero ApacheTop nos lo ofrece mucho mas claro, con menos detalles pero mas claro.

Comando - free -m

Otra de las cosas esenciales a la hora de monitorizar nuestro servidor es la carga del sistema. Con este comando podemos ver cuanto tiempo lleva arrancado, los usuarios conectados vía ssh y la carga del sistema especificado en carga

Comando - w

El comando w es el mismo que uptime pero también nos muestra los usuarios conectados al servidor de una forma mas especifica con usuario, terminal, dns, tiempo conectado, carga, servicio, es bonito.

Comando - vmstat

Otro comando para monitorizar nuestro servidor a nivel memoria Ram, Swap y procesador. Es sencillo y dispone de opciones para poder ver que tenemos cargado en memoria, lo que ocupa y su tamaño.

Comando - ps aux

El comando ps tiene varias combinaciones para especificar la monitorización. Con el podemos ver a simple vista el usuario que ejecuta el proceso, en numero de proceso, la carga que ocasiona en la CPU y la memoria. No esta nada mal para buscar algo especifico.

Comando - netstat -a –inet

Si lo que necesitamos es monitorizar el estado de las conexiones entrantes de la red podemos usar este comando con varias opciones. Esta te muestra el protocolo de conexión, Bytes enviados y recibidos, nombre de host conectado, servicio y estado.

Y si por comandos fuese nos podíamos pasar una vida entera creo yo. Estos son los que suelo usar contra mis servidores para enterarme de lo que pasa en cualquier momento sin la necesidad de tener un entorno gráfico. El saber defenderse delante de una terminal es algo esencial a la hora de administrar sistemas operativos GNU/Linux, recuerda que no siempre vas a tener acceso al servidor que necesites administrar y por lo tanto tampoco a su monitor.

Recuerdo las primeras practicas en casa de mis padres hace muchos años, no siempre he tenido servidores en el exterior para administrarlos remotamente. En mis inicios recuerdo que para hacerme la idea de que trabajaba remotamente, instale varias CPUs en la terraza y solo tenia en mi cuarto el router y el portátil. Conectarme a esos servidores remotamente por SSH que estaban fuera de mi cuarto sin ni siquiera escucharlos y montar cosas en ellos me facilitó mucho las cosas cuando empecé a trabajar remotamente pero en servidores alojados en empresas. Ahora es como si los tuviera en la terraza, desde aquí les doy las gracias a mis padres por entenderme