dckg.net
Blog
Tools
Downloads
Sonntag, 18 Oktober 2015 in Linux
Dynamisches MOTD - Servermonitoring einfach und für alle
Für Linux gibt es zum Zwecke der Serverüberwachung zahlreiche Monitoring Tools, bekannte Namen sind z.B. Nagios, Shinken, Icinga, letztere sind alle Abkömmlinge von Nagios.
Dort kann man sich für jedes erdenkliche Ereignis eine Warnung per Email schicken lassen, um frühzeitig über mögliche Probleme informiert zu werden.
Nagios wird oft kommerziell eingesetzt, es kann, einmal konfiguriert, tausende Server überwachen. Für den privaten Bereich ist es zweifellos überdimensioniert und das nicht nur wegen der Menge an Features, sondern überwiegend wegen des hohen Konfigurationsaufwands.

Privat hat man ohnehin nur eine handvoll Server, wo auch eine Downtime nicht Unsummen Geld verschlingen würde. Nachts deswegen geweckt werden möchten wohl auch die wenigsten, ergo reicht eine Statusmeldung beim Login.
Genau diese Aufgabe übernimmt ein dynamisches MOTD - Message Of The Day.

Standardmäßig wird beim SSH Login der Inhalt der Datei /etc/motd geladen,


The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

hier eine nervige, im Hinblick auf den Systemstatus, unnütze Meldung.

Erfreulicherweise besteht die Möglichkeit, während eines SSH Logins ein Script ausführen zu lassen:




Das von mir erstellte Skript gibt bei jedem SSH Login einen Überblick über die wichtigsten Systemressourcen:
Welcome to Debian GNU/Linux 8.2 (jessie) (3.16.0-4-586) (i686)
# System Load
Uptime: 2 hours, 4 minutes
Users: 4

CPU Load: 0.00 0.13 0.42 (1m, 5m, 15m)
Processes: 80 (0 zombies)
Memory Usage: 93.3% (25.2% w/o buffers/cache)
Swap Usage: 11.2%

# Disk Usage - device mountpoint used space
/dev/sda1          /        11%
tmpfs            /dev/shm     0%

# Network Usage - interface RX     TX
lo                0 MiB     0 MiB
eth0               1 MiB     1 MiB

# Security
0 failed SSH logins since Oct 17
0 packages can be updated.
0 updates are security updates.


Gelb sind hier alle Werte, für die keine Warnung definiert werden kann. Grün bedeutet in Ordnung, Rot ist eine Warnung.
Im Skript selbst können die Grenzwerte für Prozessorauslastung, Zombieprozesse, Arbeitsspeicher- und Swapauslastung, sowie Speicherplatzbelegung auf der Festplatte individuell angepasst werden.
Wird der Grenzwert überschritten, wird die entsprechende Zeile rot gefärbt, was eine schnelle optische Rückmeldung bei Problemen darstellt.

Erstes Setup - Copy&Paste ins Terminal
apt-get update && apt-get install figlet lsb-release bc -y; wget -O /usr/local/bin/dynmotd https://raw.githubusercontent.com/dckg/dynamic-motd/master/dynamic-motd.sh; chmod +x /usr/local/bin/dynmotd; rm -f /etc/motd; echo /usr/local/bin/dynmotd >> /etc/profile; echo /usr/local/bin/dynmotd >> /etc/zsh/zprofile;
Danach wird bei jedem SSH Login die obige, dynamische Statusmeldung erzeugt.

CentOS:
yum install figlet redhat-release bc

Nur Update, falls schon installiert
wget -O /usr/local/bin/dynmotd https://raw.githubusercontent.com/dckg/dynamic-motd/master/dynamic-motd.sh;

Getestet auf verschiedenen Debian basierten Systemen. Der Part mit den vorhanden Sicherheitsupdates verwendet das debian-spezifische Paketverwaltungsprogramm apt-get, welches desweiteren in anderen populären, auf Debian basierenden Distributionen, wie beispielsweise Ubuntu, Linux Mint, elementary OS, Raspbian, zum Einsatz kommt.

Changelog
05. Nov. 2015 [FIX] arithmetic operations < > did not work = wrong status color. changed all `expr` (deprecated) to $(expr)
22. Nov. 2015 [ADD] Support for different package managers (in progress, skip security section if unknown package managers), can now be used on every distribution without errors.
22. Nov. 2015 [FIX] Multiuser support, works now without errors even if you are not root, because security section is skipped.
27. Dec. 2015 [ADD] zsh support in first setup, colors changed
31. Dec. 2015 [FIX] Portability: mem/swap info now from /proc/meminfo; package dependency check lsb-release added; fix memory usage warning
23. Jan. 2016 [FIX] Add caching of update count, reduces load time. Now CentOS-safe.
08. Apr. 2016 [FIX] swap, apt-update, cpu load warning now relative, smaller layout (col width)
18. Apr 2016 [FIX] float calculation for cpu load


Update 22.01.2017:
Mit hinzugekommen sind die Anzeige für File-Descriptors sowie Archlinux Unterstützung, was den Paketmanager für die Anzeige der Updates, sowie Sicherheitsupdates angeht.
Von den Farben her ist schon länger grün für alles in Ordnung, rot für Warnung festgelegt. Weiße Zeilen haben keine Statusanzeige, Türkis sind Titel.

Ein Debian Server:


Auf Archlinux:
Site optimised for Google Chrome / Chromium