Cockpit – установка и настройка панели управления

Администрирование сервера зачастую производится в командной строке, однако иногда бывает полезно иметь визуальное представление о состоянии сервера. В этом помогает наличие 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 для авторизации в панели.
cockpit вход

Главная страница

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

главная страница cockpit

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

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

cockpit смена языка

Метрики

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

cockpit метрики

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

установка pcp

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

настройки метрик
включение метрик

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

исторические графики метрик

Информация о сервере

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

сведения о системе

Журналы

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

логи cockpit

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

Поиск по логам

Сеть

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

Обратите внимание!
Интеграция с альтернативами NetworkManager и firewalld на данный момент не поддерживается.
информация о сети

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

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

информация о сетевом интерфейсе

Учетные записи

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

Учетные записи

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

создание пользователя

Службы

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

systemd cockpit

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

systemd unit

Обновления

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

обновления cockpit

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

Приложения

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

установка podman

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

podman containers

Терминал

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

терминал cockpit

Безопасный доступ к Cockpit

Запуск подобной ПУ с возможностью управлять сервером в общем доступе – не самый оптимальный вариант с точки зрения безопасности. Рассмотрим несколько способов настройки более безопасного доступа к Cockpit.

Использование SSH-туннеля

Обратите внимание!
Данный способ будет безопаснее открытого порта только в случае, если на сервер проброшен ключ устройства, с которого осуществляется подключение, и отключена 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

Откройте приложение, введите имя пользователя и адрес удаленного сервера:

cockpit client

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

cockpit client информация о системе

Заключение

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

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

1
733