10. Herramientas de supervisión del sistema para Ubuntu Server: guía completa

Dominar las herramientas de supervisión del sistema para Ubuntu Server es esencial para garantizar un rendimiento óptimo, diagnosticar problemas y mantener la fiabilidad del sistema. En este tutorial, exploraremos las mejores herramientas de supervisión del sistema disponibles para servidores Ubuntu, incluida la supervisión de recursos en tiempo real, la E/S de disco, la actividad de red y los paneles de servidor.


Artículo anterior:

01. Introducción a Ubuntu Server – SysOSX: AI & Cloud

02. Cómo configurar tu primer servidor Ubuntu: guía para principiantes – SysOSX: AI & Cloud

03.Dominar la línea de comandos de Linux para Ubuntu Server – SysOSX: AI & Cloud

04. Gestión de usuarios y permisos en Ubuntu Server: guía completa – SysOSX: AI & Cloud

05. Fundamentos de redes para Ubuntu Server: guía completa – SysOSX: AI & Cloud

06. Instalación y gestión de software en Ubuntu Server: guía completa – SysOSX: AI & Cloud

07.Aplicación de parches y actualización de Ubuntu Server: guía completa – SysOSX: AI & Cloud

08. Protección de tu servidor Ubuntu: pasos prácticos para reforzarlo y protegerlo – SysOSX: AI & Cloud

09. Auditoría y registro en el servidor Ubuntu



Usar htop y top para la supervisión de recursos en tiempo real

Introducción a htop y top

Ambas htop y top son herramientas de línea de comandos esenciales para supervisar los recursos del sistema en tiempo real. Muestran información como el uso de la CPU, el consumo de memoria y los procesos en ejecución.

Instalación y ejecución de htop (viene instalado de forma predeterminada)

Para instalar htop, ejecuta:

sudo apt update
sudo apt install htop

Para iniciar htop, simplemente escribe:

htop

Funciones clave y casos de uso de htop

htop es ideal para:

  1. Identificar procesos que consumen muchos recursos: puedes ordenar los procesos por uso de CPU o memoria para encontrar rápidamente los que más recursos consumen.
  2. Terminar procesos: Usa F9 para terminar procesos que no responden o problemáticos directamente desde la interfaz de htop .
  3. Supervisar hilos: expande los procesos para ver los hilos individuales y su uso de recursos.
  4. Personalizar columnas: Pulsa F2 para configurar la pantalla y añadir o quitar métricas como la E/S de disco o la utilización de red.

Usar top

top es una herramienta más sencilla, preinstalada en los servidores Ubuntu. Para ejecutarla:

top

Comandos clave para top:

  • Pulsa Shift + p para ordenar por uso de CPU.
  • Pulsa Shift + m para ordenar por uso de memoria.
  • Pulsa q para salir.

Instalación y configuración de sysstat para métricas de rendimiento

¿Qué es sysstat?

sysstat es un conjunto de herramientas para recopilar y notificar métricas de rendimiento del sistema a lo largo del tiempo. Incluye utilidades como iostat, vmstat, y sar.

Instalación de sysstat

Para instalar sysstat:

sudo apt update
sudo apt install sysstat

Configuración de sysstat

Habilita la recopilación de datos editando el archivo de configuración:

sudo nano /etc/default/sysstat

Cambia ENABLED="false" a ENABLED="true". Guarda y sal, y reinicia el servicio:

sudo systemctl restart sysstat

Usar sysstat y sus herramientas

  • iostat: supervisar el rendimiento de E/S de disco.iostat
  • vmstat: supervisar las estadísticas de memoria, CPU y E/S.vmstat
  • sar: generar informes históricos de la actividad del sistema. sar -u 5 10 # CPU usage every 5 seconds for 10 intervals

Supervisión de la E/S de disco y la actividad de red

Supervisión de E/S de disco con iotop

Usa herramientas como iostat (de sysstat) o iotop para supervisar la E/S de disco en tiempo real.

Para instalar iotop:

sudo apt update
sudo apt install iotop

Ejecuta iotop con:

sudo iotop

Sin embargo, algunos usuarios pueden encontrarse con el siguiente error al ejecutar iotop:

CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %

Cómo corregir el error de iotop .

Este problema se produce porque al kernel le falta la función CONFIG_TASK_DELAY_ACCT , que es necesaria para que iotop muestre los porcentajes de SWAPIN e IO. Afortunadamente, esto se puede resolver actualizando la configuración de GRUB.

Pasos para corregir el error

  • Edita el archivo de configuración de GRUB:
sudo nano /etc/default/grub
  • Añade delayacct a la opción GRUB_CMDLINE_LINUX_DEFAULT . Si la línea está inicialmente vacía (GRUB_CMDLINE_LINUX_DEFAULT=""), actualízala de la siguiente manera: GRUB_CMDLINE_LINUX_DEFAULT="delayacct" Si la línea ya contiene otras opciones, añade delayacct a las opciones existentes, separado por un espacio. Por ejemplo:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash delayacct"
  • Actualiza GRUB para aplicar los cambios:
sudo update-grub
  • Reinicia el servidor:
 sudo reboot

    Después del reinicio, el error debería estar resuelto y iotop funcionará correctamente.

    Usar `iotop

    Una vez resuelto el problema, puedes ejecutar iotop para supervisar la E/S de disco:

    sudo iotop
    
    

    Qué puedes hacer con iotop

    • Identificar procesos que causan una E/S de disco alta.
    • Supervisar las operaciones de lectura/escritura en tiempo real.
    • Ordenar procesos por uso de disco.

    Supervisión de la actividad de red

    Usar iftop

    Para instalar iftop:

    sudo apt update
    sudo apt install iftop
    

    Ejecuta iftop con:

    sudo iftop
    
    

    Usar nload

    Para instalar nload:

    sudo apt update
    sudo apt install nload
    

    Ejecuta nload con:

    nload
    
    

    Configuración de paneles de servidor con Cockpit

    ¿Qué es Cockpit?

    Cockpit es un panel gráfico basado en la web para supervisar y gestionar servidores. Ofrece información en tiempo real sobre la CPU, la memoria, el uso del disco y la actividad de red.

    Instalación de Cockpit

    Para instalar Cockpit:

    sudo apt update
    sudo apt install cockpit
    

    Acceso a Cockpit

    Inicia el servicio de Cockpit:

    sudo systemctl start cockpit.socket
    sudo systemctl enable cockpit.socket
    

    Accede al panel navegando a:

    https://<your-server-ip>:9090
    
    

    Funciones de Cockpit

    • Supervisar el rendimiento del sistema de forma visual.
    • Gestionar servicios, registros y cuentas de usuario.
    • Ver el uso del disco y la actividad de red.

    Si bien herramientas como htop, sysstat, y Cockpit son excelentes para la mayoría de las necesidades de supervisión de servidores, existen otras herramientas avanzadas que pueden proporcionar información más detallada y una mejor visualización para entornos complejos. A continuación, se presentan otras herramientas de supervisión que puedes considerar:

    Prometheus y Grafana

    Prometheus

    Prometheus es un conjunto de herramientas de supervisión y alertas de código abierto diseñado para la fiabilidad y la escalabilidad. Se usa ampliamente en entornos nativos de la nube y es especialmente adecuado para supervisar sistemas distribuidos y microservicios.

    Funciones clave:

    • Base de datos de series temporales: almacena métricas de forma eficiente con marcas de tiempo.
    • Lenguaje de consulta potente (PromQL) para analizar métricas.
    • Sistema de alertas: integrado con herramientas como Alertmanager para las notificaciones.
    • Arquitectura basada en pull: Prometheus extrae activamente las métricas de los objetivos.

    Casos de uso:

    • Supervisar el uso de CPU, memoria y disco en varios servidores.
    • Seguir métricas específicas de la aplicación (p. ej., latencia de solicitudes HTTP, tasas de error).
    • Generar alertas por métricas inusuales o fallos del sistema.

    Instrucciones de instalación:
    Para instalar Prometheus en Ubuntu:

    sudo apt update
    wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz
    tar xvf prometheus-2.44.0.linux-amd64.tar.gz
    cd prometheus-2.44.0.linux-amd64
    ./prometheus
    

    Accede a Prometheus navegando a:

    http://<your-server-ip>:9090
    
    

    Ten en cuenta que tanto Prometheus como Cockpit usan el puerto 9090 de forma predeterminada; si los usas al mismo tiempo, es posible que quieras cambiar el puerto predeterminado:
    Resolución del conflicto de puertos entre Prometheus y Cockpit

    Opción 1: cambiar el puerto de Prometheus

    Puedes configurar Prometheus para que use un puerto diferente modificando su archivo de configuración.

    • Abre el archivo de configuración de Prometheus:
     nano prometheus.yml
    
    • Añade o modifica el indicador --web.listen-address en el comando de inicio de Prometheus o en el archivo de servicio para especificar un puerto diferente (p. ej., 9091):
    --web.listen-address=:9091
    
    • Reinicia Prometheus para aplicar los cambios:
     sudo systemctl restart prometheus
    
    • Accede a Prometheus con el nuevo puerto:
     http://<your-server-ip>:9091
    

      Opción 2: cambiar el puerto de Cockpit

      El puerto predeterminado de Cockpit también se puede cambiar si prefieres mantener Prometheus en el puerto 9090.

      • Crea un archivo de configuración personalizado para Cockpit:
      sudo nano /lib/systemd/system/cockpit.socket
      
      • Añade las siguientes líneas para especificar un puerto nuevo (p. ej., 9092): ListenStream=9092
      • Reinicia el servicio de Cockpit:
      systemctl daemon-reload
      systemctl restart cockpit.socket
      
      • Accede a Cockpit con el nuevo puerto: https://<your-server-ip>:9092

      Opción 3: usar un proxy inverso

      Si cambiar los puertos no es lo ideal, puedes usar un proxy inverso (p. ej., Nginx o Apache) para asignar ambos servicios a URL diferentes manteniendo sus puertos predeterminados.

      Por ejemplo:

      • Prometheus: 
      http://<your-server-ip>/prometheus
      
      • Cockpit: 
      http://<your-server-ip>/cockpit
      

        Recomendación

        Si usas ambas herramientas con frecuencia:

        Documenta los cambios de puerto para referencia futura o para otros administradores.

        Cambia Prometheus al puerto 9091 , ya que se accede a Cockpit más comúnmente a través de su puerto predeterminado 9090.


        Grafana

        Grafana es una potente plataforma de visualización que se integra perfectamente con Prometheus. Te permite crear paneles dinámicos para visualizar métricas y tendencias.

        Funciones clave:

        • Compatibilidad con varias fuentes: funciona con Prometheus, Elasticsearch, MySQL y más.
        • Paneles personalizados: crea gráficos interactivos, mapas de calor y tablas.
        • Alertas: configura alertas basadas en umbrales para métricas clave.
        • Uso compartido: comparte paneles fácilmente con los equipos.

        Casos de uso:

        • Visualizar métricas de rendimiento del servidor recopiladas por Prometheus.
        • Supervisar tendencias a lo largo del tiempo para una mejor planificación de la capacidad.
        • Mostrar datos de varias fuentes en un panel unificado.

        Instrucciones de instalación:
        Para instalar Grafana en Ubuntu:

        sudo apt update
        sudo apt install -y software-properties-common
        sudo wget -q -O - https://packages.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana.gpg > /dev/null
        sudo echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
        sudo apt update
        sudo apt install grafana
        sudo systemctl start grafana-server
        sudo systemctl enable grafana-server
        sudo systemctl status grafana-server
        

        Accede a Grafana navegando a:

        http://<your-server-ip>:3000
        
        

        Nagios

        Nagios es una de las herramientas de supervisión de infraestructuras más populares. Ofrece supervisión y alertas completas para servidores, dispositivos de red y aplicaciones. Es muy personalizable y admite complementos para ampliar su funcionalidad.

        Funciones clave:

        • Supervisar el estado del servidor: seguir el uso de CPU, memoria, disco y más.
        • Supervisión de red: detectar problemas con routers, conmutadores y cortafuegos.
        • Alertas: enviar notificaciones por correo electrónico, SMS o integraciones con Slack.
        • Amplia biblioteca de complementos: supervisar bases de datos, servidores web y otros servicios.

        Casos de uso:

        • Supervisar servidores y aplicaciones críticos en entornos de producción.
        • Recibir alertas cuando el espacio en disco se agote o la utilización de la CPU sea alta.
        • Supervisar el tiempo de actividad y la disponibilidad de los dispositivos de red.

        Instrucciones de instalación:
        Para instalar Nagios en Ubuntu:

        sudo apt install nagios4 nagios-plugins
        sudo a2enmod rewrite cgi
        systemctl restart apache2
        sudo systemctl status nagios4
        sudo systemctl enable nagios4
        sudo systemctl start nagios4
        
        

        Nagios requiere configuración adicional para definir los objetivos de supervisión. Para ver la configuración detallada, consulta la documentación de Nagios.


        Netdata: herramienta de supervisión del sistema en tiempo real

        Netdata es una herramienta de supervisión ligera y en tiempo real que ofrece información detallada sobre el rendimiento del sistema. Es fácil de instalar e incluye una bonita interfaz web para visualizar métricas.


        Paso 1: actualizar los paquetes del sistema

        Asegúrate de que tu sistema esté actualizado ejecutando los siguientes comandos en la terminal:

        sudo apt update
        sudo apt upgrade
        

        Paso 2: instalar Netdata

        Instala Netdata desde el repositorio predeterminado de Ubuntu:

        sudo apt install netdata
        
        

        Paso 3: configurar Netdata

        Edita el archivo de configuración de Netdata para permitir el acceso remoto:

        sudo nano /etc/netdata/netdata.conf
        
        

        Localiza el campo bind socket to IP y reemplaza 127.0.0.1 con la dirección IP de tu servidor:

        [global]
        bind socket to IP = <your-server-ip>
        
        

        Guarda el archivo y reinicia el servicio de Netdata:

        sudo systemctl restart netdata
        
        

        Paso 4: configurar el cortafuegos

        Permite el acceso al puerto predeterminado de Netdata (19999) y habilita el cortafuegos:

        sudo ufw allow 19999
        sudo ufw allow OpenSSH
        sudo ufw enable
        sudo ufw status
        

        Paso 5: acceder a la interfaz web de Netdata

        Abre tu navegador web y ve a:

        http://<your-server-ip>:19999
        


        Comparación de herramientas

        HerramientaIdeal paraFacilidad de usoVisualizaciónAlertas
        PrometheusRecopilación de métricas a gran escalaModeradaLimitadaSí
        GrafanaPaneles avanzadosFácilExcelenteSí
        NagiosSupervisión de infraestructurasModeradaBásicaSí
        NetdataSupervisión ligera en tiempo realFácilExcelenteSí

        Conclusión

        Supervisar tu servidor Ubuntu es fundamental para mantener el rendimiento, diagnosticar problemas y evitar tiempos de inactividad. Herramientas como htop, top, sysstat, Cockpit y otras brindan a los administradores la capacidad de supervisar los recursos de forma eficaz. Ya sea que prefieras herramientas de línea de comandos o paneles gráficos, esta guía cubre todo lo que necesitas para configurar un sistema de supervisión sólido.

        A continuación: Registro y supervisión centralizados

        En el próximo artículo, nos centraremos en el registro y la supervisión centralizados para agilizar aún más la gestión del servidor y el seguimiento del rendimiento. Los temas incluirán:

        • Configurar rsyslog o syslog-ng para el registro centralizado.
        • Reenviar registros a un servidor de registro remoto para una mejor organización y análisis.
        • Integrar tu servidor Ubuntu con plataformas de supervisión sólidas como Nagios, Zabbix, o Prometheus para obtener información más detallada sobre el estado y el rendimiento del sistema.

        ¡Mantente al tanto para aprender a centralizar tu infraestructura de registros y aprovechar las herramientas de supervisión para optimizar las operaciones del servidor de forma eficaz!

        2 thoughts on “10. System Monitoring Tools for Ubuntu Server: A Comprehensive Guide”

        Deja un comentario