Skip to content

Admin Panels Part2: Cockpit - Leitstand für Fedora, CentOS oder Ubuntu

Tools für eine zentrale Verwaltung von Linux Servern gibt es einige. Mit Ajenti und LinuxDash hatte ich bereits zwei vorgestellt.
Einen weitern interessanten Ansatz verfolgt Red Hat seit einiger Zeit.

Cockpit - Serververwaltung

Mit Cockpit haben sie eine frei über Github entwickelte Linux Steuerzentrale in petto, welche auf neueren Distributionen von Fedora, CentOS oder ArchLinux bereits vorinstalliert oder zumindest als fertiges Installationspaket bereit liegt.
Cockpit setzt auf systemd und ist somit auf dem aktuellen Ubuntu 14.04 LTS nicht unbedingt praktikabel, da aber Ubuntu 16.04 bereits in den Startlöchern steht, sieht es für Cockpit auf Ubuntu Systemen in Zukunft ebenfalls gut aus.

Das Verwaltungstool unterstützt nicht nur verschiedene Systeme, es kann über das zentrale Dashboard auch auf eine ganze heterogene Umgebung zugreifen, um diese zu verwalten. Die Kommunikation zwischen den Maschinen erfolgt über SSH.

cockpit

Schlicht aber effektiv

Die einfache Bedienung des Tools fängt beim Login an, hier werden automatisch hinterlegte Nutzer mit root Rechten für den Login freigeschaltet.
Nicht nur die moderne und aufgeräumte Oberfläche wirkt erfrischend, auch die Auswertungen von Systemperformance ist schlicht und ausreichend.
Die Usability endet bei einem eingebundenen Terminal, welches das Arbeiten auf der Konsole über die Oberfläche ermöglicht.

cockpit-login

Sichere Sache

Anders als Webmin, Ajenti und Co, benötigt Cockpit keinen Apache Server oder ähnliches, welcher ständig in Betrieb sein muss. Der eigene Dienst cockpit-ws startet den Webserver nur, sobald eine Anfrage auf dem Standard Port 9090 ankommt. Sollten keine weiteren Anfragen auf dem Port ankommen, legt er sich nach 90 Sekunden Inaktivität wieder schlafen.

Ist der Webserver aktiv kann er über HTTP und HTTPS erreicht werden, HTTP wird aber automatisch auf HTTPS umgeleitet.  Ein Zertifikat kann unter "/etc/cockpit/ws-certs.d" abgelegt werden. SSL3 und RC4 sind von Haus aus deaktiviert.

Die wichtigsten Cockpit Konsolen Befehle

Prüfen welches Zertifikat verwendet wird

sudo remotectl certificate

Cockpit manuell starten

sudo systemctl enable cockpit.socket
sudo systemctl start cockpit.service
sudo systemctl status cockpit.service

Cockpit Autostart Eintrag erstellen

sudo systemctl enable cockpit.socket

Anderen Port hinterlegen

Temporär

sudo nano /usr/lib/systemd/system/cockpit.socket

oder permanent

sudo cp /lib/systemd/system/cockpit.socket /etc/systemd/system
sudo nano /etc/systemd/system/cockpit.socket

ListenStream=666

sudo systemctl daemon-reload
sudo systemctl restart cockpit.socket

Cockpit Oberfläche (Standardport)

https://cockpit-server:9090

cockpit_install

Installation unter CentOS

Unter bereits voll unterstützen Systemen, ist die Installation ein Kinderspiel

yum install cockpit
sudo systemctl start cockpit

Den Dienst erlauben

systemctl enable cockpit.socket

Wenn nötig die Firewall öffnen

firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload

Das System ist nun über den oben erwähnten Port ereichbar.

cockpit-uebersicht


Installation from Source (Ubuntu)

Eine Installation ist eigentlich erst ab Ubuntu 15.10 sinnvoll, aber dennoch auf 14.04 möglich.

Pakete installieren

