Tutorial sobre Cockpit, herramienta web de administración de servidores Linux
Cuando nos movemos en entornos corporativos, necesitamos normalmente monitorizar decenas, centenas o incluso miles de equipos, así que se nos presenta inmediatamente la pregunta: ¿Qué suite o software utilizar? Muchos se acordarán de Webmin, pero hoy hablemos de Cockpit.
En este caso, hablaremos de una herramienta gratuita que nos permite hacerlo con Linux. De hecho, la siguiente herramienta ya viene incluida por defecto en Red Hat Enterprise Linux 8.
Cockpit es una herramienta de administración remota de servidores desarrollada por Red Hat y cuyo objetivo es permitir administrar de una forma moderna, sencila y escalable nuestro parque de equipos y servidores Linux.
Ojo, solo equipos basados en GNU/Linux, así que si quieres para Windows, mira esta review de Syspectr. Y si lo único que estás buscando es medir los recursos de tu equipo Linux rápidamente, quizá te interese más GoTop o algo similar.
Cockpit al detalle, ventajas y características
Aunque no es la mejor en nada (hay otras con más funcionalidades) esta tiene sus puntos fuertes. Se trata de una interfaz que cuenta con la información necesaria para hacer el trabajo de administración de recursos/capacidad del servidor, sin sobrecargar.
Esto a su vez quiere decir que su agente es liviano, lo que lo convierte en ideal para monitorizar IoT, que normalmente van justitos de potencia, como routers, servidores de ficheros domésticos o pequeña oficina, etcétera.
Sobre todo, no contiene más que lo necesario, mientras que otros sistemas a menudo incluyen APIs que pueden contener malas configuraciones que exponen nuestros sistemas.
Finalmente está aquello de que es gratuito, opensource y con una activa comunidad de desarrolladores detrás.
Características
- Pose una GUI o interfaz gráfica
- Es modular y se pueden importar módulos extra o incluso podemos diseñar los nuestros
- Permite monitorizar más de un servidor desde cada consola
- No interfiere con las herramientas o módulos del sistema
- Utiliza sockets systemd, así que no consume ninguna memoria cuando no se ejecuta
- Emplea utilidades nativas del sistema para hacer su trabajo, no requiere configuración
- No requiere privilegios especiales y corre como usuario no privilegiado. Crea una sesión como el usuario con sesión iniciada, usando sus mismo permisos. El usuario necesitará permisos de sudo o PolicyKit para tareas administrativas. De esta forma se reduce la exposición del sistema.
- Permite gestionar usuarios locales, configuraciones de red, almacenamiento y se integra con Docker
¿He dicho ya que es gratis? 😀 Bien, al lío.
Instalar Cockpit en sistemas Linux
Todos los sistemas compatibles tienen pasos detallados en la web oficial, pero listaré aquí algunos de los comunes a modo de ejemplo. Instalar el sistema base es muy sencillo.
Ubuntu
sudo apt-get install cockpit
Esta instalación será válida además en otros sistemas derivados del mismo y, si no tienen firewall instalado por defecto (caso de DietPi que uso en el ejemplo) no tendremos que hacer nada más.
Debian
Usaremos el siguiente comando en caso de utilizar Debian 10 ().
<code>echo 'deb http://deb.debian.org/debian buster-backports main' > \ /etc/apt/sources.list.d/backports.list apt update</code>
Instalaremos el paquete:
<code>sudo apt install -t buster-backports cockpit </code>
NOTA: recomiendan encarecidamente respetar el valor especificado para backports.
Redhat
El siguiente comando aplica solamente a RHEL 7 o anterior.
<code>sudo subscription-manager repos --enable rhel-7-server-extras-rpms</code>
Instalaremos cockpit con el gestor de paquetes de nuestra elección, por ejemplo:
<code>sudo yum install cockpit </code>
Habilitaremos el servicio de socket Cockpit.
<code>sudo systemctl enable --now cockpit.socket</code>
En caso de ser necesario abrir el firewall, haremos lo siguiente:
<code>sudo firewall-cmd --add-service=cockpit sudo firewall-cmd --add-service=cockpit --permanent</code>
Verificaremos que el servicio web funciona correctamente, conectando a la siguiente dirección y puerto por defecto:
<Dirección_IP:9090>
Iniciaremos sesión con la cuenta de usuario del sistema que deseemos.
Veremos un panel como el que sigue.
Instalar módulos de Cockpit
La versión estándar de Cockpit contiene los siguientes elementos:
- Información de sistema
- CPU
- RAM
- Disco I/O
- Ancho de banda de red
- Cuentas de usuario
- Servicios
- Registros de sistema
Es altamente recomendable expandir estas características. Para instalar los módulos citados bastará con introducir lo siguiente, suponiendo que deseemos instalarlos todos, o únicamente los selsccionados.
Ubuntu/Debian 10
sudo apt install cockpit-dashboard cockpit-podman cockpit-machines cockpit-networkmanager cockpit-packagekit cockpit-storaged
Fedora / CentOS 8 / RHEL 8
sudo dnf install cockpit-dashboard cockpit-podman cockpit-machines cockpit-networkmanager cockpit-packagekit cockpit-storaged
Reiniciaremos después Cockpit:
sudo systemctl restart cockpit.socket
Requiere permisos de superadmin y la salida, al menos en Debian, debería ser así:
● cockpit.socket - Cockpit Web Service Socket
Loaded: loaded (/lib/systemd/system/cockpit.socket; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-11-12 16:45:33 CET; 59s ago
Docs: man:cockpit-ws(8)
Listen: [::]:9090 (Stream)
Process: 12610 ExecStartPost=/usr/share/cockpit/motd/update-motd localhost (code=exited, status=0/SUCCESS)
Process: 12617 ExecStartPost=/bin/ln -snf active.motd /run/cockpit/motd (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4747)
Memory: 612.0K
CGroup: /system.slice/cockpit.socket
Una vez hayamos instalado los módulos correspondientes, veremos nuevas opciones en la consola. En mi caso he instalado tablero (cockpit-dashboard) puesto que es necesario para conectar con equipos remotos, junto a otros.
Ahora tenemos nuevas opciones interesantes. Pongamos un par de ejemplos.
El almacenamiento nos permite ver las operaciones de lectura/escritura con gráficas, ver puntos de montaje, información de dispositivos de bloque y registros de udisksd. También podemos crear o editar particiones y la información incluye máquinas virtuales.
El apartado redes nos permite visualizar gráficas de ancho de banda en tiempo real, gestionar las interfaces, VLAN y registros.
Por último una sugerencia. Si necesitáis que el servidor retenga datos de rendimiento aparte de la información en tiempo real, instalad el siguiente paquete, como hemos hecho con los anteriores.
cockpit-pcp
Ahora se habilitará la característica.
Es interesante esta página de los desarrolladores donde se lista la integración de las características de Cockpit con el sistema operativo, como referencia. También podemos utilizar el siguiente comando para saber cuando aparece algún nuevo paquete. Yo no he instalado todos.
apt search cockpit
Conectar a un equipo remoto
Al instalar el tablero hemos habilitado la opción de incorporar más equipos a la monitorización, veremos como conectar con uno de ellos.
- Abriremos la vista de Dashboard o tablero
- Pulsaremos en Añadir un equipo
- Escogeremos un hostname / dirección IP y color y pulsaremos Añadir
Cockpit intentará conectarse con las mismas credenciales de la sesión en curso. En caso de no poder, nos preguntará como procedeer.
Una vez tenemos conexión con el equipo remoto, podemos ver un agregado global de rendimiento para todos los servidores monitorizados.
De ahora en adelante es cosa vuestra. Os aconsejo empezar por gestionar claves de inicio de sesión vía SSH para haceros la vida más cómoda. Luego, quizá os interese elaborar vuestros propios módulos, para lo que necesitaréis conocer algo sobre Javascript/HTML.
Palabras finales
Me he vuelto a extender demasiado, ¿o no? Igualmente seré breve porque creo que está casi todo dicho. ¿Recomiendo Cockpit? Definitivamente. ¿Es el mejor producto de su clase? No, claro que no. Aunque de los gratuitos para mí, entre los mejores.
¿Dónde se queda corto respecto a otros? Pues, por ejemplo, en que no permite exportar gráficas de rendimiento de componentes y en general, no tiene reportes.
Sin embargo, es robusto, escalable, fluido y visualmente, aunque algo espartano, apropiado. Es gratis y funciona. ¿Le pedimos algo más? Vale, pues además está en castellano. Eso es todo por hoy!
Categories
deweloper View All
Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.
hola que tal!!!!! necesito ayuda en la configuracion si fueras tan amable