Cockpit: веб-интерфейс управления сервером

веб-интер­фейс управ­ле­ния сер­ве­ром Cockpit Web Console в CentOS 8 (при­ме­ни­мо для Red Hat, Fedora, Ubuntu, Debian, Arch). Мы рас­смот­рим базо­вые воз­мож­но­сти дан­ной кон­со­ли, и пока­жем, как через про­стой и удоб­ный веб-интер­фейс cockpit выпол­нять типо­вые зада­чи адми­ни­стри­ро­ва­ния и мони­то­рин­га ваших сер­ве­ров. Для тех, кто толь­ко начи­на­ет раз­би­рать­ся с CentOS, дан­ная web-кон­соль ста­нет неза­ме­ним помощ­ни­ком в адми­ни­стри­ро­ва­нии сервера.

Основ­ные воз­мож­но­сти web-интер­фей­са управ­ле­ния сер­ве­ром cockpit:

    • Управ­ле­ние учет­ны­ми записями
    • Мони­то­ринг системы
    • Обнов­ле­ние ПО
    • Про­смотр лог-файлов
  • Сете­вые настройки
  • Управ­ле­ние вир­ту­аль­ны­ми маши­на­ми KVM

Установка Cockpit в CentOS

Перед уста­нов­кой паке­та cockpit нуж­но обно­вить все паке­ты в системе:

# dnf update -y

После чего, мож­но уста­но­вить непо­сред­ствен­но сам cockpit через мене­джер пакетов:

# dnf install cockpit –y

В CentOS 8 cockpit уста­нав­ли­ва­ет­ся по умол­ча­нию, кро­ме слу­ча­ев с minimal core установкой.

При запус­ке коман­ды, систе­ма пред­ло­жит уста­но­вить cockpit и все зависимости.

После уста­нов­ки, нуж­но запу­стить сер­вис cockpit и доба­вить его в автозагрузку:

# systemctl start cockpit.socket
# systemctl enable cockpit.socket

Для досту­па к web-интер­фейс нуж­но открыть на фай­ер­вол­ле порт TCP 9090. Для firewalld это выпол­ня­ет­ся через добав­ле­ние сер­ви­са в исключения:

# firewall-cmd --add-service=cockpit --permanent
# firewall-cmd --reload

Для iptables:

# iptables -A INPUT -m state --state NEW -p tcp --dport 9090 -j ACCEPT
# service iptables save && service iptables restart

Использование веб-интерфейса cockpit для управления CentOS

Открой­те веб-кон­соль Cockpit в бра­у­зе­ре, перей­дя по адресу:

IP — адрес ваше­го сер­ве­ра с cockpit

Для авто­ри­за­ции в Cockpit исполь­зу­ют­ся локаль­ные учет­ные запи­си в CentOS. Мож­но авто­ри­зо­вать под root.

При авто­ри­за­ции в интер­фей­се Cockpit, на глав­ной стра­ни­це вы може­те уви­деть мони­тор про­из­во­ди­тель­но­сти сервера:

В дина­ми­че­ских гра­фи­ках пока­зы­ва­ет­ся теку­щая нагруз­ка на основ­ные ресур­сы ваше­го сервера:

  1. Загруз­ка CPU
  2. Исполь­зо­ва­ние памяти
  3. Нагруз­ка на дис­ко­вую под­си­сте­мы (не в IOPS, а в KiB/s)
  4. Cете­вую активность

Удоб­но смот­реть на гра­фи­ки в режи­ме реаль­но­го вре­ме­ни, визу­аль­но инфор­ма­ция вос­при­ни­ма­ет­ся куда про­ще. Рядом с гра­фи­ка­ми есть инфор­ма­ция о систе­ме, а так же воз­мож­ность управ­ле­ния элек­тро­пи­та­ни­ем сер­ве­ра (мож­но быст­ро пере­за­гру­зить или выклю­чить сервер):

С левой сто­ро­ны пане­ли, есть меню. Неко­то­рые пунк­ты мы рас­смот­рим подробно:

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

В раз­де­ле сеть, вы може­те управ­лять сете­вы­ми настрой­ка­ми и пра­ви­ла­ми файерволла:

Как види­те, у нас есть 3 пра­ви­ла, кото­рые мож­но про­смот­реть или изме­нить, в пане­ли вы так же може­те доба­вить новые правила:

Т.е. если вы неуве­рен­но чув­ству­е­те себя в кон­со­ли, вы може­те настро­ить пра­ви­ла фай­ер­во­ла через web-интерфейс.

Поми­мо настро­ек фай­ер­вол­ла, вы може­те управ­лять настрой­ка­ми сете­вых интер­фей­сов (изме­нить VLAN на сер­ве­ре, файл кон­фи­гу­ра­ции сети, доба­вить мост и т.д.):

