Cockpit, una interfaz gráfica web para servidores
(cockpit-project.org)- Cockpit es una interfaz gráfica para administrar servidores Linux desde el navegador, que permite a principiantes y administradores expertos revisar y operar rápidamente el estado de sistemas individuales
- Como usa las mismas API y comandos del sistema que la línea de comandos, el flujo de administración no entra en conflicto aunque se utilicen juntos Cockpit, la CLI, Ansible y herramientas existentes de gestión de servidores
- Permite manejar desde una sola pantalla la red, el firewall, el almacenamiento RAID y LUKS, máquinas virtuales, contenedores, registros, hardware, actualizaciones, rendimiento, cuentas de usuario, servicios de systemd y terminal remota
- La autenticación predeterminada sigue el inicio de sesión y los permisos normales del sistema, también admite single-sign-on y otros métodos de autenticación, y solo se ejecuta cuando hace falta mediante systemd socket activation
- Se puede instalar en las principales distribuciones de Linux y usarse accediendo al puerto 9090 del servidor desde navegadores en sistemas operativos como Windows, MacOS y Android
Administración de servidores individuales desde el navegador
- Cockpit es una interfaz gráfica web unificada creada para servidores
- Está dirigida a una amplia variedad de usuarios
- Principiantes en Linux, incluidos administradores de Windows
- Usuarios familiarizados con Linux que quieren administrar servidores fácilmente con una interfaz gráfica
- Administradores expertos que usan principalmente otras herramientas, pero quieren ver un panorama general de sistemas individuales
- Está diseñada para permitir administrar el mismo sistema de varias maneras, en lugar de reemplazar los métodos existentes
- Se puede usar Cockpit junto con utilidades de línea de comandos
- También se pueden seguir usando Ansible y otras herramientas existentes
- Ofrece una terminal integrada útil para acceder desde dispositivos que no son Linux
- Sin necesidad de memorizar comandos de Linux, se puede ver el estado del servidor y trabajar con el mouse desde el navegador web
- Iniciar contenedores
- Administrar almacenamiento
- Configurar la red
- Revisar registros
- Cockpit puede verse como una “interfaz de escritorio” gráfica para servidores individuales
Autenticación, integración y forma de extensión
- Cockpit usa las API que ya existen en el sistema y no crea subsistemas nuevos ni agrega su propia capa de herramientas
- De forma predeterminada usa el inicio de sesión y los permisos normales del sistema
- El inicio de sesión en toda la red se admite mediante técnicas de single-sign-on y otros métodos de autenticación
- Cuando no se usa, no permanece ejecutándose en segundo plano, sino que se inicia cuando hace falta mediante systemd socket activation
- En cada host con Cockpit se pueden realizar las siguientes tareas
- Revisar y cambiar la configuración de red
- Configurar el firewall
- Administrar almacenamiento, incluidas particiones RAID y LUKS
- Crear y administrar máquinas virtuales
- Descargar y ejecutar contenedores
- Explorar y buscar registros del sistema
- Revisar el hardware del sistema
- Actualizar software
- Revisar el rendimiento
- Administrar cuentas de usuario
- Revisar e interactuar con servicios basados en systemd
- Usar la terminal de un servidor remoto desde el navegador web local
- Cambiar entre varios servidores con Cockpit
- Ampliar funciones instalando aplicaciones y complementos
- Escribir módulos personalizados
- También puede usarse para resolución de problemas
- Diagnosticar problemas de red
- Detectar y responder a máquinas virtuales con fallas
- Revisar registros de SELinux y corregir violaciones comunes con un clic
- Ver métricas detalladas de carga de CPU, uso de memoria, actividad de red y rendimiento de almacenamiento vinculadas al journal del sistema
- Admite aplicaciones opcionales y de terceros
- Su diseño se prueba y ajusta mediante estudios de usabilidad, y todos los cambios de código pasan por pruebas obligatorias antes de fusionarse
- Se puede usar gratis y se ofrece bajo GNU LGPL
Instalación y acceso
- Se puede instalar en las principales distribuciones y, una vez en funcionamiento, se puede acceder desde los principales navegadores web de cualquier sistema operativo
- Incluidos Windows, MacOS y Android
- Después de la instalación y activación, se accede al puerto 9090 del servidor
- Desde el navegador de la misma máquina, se puede acceder con
https://localhost:9090/
- Cockpit tiene un ciclo de lanzamientos por tiempo, y una nueva versión sale cada 2 semanas
2 comentarios
Cockpit - interfaz web integrada para la administración de servidores Linux
Opiniones de Hacker News
Despotricar contra las interfaces gráficas de administración y preferir solo la línea de comandos se acerca a una actitud de no ver el bosque por mirar los árboles
Operar servidores a clics no es una buena forma de hacerlo, pero, siendo honestos,
sshtampoco lo esEl estado real de un servidor en producción debería poder reproducirse desde cero, y lo correcto es instalar el OS, agregar software, aplicar la configuración y luego no tocarlo
Ya sea con
ssho con Cockpit, si entras directamente hay muchas posibilidades de romper algoSolo deberías entrar directamente a un servidor cuando haces trabajo exploratorio, y en ese caso la superioridad entre GUI y línea de comandos no es tan clara
Una GUI tiene mejor descubribilidad y visibilidad, así que ayuda en la etapa experimental de ir encontrando cómo configurar algo
Hace falta explicar por qué el estado del servidor debe poder reproducirse desde cero, qué significa “desde cero” y por qué operar a clics no sirve
Tampoco es fácil decir que el estado del servidor queda capturado por completo solo con instalar el OS, agregar software y aplicar configuración
El nivel de parches del software, los datos de la aplicación y los datos de usuarios también forman parte del estado del servidor
El estado de un servidor en producción puede reproducirse con exactitud restaurando desde un backup, y el backup/restauración también encaja bien con la operación a clics; además, puede ser más rápido y confiable que reinstalar el OS y correr scripts de configuración
Si es un servidor que guarda datos no volátiles, de todos modos se necesita un sistema de backups para restaurar los datos de usuarios después de desplegar un servidor nuevo
No todo el mundo opera una gran plataforma web sobre una plataforma de orquestación
Aun así, incluso con servidores estilo mascota, deberías saber cómo recuperarlos o reconstruirlos; de lo contrario, no tienes una estrategia real de recuperación ante desastres
En mi homelab uso Ansible para configurar Raspberry Pi, y la parte de instalación del OS parece posible porque consiste en copiar una imagen bit a bit al medio de arranque y hacer algunas configuraciones opcionales
Prefiero trabajar en la terminal, pero creo que ni siquiera es discutible que una GUI es mejor para la visualización
Lo genial de este proyecto es que usa activación por sockets de systemd, así que no necesita un proceso de servidor ejecutándose todo el tiempo
Cuando no usas Cockpit no hay desperdicio de recursos, y acceder a la página es prácticamente lo mismo que ejecutar una herramienta de línea de comandos y luego cerrarla
El diseño es realmente hermoso
inetdde BSD4.3, en 1986, ya existía algo parecidoLos detalles de implementación eran distintos, pero la idea general era la misma; en su momento fue popular, pero pasó de moda sin una razón especial
Un buen proceso de servidor debería estar inactivo cuando no pasa nada, y su uso real de memoria debería ser muy pequeño para que sea fácil sacarlo a swap
Si un servidor específico usa mucha memoria por la naturaleza de su función, probablemente tampoco querrás provocar presión de memoria intermitente iniciándolo bajo demanda
Eso sí, ayuda al rendimiento de arranque porque facilita evitar quedar bloqueado esperando a que arranquen servicios durante el inicio inicial
El proceso
sshdno se inicia hasta que alguien se conecta por SSHhttps://discourse.ubuntu.com/t/sshd-now-uses-socket-based-ac...
Cuanto más lo reviso, más funciones geniales y útiles aparecen
Conviene instalarlo en Raspberry Pi pequeñas
Es muy útil para echar un vistazo al estado cuando no estás frente a la terminal, o cuando solo tienes un navegador web y puedes conectarte por SSH de forma prácticamente nativa a través del servidor web y ejecutar
curl ...etc...en un prompt real de comandosMe pregunto si la activación por sockets de systemd significa que solo se usa cuando el cliente web del usuario final envía solicitudes REST/GQL, como consultar logs
El “porcelain” tiene valor
He visto startups que cerraron porque, aun teniendo backends ya hechos, no lograron llevar el desarrollo del producto hasta la UI/UX
En una empresa, demostramos que un backend con un orquestador de contenedores totalmente custom podía reemplazarse en un fin de semana por AWS Lambda y ECS, pero la UI/UX y las herramientas de flujo de trabajo iban a tomar mucho más tiempo
Aun así, siguieron desperdiciando dinero y tiempo en crear un “nuevo clúster basado en Raft”
En medio de eso me asignaron la tarea de “agregar procesamiento por lotes”, y como ya usábamos Go, simplemente conectamos Nomad internamente y seguimos adelante
Es bueno trabajar en un equipo que lanza funcionalidades, no solo en tecnología por la tecnología
https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Po...
Todas las herramientas de este rubro deberían tener un banner gigante que diga “poco espacio en disco”
Incluso para gente que depura servidores, sorprendentemente esto a veces no es de sentido común
En 2022, 81 comentarios: https://news.ycombinator.com/item?id=31439811
En 2021, 128 comentarios: https://news.ycombinator.com/item?id=26197510
En 2018, 149 comentarios: https://news.ycombinator.com/item?id=16445612
No creo que vaya a usar esto
Es un puerto abierto más, una superficie de ataque más para bots que escanean vulnerabilidades sin descanso, y un servicio más que hay que mantener siempre actualizado
Aun así, creo que puede ayudar a que los servidores Linux sean más accesibles
Es especialmente útil para quienes se pasan de hosting compartido basado en PHP a un VPS completo, pero no tienen muchos conocimientos de servidores y quieren algo como cPanel o DirectAdmin
No estoy muy seguro de cuál es la diferencia entre ambos
Soy RHCE de verdad, y este hilo tiene un ambiente positivo tan artificial que casi parece una granja de clics del lado de Red Hat
Cockpit está bien, pero en la práctica se parece más a la versión de Red Hat de Windows Server Manager, y es muy posible que haya recibido influencia directa de Server Manager
Durante años, el ritmo de desarrollo y mejora también fue dolorosamente lento
Quien esté acostumbrado a sesiones SSH no usa Cockpit salvo quizá al crear una VM nueva, y compararlo con Proxmox no tiene sentido
No tiene ni una cuarta parte de las funciones de la UI de Proxmox, y las funciones de administración de VM llegaron hace relativamente poco; además, por la latencia y las limitaciones de pasar por el navegador, Virtual Machine Manager sigue siendo mejor
Hay muchas cosas que no se pueden hacer con Cockpit y muchas que tampoco se podrán hacer en el futuro
Es más bien una herramienta para gente que quiere hacer clics, no puede usar bucles
for/whileen Bash, no entiende el encadenamiento de pipes y odiavimEs decir, es un webmin para Red Hat; aunque se ve algo elegante, ya es demasiado viejo, su desarrollo fue lento y está tan sobrevalorado que nunca lo he usado salvo para lo necesario en exámenes de certificación
O sea, también es cierto
También dicen que, si te preocupa un abuso, puedes escribir a hn@ycombinator.com y ellos revisarán los datos
https://news.ycombinator.com/newsguidelines.html
Cuando mi familia viaja, uso varias cámaras con Raspberry Pi equipadas con mejores módulos de cámara para ver a las mascotas
Los streams de cámara RTSP se ejecutan como unidades systemd en cada equipo, y también tengo health checks como otras unidades systemd para verificar si se están transmitiendo paquetes
Cada cámara recibe una IP privada dentro de la red ZeroTier que administro
Cockpit solo se ejecuta cuando hace falta, así que no veo razón para no dejarlo instalado para administración
A veces una cámara empieza a emitir solo frames vacíos, y durante unas vacaciones es mucho mejor resolverlo desde la interfaz web de Cockpit en el teléfono que buscar un teclado, entrar por SSH y reiniciar la unidad del stream
Podría crear un health check que detecte frames vacíos, pero para algo que pasa solo unas pocas veces al año, es mucho más fácil reiniciarlo desde Cockpit que escribir eso
Se puede acceder desde cualquier plataforma, incluido un iPad, y casi no requiere configuración más allá de instalar paquetes y agregar certificados
Uso Cockpit en lugar de Proxmox en servidores Debian que ejecutan VMs, porque es mucho menos invasivo y esas máquinas también hacen otras cosas, como correr contenedores Docker
Lo uso para esto desde alrededor de 2019
La pantalla de estadísticas también es útil, pero no lo instalaría solo por eso
Hay muy pocas alternativas bien mantenidas que permitan crear VMs de libvirt desde un navegador web en una sola máquina sin apoderarse de todo el sistema
Solo se puede usar con NetworkManager, pero en cuanto la configuración de red para VMs se vuelve un poco compleja, normalmente hay que desactivar NetworkManager, así que Cockpit se vuelve prácticamente inutilizable
Para quien quiera administrar VMs con una GUI, virt-manager es mucho más potente
[1] https://virt-manager.org/
La calidad es “mediocre”
Sirve para algunos casos de uso muy pequeños, pero si administrara un servidor casero lo evitaría
El plugin de interfaz de servidor de archivos de Cockpit es viejo y malo
No tengo muy claro para qué se usaría; tal vez permita monitoreo básico, pero como herramienta de administración no me convence
No sé por qué Red Hat impulsa este proyecto, y tiene pocos usos prácticos
Mostrar una lista de servicios systemd no ayuda más que ver toda la salida en la línea de comandos
Al hospedar un NAS por cuenta propia, me parece que Cockpit es mucho mejor que OMV
OMV tiene un plugin de Docker con soporte para Compose, así que no hace falta una GUI de Docker aparte como Portainer, y por alguna razón los recursos compartidos SMB son más estables desde clientes Windows
Tiene una GUI y una actitud amigables para principiantes, por lo que también es fácil compartirlo con otros usuarios, e incluye funciones básicas como fail2ban y WireGuard
Cockpit es ciudadano de primera clase en distribuciones EL/Fedora, y soporta Podman, pero no Docker, ni tampoco Compose/Quadlet
Tiene funciones potentes como administración de VM y terminal, pero tiene bugs relacionados con Samba
Actualmente uso OMV para compartir archivos en la red local y correr algunos contenedores Docker
Funciona bien, pero no uso el 90% de sus funciones
Para quienes tengan curiosidad, según https://github.com/cockpit-project/cockpit, Cockpit está escrito en varios lenguajes; C es el principal, seguido por JavaScript y Python
src/cockpitparece ser probablemente la lógica principal del backend, y está en PythonEl bridge nuevo está escrito en Python, y cuando llegue el momento me gustaría reescribir también el servidor web de una forma más moderna
También son importantes cosas como qué dependencias tiene y si hay que preocuparse por vulnerabilidades en bibliotecas de logging o en Curl
También resulta interesante ver si el producto está escrito con un único stack claro o si mezcla varias tecnologías