Cockpit: веб-панель для headless-сервера без десктопного окружения

Старые машины, переоборудованные под серверные узлы, упираются в один и тот же барьер — расход ресурсов. Дистрибутивы Linux хорошо оживляют компьютеры прошлых лет, но десктопное окружение забирает заметную часть процессорного времени и памяти, которую хотелось бы отдать виртуализированным приложениям. Консольные дистрибутивы почти не создают накладных расходов, однако управлять всем из терминала утомительно. Cockpit закрывает эту дилемму: это веб-интерфейс для управления Linux-серверами, который даёт удобную панель, не требуя устанавливать полноценный рабочий стол.

Что Cockpit показывает и умеет

Для переоборудования старых систем под узлы с контейнерами на Docker или Podman обычно берут консольный вариант Debian или Ubuntu Server. Вручную через терминал приходится разбираться с обновлениями пакетов, логами сервера, правами учётных записей, пулами хранения, монтированием NFS и устройствами ввода-вывода. Подключаться по SSH к каждой машине можно, но когда узлов несколько, у каждого свои аккаунты, диски и сетевые ресурсы, это становится раздражающим занятием.

Cockpit решает задачу минималистичным веб-интерфейсом. Он собирает подробные характеристики оборудования сервера и ведёт статистику потребления процессора, памяти, распределения накопителей и скорости сети по всей системе. Системные логи панель собирает и разносит по уровням безопасности и риска — так проще не пропустить панику ядра, сбой накопителя и другие критичные события и при этом не утонуть в предупреждениях об устаревших пакетах.

В разделе Storage доступны настройки хранилищ: создание RAID-массивов, редактирование таблиц разделов, конфигурация общих ресурсов NFS. Сетевые настройки позволяют менять параметры bond, bridge и VLAN для всех интерфейсов вместе с их настройками IPv4, IPv6 и MTU. Учётными записями автор обычно не занимается сверх добавления нового локального пользователя, но при проблемах с правами у non-root-аккаунтов нужные разрешения правятся прямо в Cockpit.

Для обновлений пакетов есть отдельная вкладка: в ней видно свежие версии приложений и можно установить те, что нужно обновить. Когда что-то ломается катастрофически и веб-интерфейс уже не помогает, встроенный терминал позволяет выполнить сколько угодно команд. Поскольку в один интерфейс Cockpit можно добавить несколько узлов, из централизованной панели реально управлять практически всеми серверными машинами домашней лаборатории.

Плагины расширяют возможности

Базовая версия Cockpit — только начало. Панель настраивается плагинами. Для минималистичного NAS-сервера плагин cockpit-file-sharing от 45Drives добавляет инструменты управления хранилищами Samba, iSCSI и S3, а cockpit-navigator приносит полноценный файловый браузер. На очень маломощных системах, способных тянуть только контейнерные сервисы, автор использует плагин cockpit-podman; раньше он полагался и на ныне устаревший плагин для Docker, пока не перешёл на Dockhand. Отдельного упоминания заслуживает cockpit-machines: автор предпочитает веб-интерфейс Proxmox для управления виртуальными машинами, но в cockpit-machines есть все нужные опции для работы с ВМ.

Почему это почти ничего не стоит по ресурсам

При всех возможностях Cockpit почти не потребляет ресурсов. Статические страницы не требуют заметных вложений процессора и памяти, а даже при включённых исторических метриках его след на загрузочном диске дистрибутива остаётся небольшим. По сути, Cockpit даёт тот же уровень доступности, что и типичные десктопные окружения, но расходует лишь долю ресурсов, которые съедают их графические элементы.

Если серверных машин становится несколько, та же логика экономии внимания работает и на клиентской стороне: например, настройка клавиатуры Gboard избавляет от постоянных промахов при вводе с телефона, когда админ правит конфиги с мобильного. А привычка не ставить обновления сразу, не проверив совместимость, хорошо видна на истории с приложением Expert RAW, которое ломается на One UI 9.

Частые вопросы

Что такое Cockpit и для чего он нужен?

Это веб-интерфейс для управления Linux-серверами и компьютерами вроде Raspberry Pi. Через него следят за состоянием системы, службами и удалённым доступом.

Нужно ли ставить десктопное окружение, чтобы пользоваться Cockpit?

Нет, в этом и смысл: панель открывается в браузере и не требует установки рабочего стола на сервер. Ресурсы, которые ушли бы на GUI, остаются приложениям.

Какие дистрибутивы подойдут для такого сценария?

Автор использует консольный вариант Debian и Ubuntu Server — на них он переоборудует старые системы под узлы с контейнерами Docker или Podman.

Что можно настроить в Cockpit помимо мониторинга?

Хранилища (RAID, таблицы разделов, NFS), сеть (bond, bridge, VLAN, IPv4, IPv6, MTU), учётные записи и права, обновления пакетов и терминал.

Можно ли управлять несколькими серверами из одной панели?

Да, в один интерфейс Cockpit добавляется несколько узлов, и из централизованной панели можно управлять практически всеми машинами.

Какие плагины стоит посмотреть?

cockpit-file-sharing для Samba, iSCSI и S3, cockpit-navigator как файловый браузер, cockpit-podman для контейнеров и cockpit-machines для виртуальных машин.

Насколько сильно Cockpit нагружает слабый сервер?

Статические страницы почти не тратят процессор и память, а след на загрузочном диске остаётся небольшим даже с историческими метриками.

Что делать, если веб-панель не помогает в диагностике?

В Cockpit есть встроенный терминал: через него можно выполнить любое нужное число команд прямо из интерфейса.

Источник: xda-developers.com