Создать допол­ни­тель­но­го поль­зо­ва­те­ля для ваше­го сер­ве­ра мож­но в несколь­ко кликов:

Може­те через кон­соль убе­дить­ся, что поль­зо­ва­тель создан:

[root@server ~]# cat /etc/passwd | grep tes

В раз­де­ле служ­бы, вы може­те настра­и­вать и управ­лять сете­вы­ми сервисами.

Если вы откро­е­те любой сер­вис, мож­но уви­деть все настройки:

Настрой­те авто­за­пуск сер­ви­са, остановите/запустите его, а так­же в окне опре­де­лен­ной служ­бы, вы уви­ди­те жур­нал оши­бок или пре­ду­пре­жде­ний. В моем слу­чае я открыл сер­вис cockpit и в жур­на­лах есть пре­ду­пре­жде­ния о том, что у меня не уста­нов­лен сер­ти­фи­кат для консоли.

Для веб-интер­фей­са cockpit по умол­ча­нию исполь­зу­ет­ся само­допд­пи­сан­ный сер­ти­фи­кат, кото­рый хра­нит­ся в ката­ло­ге /etc/cockpit/ws-certs.d. Може­те заме­нить его ком­мер­че­ским SSL серт­фи­ка­том или исполь­зо­вать бес­плат­ный Let’s Encrypt.

На вклад­ке “Про­грамм­ные обнов­ле­ния” мож­но вклю­чить управ­лять уста­нов­кой обнов­ле­ний CentOS и паке­тов из под­клю­чен­ных репозиториев.

Мож­но вклю­чить авто­ма­ти­че­ское обнов­ле­ние систе­мы (выпол­ня­ет­ся через пакет dnf-automatic).

После уста­нов­ки кото­ро­го, вы може­те настро­ить вари­ант обнов­ле­ния вашей систе­мы и задать вре­мя для авто­ма­ти­че­ской уста­нов­ки обновлений.

Если вас не устра­и­ва­ет вари­ант с авто­ма­ти­че­ским обнов­ле­ни­ем, вы може­те их уста­нав­ли­вать в ручную.

В кон­со­ли если удоб­ный веб-тер­ми­нал, для рабо­ты с сер­ве­ром из при­выч­но­го shell для запус­ка команд:

Если у вас исполь­зу­ет­ся SELinux, им так­же мож­но управ­лять через cockpit.

Если с глав­ной стра­и­цы веб интер­фей­са щелк­нуть по гра­фи­ку дис­ко­вой актив­но­сти, появит­ся веб интер­фейс для управ­ле­ния дис­ка­ми (Storage). где вы може­те создать или пере­на­стро­ить LVM раз­де­лы, настро­ить RAID груп­пы или под­клю­чить iSCSI устройства.

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

В Cockpit мож­но управ­лять сра­зу мно­же­ством сер­ве­ров CentOS/RHEL. Для это­го нуж­но доба­вить необ­хо­ди­мые сер­ве­ра в Machines dashboard.

Cockpit: управление контейнерами через podman

Для рабо­ты с кон­тей­не­ра­ми на сер­ве­ре, для cockpit суще­ству­ет отдель­ный пла­гин podman (в ран­них рели­зах исо­пль­зо­вал­ся docker). Уста­но­ви­те пакет:

# dnf install cockpit-podman -y

После чего нуж­но загру­зить нуж­ные обра­зы, напри­мер, CentOS 8:

# podman pull centos:8

Про­верь­те, что образ загрузился:

# podman images

Пере­за­пу­сти­те сер­вис cockpit:

# service cockpit restart

Вы уви­ди­те, что пане­ли появит­ся модуль Podman containers:

В даль­ней­шем вся рабо­та про­ис­хо­дит, как и с docker-контейнерами.

Управление KVM через веб-интерфейс cockpit

Для рабо­ты KVM на сер­ве­ре с уста­нов­лен­ным cockpit есть допол­ни­тель­ный плагин:

# dnf install cockpit-machines -y

После его уста­нов­ки в web-интер­фей­се появит­ся отдель­ная вклад­ка Virtual Machines:

После запус­ка libvirt, вы може­те созда­вать вир­ту­аль­ные маши­ны и управ­лять ими через уже интер­фейс cockpit. Напри­мер, мож­но создать новую ВМ: 

После чего у вас появит­ся создан­ная маши­на и мож­но будет про­дол­жить ее настройку:

Таким обра­зом, для того, что­бы рабо­тать с KVM вам не тре­бу­ет­ся уста­нов­ка какой-то отдель­ной пане­ли (типа virt-manager) или выпол­не­ния команд virsh.

Теперь адми­ни­стри­ро­ва­ние ваше­го сер­ве­ра ста­нет еще про­ще. Уста­но­ви­те cockpit и исполь­зуй­те его воз­мож­но­сти на максимум.