sudo apt-get install xsltproc libglib2.0-dev libjson-glib-dev libpolkit-agent-1-dev libkrb5-dev liblvm2-dev libgudev-1.0-dev libssh-dev libpam0g-dev libkeyutils-dev libpcp3-dev libpcp-import1-dev libpcp-pmda3-dev intltool xmlto libxslt1-dev selinux-policy-dev checkpolicy selinux-policy-doc libdbus-1-dev libsystemd-dev glib-networking

wget https://github.com/cockpit-project/cockpit/releases/download/0.102/cockpit-0.102.tar.xz
tar xvf cockpit-0.102.tar.xz
cd /cockpit-0.102
sudo ./configure
make
make install

Mögliche Fehler

Starting Cockpit Web Service...
remotectl[26324]: Generating temporary certificate using: openssl req -x509 -days 36500 -newkey rsa:2048 -keyout /usr/local/etc/cockpit/ws-certs.d/0-self-signed.P7XPFY.tmp -keyform PEM -nodes -o
remotectl[26324]: remotectl: /usr/local/etc/cockpit/ws-certs.d/0-self-signed.cert: TLS support is not available
systemd[1]: cockpit.service: Control process exited, code=exited status=1
systemd[1]: Failed to start Cockpit Web Service.
systemd[1]: cockpit.service: Unit entered failed state.
systemd[1]: cockpit.service: Failed with result 'exit-code'.

Lösung

sudo apt-get install glib-networking

Installation von PPA (Ubuntu)

Via PPA fällt die Installation um einiges leichter, allerdings kommt hier ein relativ altes Installationspaket zum Einsatz (0.38).

    sudo add-apt-repository ppa:jpsutton/cockpit

    sudo apt-get update

    sudo apt-get install cockpit

cockpit-dashboard

 

Ubuntu 14.04

Um Cockpit unter älteren Systemen zu starten, kann nicht auf systemd zurückgegriffen werden, es startet hier wie folgt.

sudo /usr/sbin/remotectl certificate --ensure --user=root
sudo /usr/libexec/cockpit-ws

Natürlich kann die mit einem eigenen Init Script automatisiert werden, dies bleibt jedem selbst überlassen.

Fazit

Sowohl für einzelne Server, als auch für kleinere Netzwerke, bestehend aus Linux Rechnern, bietet Cockpit eine Möglichkeit Server einfach zu warten und zu überwachen. Durch die leichte Installation und die klare Oberfläche ist sie besonders für Einsteiger geeignet.

Leider gibt es für Ubuntu Systeme bisher keine offiziellen Pakete. Das PPA ist leider nicht auf dem neuesten Stand. Eventuell ändert sich dies mit Ubuntu 16.04 LTS.

Mit dem Landscape Server bietet Canonical bereits eine eigene Ubuntu Server Verwaltung und Performance Analyse an, welche auf bis zu 10 Systemen umsonst angewendet werden kann. (siehe Artikel).

Welches Admin Tool für die eigenen Bedienungen geeignet ist, muss wohl immer individuell entschieden werden.


Quellen

http://www.golem.de/news/cockpit-angesehen-die-einfache-steuerzentrale-fuer-linux-server-1507-115035-3.html
http://cockpit-project.org/guide/latest

 

Admin Panels Part1: Ajenti - Mit Python zur einfachen Serververwaltung

Für eine einfache und übersichtliche Linux Server Verwaltung greifen viele zu Admin Oberflächen. 
Diese erleichtern Administratoren den Überblick und ermöglichen anderen Nutzer beispielsweise Leistungsdaten abzufragen, Dienste zu starten oder Skripte auszuführen.
Auf dem Markt existieren viele solcher Tools, einige davon möchte ich hier in einer fortlaufenden Serie vorstellen. Den Anfang macht

Ajenti

ajenti

Das Tool ist in Python geschrieben und in einer freien und professionellen Version verfügbar. Wobei die freie Version von jedem gentutzt werden kann, lediglich für das Einbetten in Hardware wird eine Lizenz fällig.

Das Admin Panel bietet dank API und Plugins viele Erweiterungsmöglichkeiten. Neuester Streich ist Ajenti V, welches sich als Webhosting Modul präsentiert, momentan aber noch in einer Beta Phase steckt.

