Hay herramientas que uno descubre tarde y piensa: ¿cómo estuve tanto tiempo sin esto? Cockpit es una de ellas.
La descubrí por casualidad mientras buscaba una forma de gestionar mis servidores Debian sin tener que conectarme por SSH para cada cosa pequeña. No quería Portainer porque no todo lo que corre en mis servidores es Docker. No quería montar otra aplicación en K3s solo para ver el estado de una máquina. Quería algo nativo, ligero y que funcionara sin fricción.
Cockpit lleva años en Fedora y RHEL por defecto. En Debian y Ubuntu hay que instalarlo, pero es un paquete oficial de la distribución. No es un proyecto de terceros con un docker-compose de 300 líneas. Es parte del ecosistema Linux.
Qué hace Cockpit exactamente#
La descripción corta: Cockpit es una interfaz web para administrar servidores Linux. Se instala en el propio servidor, escucha en el puerto 9090 y te da acceso a todo lo que normalmente harías por terminal.
La descripción más honesta: es como tener SSH con interfaz gráfica, más métricas de sistema, gestión de almacenamiento, gestión de red, control de servicios systemd, y un terminal web integrado por si necesitas hacer algo que la UI no cubre.
Lo que más me gusta es que no añade una capa de abstracción por encima del sistema. Cuando Cockpit muestra el estado de un servicio systemd, está leyendo systemd directamente. Cuando muestra el uso del disco, está leyendo lo mismo que df -h. No hay una base de datos intermedia, no hay estado propio que mantener. Si algo cambia en el servidor fuera de Cockpit, lo ves reflejado al instante.
Instalación en Debian/Ubuntu#
En Debian 12 y Ubuntu 22.04+, la instalación es un comando:
| |
Después habilitar e iniciar el servicio:
| |
Listo. Accedes a https://ip-de-tu-servidor:9090 y aparece la pantalla de login. Usas las credenciales de sistema, igual que con SSH.
El certificado SSL que genera por defecto es autofirmado, así que el navegador te advertirá. Para producción puedes poner un certificado de Let’s Encrypt en /etc/cockpit/ws-certs.d/, pero para uso interno en homelab yo lo dejo así y punto.
En Fedora y RHEL ya viene instalado. En AlmaLinux y Rocky Linux también está disponible en los repos base.
Lo que puedes hacer desde la interfaz#
Monitorización del sistema#
La pantalla principal te muestra CPU, RAM, tráfico de red y uso de disco en tiempo real. No es Grafana, no tiene historial de semanas, pero para ver qué está pasando en este momento en un servidor concreto es perfecto.
Cuando tengo un servidor que va lento y necesito ver si está bajo carga de CPU, si hay algo comiendo RAM o si hay un disco al límite, abro Cockpit en lugar de SSH + htop + df + iotop. Tres herramientas en una ventana del navegador.
La sección de logs muestra el journal de systemd filtrable por servicio, severidad y rango de tiempo. Buscar errores en un servicio específico sin recordar la sintaxis de journalctl es una pequeña victoria cotidiana.
Gestión de servicios#
Todos los servicios de systemd aparecen en una lista. Puedes ver cuáles están activos, cuáles fallaron, iniciar, detener, reiniciar y habilitar/deshabilitar en el arranque. Para servicios que gestiono manualmente y no en K3s, esto me ahorra mucho SSH.
El caso de uso más frecuente para mí: reiniciar un servicio después de cambiar un archivo de configuración. Dos clics en lugar de ssh servidor && sudo systemctl restart nombre-servicio.
Red#
La sección de red muestra todas las interfaces, sus IPs, el tráfico y te permite configurar IPs estáticas, bonding, VLANs y bridges. Lo he usado para configurar una interfaz bridge en un servidor antes de montar VMs con libvirt.
Para cambios de red que normalmente requerirían editar /etc/network/interfaces o NetPlan con cuidado de no perder la conexión SSH, la interfaz de Cockpit ayuda porque valida la configuración antes de aplicarla.
Almacenamiento#
Puedes ver todos los discos, particiones, LVMs y RAIDs. Crear volúmenes LVM, formatear particiones, montar filesystems. Para gestión de discos en servidores sin Proxmox o Unraid, esto es bastante completo.
Donde más lo uso: añadir un disco nuevo a un servidor y particionarlo. Sin memorizar la secuencia de fdisk, mkfs, mount y editar fstab. La UI lo guía paso a paso.
Terminal integrado#
Si necesitas hacer algo que la UI no cubre, hay un terminal web en la misma interfaz. No tienes que abrir otra pestaña del navegador o cambiar a tu cliente SSH. Está ahí, en la barra lateral.
La latencia es buena para uso en red local. Para conexiones remotas con mucha latencia no es ideal como reemplazo de SSH, pero para homelab donde todo está en la misma red funciona perfectamente.
Las extensiones que cambian el juego#
Cockpit tiene un sistema de módulos que amplía su funcionalidad. Algunos son oficiales, otros de la comunidad.
cockpit-machines#
Este es el que más impacto tiene. Instala una interfaz completa para gestionar máquinas virtuales a través de libvirt/KVM. Puedes crear VMs, asignarles RAM y CPU, gestionar discos, iniciarlas y pararlas, y conectarte a su consola directamente desde el navegador.
| |
No es Proxmox. No tiene migración en vivo, no tiene clusters, no tiene backup integrado. Pero para un servidor con dos o tres VMs que no necesita la complejidad de Proxmox, es más que suficiente. Tengo un servidor Debian corriendo unas pocas VMs de prueba y Cockpit + cockpit-machines es todo lo que necesito para gestionarlas.
cockpit-podman#
Para quien usa Podman en lugar de Docker, este módulo añade una UI para gestionar contenedores, imágenes y pods. Similar a lo que Portainer hace con Docker pero integrado en Cockpit.
| |
cockpit-networkmanager#
Ya incluido en la instalación base en Debian, pero en algunas distribuciones hay que instalarlo por separado. Añade la sección de gestión de red que mencioné antes.
cockpit-storaged#
Para gestión avanzada de almacenamiento incluyendo LVM y RAID. Viene incluido en el paquete base en la mayoría de distribuciones.
Múltiples servidores desde una sola instancia#
Esta función es la que más infrautilizada está. Cockpit permite añadir otros servidores y saltar entre ellos desde la misma interfaz web.
En la esquina superior izquierda hay un menú para añadir hosts. Introduces la IP o hostname, y Cockpit establece una conexión SSH (usando las credenciales de tu sesión actual o pidiendo las del servidor remoto). A partir de ahí, puedes cambiar entre servidores con un clic.
Tengo añadidos mis servidores principales. No tengo que recordar IPs, no tengo que mantener un inventario, no tengo que abrir pestañas nuevas. Un panel para todos.
Para que funcione necesitas que el usuario tenga acceso SSH al servidor remoto. Si usas claves SSH entre servidores (deberías), es transparente.
Qué NO hace Cockpit#
Ser honesto sobre las limitaciones es importante.
Cockpit no es un sistema de monitorización histórica. No guarda métricas. Si quieres ver la carga de CPU de la semana pasada, necesitas Grafana + Prometheus. Cockpit muestra el estado actual, no el histórico.
No es un gestor de deployments. No tiene la visión de Portainer para stacks de Docker Compose o la de Rancher para Kubernetes. Para eso sigues necesitando las herramientas específicas.
No tiene alertas. No te avisa si un servidor se cae o si el disco está al 90%. Para eso sigo usando Uptime Kuma.
No reemplaza SSH para trabajo técnico real. El terminal integrado está bien para comandos rápidos, pero para una sesión larga de debug o para editar archivos de configuración complejos, SSH con un terminal decente es más cómodo.
Mi caso de uso real#
En mi homelab tengo varios servidores que corren servicios directamente en el sistema, sin Docker. Algunos son mini PCs con Debian que hacen cosas específicas: uno corre algunos servicios de red, otro tiene VMs de prueba.
Para esos servidores, Cockpit es el punto de entrada. Antes tenía que recordar qué IP tenía cada uno y conectarme por SSH para ver si todo estaba bien. Ahora abro la interfaz, salto entre servidores y en 30 segundos tengo una visión completa de todo.
Los servicios más críticos los monitorizan con Uptime Kuma externamente. Pero para el día a día, para reiniciar un servicio que falló, para ver qué proceso está comiendo CPU de repente, para añadir un disco nuevo, Cockpit resuelve el 80% de los casos sin tocar la terminal.
Comparación con alternativas#
La pregunta obvia es: ¿por qué Cockpit y no Webmin?
Webmin lleva décadas en el mercado y hace muchísimas cosas. Demasiadas, diría yo. La interfaz está desactualizada, es inconsistente entre módulos, y la sensación general es de algo que acumula deuda técnica. Funciona, pero no es agradable de usar.
Cockpit tiene una interfaz moderna, coherente y rápida. Hace menos cosas que Webmin, pero las que hace las hace bien. Para mi caso de uso, Cockpit gana sin duda.
Con Portainer la comparación es diferente porque son herramientas distintas. Portainer está especializado en contenedores. Si tu servidor solo corre Docker, Portainer es mejor opción. Si mezclas contenedores con servicios del sistema, VMs y gestión de red, Cockpit lo cubre todo con un nivel de integración que Portainer no tiene.
Instalarlo en tus servidores no tiene coste#
Lo que más me sorprendió cuando empecé a usarlo: no tiene modo premium, no tiene empresa detrás vendiendo licencias, no tiene funciones bloqueadas. Es software libre, mantenido principalmente por Red Hat, disponible en los repositorios oficiales de todas las distribuciones principales.
No necesitas crear una cuenta, no necesitas un servidor central de gestión, no necesitas exponer nada a internet. Lo instalas, lo usas en red local, y si quieres acceso remoto lo pones detrás de Tailscale o Cloudflare Tunnel como cualquier otro servicio.
Si tienes servidores Linux y aún no lo has probado, dedícale 10 minutos. Puede que acabe formando parte de tu setup permanente.
| |