Linux-Server mit Cockpit per Web-UI steuern

Datum

Cockpit ist einfach zu verwendendes, offenes Werkzeug, mit welchem man einen Linux-Server überwachen und steuern kann.
Dieses Tool ist bei Fedora-Server schon bei der Standard-Installation mit dabei.

offizielle Webseite: cockpit-project.org
auf Github: github.com
Dokumentation: cockpit-project.org

Installation

Bei den meisten Linux-Distros befindet sich Cockpit in den jeweiligen Os-Repos. Das ist allerdings nicht überall der Fall, z.B. muss bei der aktuellen Debian-Version noch das Backports-Repo eingebunden werden.

Informationen darüber wie man Cockpit für die entsprechende Linux-Version installiert findet man hier: Running Cockpit

Cockpit verwenden

Nachdem Cockpit installiert wurde, kann der Dienst gestartet werden.
systemctl start cockpit.service

Nun sollte der Cockpit-Dienst auf Port 9090 lauschen.

$ ss -tulpn | grep 9090
tcp    LISTEN     0      128      :::9090                 :::*                   users:(("cockpit-ws",pid=22347,fd=3),("systemd",pid=1,fd=91))
Änderung des UI-Ports

Wer einen anderen Port als 9090 verwenden möchte, kann diesen in der Konfigurationsdatei des sockets von Cockpit entsprechend ändern.
In der entsprechenden Konfigurationsdatei /lib/systemd/system/cockpit.socket ändert man unter dem Konfigurationselement [Socket] den Wert von ListenStream.

Diese Datei hat standardmässig folgenden Inhalt:

[Unit]
Description=Cockpit Web Service Socket
Documentation=man:cockpit-ws(8)
Wants=cockpit-motd.service

[Socket]
ListenStream=9090
ExecStartPost=-/usr/share/cockpit/motd/update-motd '' localhost
ExecStartPost=-/bin/ln -snf active.motd /run/cockpit/motd
ExecStopPost=-/bin/ln -snf /usr/share/cockpit/motd/inactive.motd /run/cockpit/motd

[Install]
WantedBy=sockets.target

Anschließend führt man einen Reload des Systemd-Daemon per systemctl daemon-reload durch und startet noch den entsprechenden Socket per systemctl restart cockpit.socket neu.

Anmerkung: Nach einer Änderung des Ports sollte man die entsprechende Freigabe in der Firewall anpassen und ggf.,falls SELinux aktiviert ist, den neuen Port in SELinux aktivieren.
Dies geht z.B. per: semanage port -a -t websm_port_t -p tcp <PORT>
wurde der neue Port bereits früher von einer anderen Anwendung verwendet, muss man dies in SELInux entsprechend anpassen:
semanage port -m -t websm_port_t -p tcp <PORT>

Nun kann man Cockpit im Webbrowser unter der Adresse <ip des Servers>:<Port> erreichen. Z.B.: 192.168.2.100:9090
Dort sollte man nun, nach akzeptieren des selbstsignierten Zertifikats, eine entsprechende Login-Maske erscheinen.

auf CentOS:

auf Debian:

Hier kann man sich nun mit den regulären System-Zugangsdaten einlogen. Es werden hierbei die auf dem System befindlichen Benutzer-Accounts verwendet und somit muss nicht noch ein extra Benutzer für Cockpit eingerichet werden.

Nach dem erfolgreichen Einloggen wird man dann von Übersicht der wichtigsten Metriken des Systems begrüßt.

Nun kann man so ziemlich alle Aktionen durchführen, welche man auch im Terminal machen kann.
Links im Menü findet man die entsprechenden Punkte:

  • Protokolle
    Hier kann man sich die Systemlogs anschauen, gefiltert nach Zeitraum (aktueller Boot, letzten 24h, letzten 7 Tage) und Schweregrad (Alles, NUr Notfall, Alarm, Kritisch, Fehler, Warnungen, etc).
  • Speicher
    Eine Übersicht über die verfügbaren Festplatten und deren Auslastung (IO-Last, Füllgrad, RAID-Status)
  • Netzwerk
    Eine Übersicht über die verfügbaren Netzwerkschnittstellen, deren Auslastung und die entsprechenden Logs. Hier kann man auch Bündelung (Bonding), Bridges und VLANS hinzufügen. Des weiteren kann man hier, sofern eine Firewall installiert ist, die entsprechenden Regeln verwalten.
  • Konten
    Hier findet sich eine Übersicht über die aktiven Benutzerkonten und es besteht auch die Möglichkeit ein neues Konto anzulegen
  • Dienste
    Besonders sinnvoll bei Distros mit Systemd, da sich hier eine Übersicht über alle Dienste, Sockets und Timer und deren Status finden lässt. Bei diesem Menüpunkt lassen sich die Dienste auch steuern (ein/ausschalten, neu starten) und auch neue Timer anlegen.
  • Aktualisierungen
    Überprüfen auf ausstehenden Aktualisierungen und die Möglichkeit diese per knopfdruck einzuspielen
  • Terminal
    Unter diesem Menüpunkt findet man ein Web-Terminal, in welchem man arbeiten kann wie in der regulären Systemshell
  • Dashboard
    Im Dashboard findet man noch einmal die Systemauslastung, per Graphen, dargestllt.

weitere Features

  • Remote Dashboard
    Sofern man mehrere Systeme administriert, welche Cockpit installiert haben, ist es möglich diese in ein anderem Dashboard anzeigen zu lassen.
    Somit kann man sich in einer *Cockpit*-Instanz die Übersicht über alle entsprechenden Systeme anzeigen lassen.
  • Eigene Erweiterungen schreiben
    Die Cockpit API bietet die Möglichkeit eigene Erweiterungen zu schreiben und diese einzufügen.
    Wie das funktioniert erfährt man hier: cockpit-project.org

Cockpit bietet, mithilfe zusätzlicher Pakete, weitere Features an.

Beispiele:

  • Virtuelle Maschinen
    Installiert man zusätzlich das Paket cockpit-machines, bekommt man einen weiteren Menüpunkt namens Virtuelle Maschinene und man kann nun virtuelle Maschinen auf dem System per Cockpit anlegen und steuern.
    Hierbei gibt es auch ein Pakete für oVirt.

  • Docker Container
    Mit der Installation des Paketes cockpit-docker erhält man die Möglichkeit Docker Container per Cockpit anzulegen und zu steuern.

Autor
Kategorien Linux, Hardware

PRTG Map