ajenti-funktionen

Ajenti selbst stellt in einer übersichtlichen Menüleiste Systemdaten, Software. Werkzeuge und Tools zur Verfügung, welche sich individuell für Nutzer zusammenstellen lassen. Diese werden dann auf dem Dashboard eingeblendet (siehe Screenshot).

Die Bedienung ist selbsterklärend. Verpflichtend sollte aber im ersten Schritt das Standardpasswort angepasst werden. Wer keine anonymen Daten senden möchte, sollte auch diesen Punkt in der Benutzerverwaltung deaktivieren.

Ajenti in Ubuntu installieren

Das Admin Werkzeug ist für die bekannten Linux Distributionen (Debian, CentOS, FreeBDS) erhältlich und lässt sich relativ leicht installieren.

wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add -

echo "deb http://repo.ajenti.org/ng/debian main main ubuntu" | sudo tee -a /etc/apt/sources.list

sudo apt-get update && sudo apt-get install ajenti

Ajenti kommt von Haus aus mit HTTPS auf Port 8000, darum muss während der Installation ein Zertifikat generiert werden.

:: Generating key

Generating RSA private key, 2048 bit long modulus
..............................................................................................+++
...........................................+++
e is 65537 (0x10001)

:: Generating certificate request


:: Removing passphrase

writing RSA key

:: Generating certificate

Signature ok
subject=/C=US/ST=NA/L=Nowhere/O=Acme Inc/OU=IT/CN=ajenti.example.de
Getting Private key
:: SSL configured!
------------------------------------------------
Now start Ajenti with 'service ajenti restart'
Ajenti will listen on HTTPS port 8000 by default

Default username : root
Default password : admin

Nun noch ein Neustart und fertig ist die frisch gebackene Admin Oberfläche, welche unter https://ajenti.example.de:8000 erreichbar ist.


sudo service ajenti restart

Stopping Ajenti:
  stopped
Starting Ajenti:
17.06.2015 14:54 INFO  Using config file /etc/ajenti/config.json
 
started

Wie der Ausgabe oben zu entnehmen ist können in der Datei config.json weitere Konfigurationen vorgenommen werden.


Ajenti lässt sich ebenfalls hinter einem Apache oder Nginx betreiben.

Apache und Ajenti

Folgende Module samt Konfiguration werden auf einem Apache benötigt.

sudo a2enmod proxy proxy_connect proxy_http headers

Durch den absoluten Ajenti Pfad, stellt die Apache Konfiguration keine große Herausforderung dar.

RequestHeader set Origin http://localhost:8000
ProxyPass /ajenti http://localhost:8000/
ProxyPassMatch ^/(ajenti:.*)$ http://localhost:8000/$1
ProxyPassReverse /ajenti /

Nginx und Ajenti

Gleiches gilt für für die Server Konkurrenz Nginx, auch hier ist ein Betrieb einfach umzusetzen

server {
    client_max_body_size 20m;

    location ~ /ajenti.* {
        rewrite (/ajenti)$ / break;
        rewrite /ajenti/(.*) /$1 break;
        proxy_pass http://127.0.0.1:8000;
        proxy_redirect / /ajenti/;
        proxy_set_header Host $host;
        proxy_set_header Origin http://$host; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
    }
}

Weitere Installations und Arbeitstipps lassen sich in der Dokumentation finden.

Fazit

Ajenti wirkt aufgeräumt und bringt dank seines Python Backend keinen unnötigen Balast mit auf den Server. Es ist zwar nicht ganz so schlank, wie das im Frühjahr vorgestellte Linux Dash, beherrscht dafür aber den direkten Eingriff aufs System und bietet somit um ein vielfaches mehr Möglichkeiten.Wer nur auf Performance Daten aus ist, der sollte auf das bereits erwähnte Linux Dash zurückgreifen.

 

ajenti


Das könnte dich auch interessieren

Linux Dash - Schlanke Server Überwachung auf Ubuntu installieren