Администрирование сервера зачастую производится в командной строке, однако иногда бывает полезно иметь визуальное представление о состоянии сервера. В этом помогает наличие web-gui – например, Cockpit.
Cockpit позволяет управлять сервером, следить за метриками, запускать контейнеры с помощью Podman и многое другое. Панель Cockpit лучше всего подходит для bare-metal серверов, однако пользователи VPS/VDS также могут найти предлагаемый функционал полезным.
Установка Cockpit
Cockpit доступен для установки в менеджерах пакетов популярных дистрибутивов. Для установки Cockpit в Ubuntu/Debian выполните команду:
sudo apt install cockpitВ дистрибутивах семейства RHEL:
sudo dnf install cockpit
sudo systemctl enable --now cockpit.socketРабота с панелью
Для начала работы перейдите по адресу https://ip_сервера:9000. Панель управления использует самоподписанный сертификат по умолчанию, предупреждение о самоподписанном сертификате потребуется проигнорировать.

Авторизуйтесь в панели управления, используя логин и пароль пользователя вашего сервера.
root по умолчанию запрещена в cockpit. Рекомендуется создать отдельного пользователя с правами на использование sudo для авторизации в панели.
Главная страница
На главной странице отображаются статус обновлений, краткая сводка по использованию ресурсов сервера и информация о нем.

По умолчанию при авторизации выдается ограниченный доступ к панели управления, для получения полного доступа нажмите “Turn on administrative access” и авторизуйтесь.
Для переключения языка нажмите “Session” -> “Display language”, после чего выберите нужный язык из списка и сохраните настройки.

Метрики
Для более подробного просмотра метрик нажмите “View metrics and history” на карточке Usage. Откроется страница с текущей информацией об использовании ресурсов сервера – здесь вы можете отследить использование оперативной памяти, нагрузку на процессор, использование дискового пространства и сетевой трафик:

По умолчанию история метрик не сохраняется, для включения функционала установите поддержку PCP, нажав на соответствующую кнопку.

Затем откройте настройки метрик и включите сервис pmlogger.service.


После включения сбора метрик исторические графики будут отображаться в нижней части экрана:

Информация о сервере
При нажатии на “Сведения об оборудовании” откроется страница с краткой сводкой об установленном на сервере оборудовании, в том числе – подключенных PCI-устройствах:

Журналы
В данном разделе возможен просмотр логов сервера, доступных с помощью journalctl. По умолчанию логи обновляются автоматически в прямом эфире.

Доступна фильтрация логов по времени, сервису и приоритету. Также можно выполнять более тонкий поиск по логам, в том числе – по произвольной строке:

Сеть
В разделе “Сеть” осуществляется управление сетевыми настройками сервера посредством интеграции с NetworkManager и firewalld.

В настройках межсетевого экрана вы можете задавать зоны для правил (например, для определенных интерфейсов или подсетей), а также управлять доступными в каждой из зон портами.
Также в данном разделе вы можете управлять сетевыми интерфейсами сервера и просматривать информацию об их использовании и настройках.

Учетные записи
Cockpit позволяет удобно управлять пользователями и группами на сервере, в том числе создавать новые или редактировать уже существующие. Также доступна информация о последней активности пользователей на сервере и группах, в которые добавлен тот или иной пользователь.

Например, для создания пользователя нажмите “Создать учетную запись”, после чего укажите нужные данные и подтвердите создание.

Службы
Данный раздел представляет собой удобный графический интерфейс для управления systemd. Здесь вы можете просматривать статус юнитов и сокетов, управлять автозагрузкой и просматривать логи и статистику по каждому из них.

При нажатии на название юнита откроется страница с подробной информацией о нем. Здесь же можно управлять его работой.

Обновления
Раздел “Обновления” использует PackageKit для работы с менеджером пакетов вашего дистрибутива. Панель управления виртуальной машиной Cockpit автоматически проверяет доступность обновлений при авторизации и дает краткую сводку о характере обновлений:

В данном разделе можно как установить предложенные обновления, так и настроить автоматические обновления с помощью дополнительных плагинов.
Приложения
В данном разделе предлагаются для установки официальные расширения для Cockpit – в том числе для управления контейнерами с помощью Podman. Для установки расширения просто нажмите “Установить” напротив него:

Установленное расширение появится в левом меню:

Терминал
Для выполнения команд в консоли Cockpit предоставляет доступ к терминалу в соответствующем разделе c поддержкой копирования и вставки:

Безопасный доступ к Cockpit
Запуск подобной ПУ с возможностью управлять сервером в общем доступе – не самый оптимальный вариант с точки зрения безопасности. Рассмотрим несколько способов настройки более безопасного доступа к Cockpit.
Использование SSH-туннеля
PasswordAuthentication no.SSH позволяет перенаправлять трафик с локальной машины на удаленную, используя туннелирование. Например, чтобы получить доступ к Cockpit на локальном порту 9090, используйте следующую команду:
ssh -L 127.0.0.1:9090:127.0.0.1:9090 user@server_ipГде user – имя пользователя на удаленном сервере, а server_ip – ip сервера. После успешного подключения страница авторизации будет доступна на локальной машине по адресу 127.0.0.1:9090.
Использование Cockpit Client
Пользователи Linux также могут использовать Cockpit Client для доступа к удаленному серверу. Под капотом приложение также использует ssh для безопасного доступа к серверу, позволяя избежать открытия порта для доступа к Cockpit.
Для установки на локальной машине должен быть настроен Flatpak. Установить программу можно командой:
flatpak install org.cockpit_project.CockpitClientОткройте приложение, введите имя пользователя и адрес удаленного сервера:

Если на конечный сервер прокинут ключ ssh, авторизация пройдет без запроса пароля, в приложении отобразится привычный интерфейс cockpit:

Заключение
В данной статье мы кратко рассказали о функционале Cockpit и о безопасном доступе к панели управления сервером без открытия портов на нем.
Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью, настройку Cockpit, ваши проекты или наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.