andreas

Needrestart in Checkmk einbinden

02. Juli 2024 · Anwendungen · andreas · Kein Kommentar

Mit needrestart gibt es für Lunix-basierte Hosts eine Anwendung, die sich in den dpkg,- rpm- oder pacman-Mechanismus einklinkt und nach einer Aktualisierung des Systems mitteilt, ob und welche Systemkomponenten einen Neustart benötigen.

Needrestart: Critical

Neben zahlreichen Konfigurationsmöglichkeiten bietet needrestart auch einen Nagios-kompatiblen Ausgabemodus zur Einbindung in das Monitoring-System:

# needrestart -p OK - Kernel: 6.1.0-22-amd64, Services: none, Containers: none, Sessions: none|Kernel=0;0;;0;2 Services=0;;0;0 Containers=0;;0;0 Sessions=0;0;;0

Checkmk ist in der Lage, über MRPE auch Nagios-kompatible Skripte zu verwenden, allerdings geht es auch einfacher mit Hilfe eines Local Checks:

A local check can be written in any programming language supported by the target host. The script must be constructed so that each check produces a status line consisting of four parts. Here is an example:

0 “My service” myvalue=73 My output text which may contain spaces

Die Skripte werden im Verzeichnis “/usr/lib/check_mk_agent/local/” abgelegt und automatisch vom Agenten mitverarbeitet.

Needrestart: OK

Für needrestart reicht ein kleiner Wrapper, der das Ergebnis des Checks in einen numerischen Status wandelt und die Meldung selbst als Statusdetail ausgibt. Der Dienstname wird auf “needrestart” gesetzt und auf die Übermittlung von Metriken verzichtet.

#!/usr/bin/bash NEEDRESTART="$(/usr/sbin/needrestart -p)" if [[ "$NEEDRESTART" =~ ^OK ]]; then STATE=0 elif [[ "$NEEDRESTART" =~ ^WARN ]]; then STATE=1 elif [[ "$NEEDRESTART" =~ ^CRIT ]]; then STATE=2 else STATE=3 fi echo "$STATE \"needrestart\" - $NEEDRESTART"

Nachdem das Skript angelegt und ausführbar gemacht wurde, muß auf dem Host nur noch ein Service-Discovery durchgeführt werden damit der neue Service übernommen werden kann.


Playtive Clippys - Lucky Luke Badewanne

29. Juni 2024 · Klemmbausteine · andreas · Kein Kommentar

Keine Ahnung, was sich der Packungsdesigner dabei gedacht hat, aber die optische Aufmachung des 95-teiligen Klemmbausteinsets “Lucky Luke: Badewanne” erinnert eher an eine Packung Soßenbinder als an Kinderspielzeug. Für alle, welche beim Thema Klemmbausteine gleich an einen dänischen Spielwarenhersteller denken, trägt die Packung prominent den Hinweis “Kompatibel mit allen handelsüblichen Klemmsteinen”.

Packung

In der Schachtel finden sich neben drei Tütchen mit eben diesen Steinen auch die Bauanleitung sowie ein Stickerbogen und eine kleine Platte, um Lucky Luke als Einzelfigur aufzustellen - das Augenmerk fällt allerdings mehr auf das “CE”-Zeichen und die Herstellerinformationen als auf eine stimmungsvolle Präsentation des Westernhelden.

Daß Sticker heutzutage leider an der Tagesordnung sind, ist auch bei anderen Firmen im Klemmbaustein-Bereich normal. Daß diese allerdings über mehrere Einzelteile geklebt werden sollen, habe ich bisher noch selten erlebt. Dies steht einer kreativen Wiederverwendung der Bauteile im Weg, denn mit Auseinandernehmen der Bauteile ist auch der Aufkleber hinfällig.

Die Qualität der Teile ist überraschend gut. Im Gegensatz zu anderen Herstellern fallen diese beim Zusammenbau nicht direkt wieder auseinander und sind sie alle mit “normalen” Kraftaufwand zusammensteckbar.

Letztendlich ist “Lucky Luke: Badewanne” ein nettes kleines Set für Fans des Westernhelden, das mit der Westernthematik ein Thema aufgreift, welches bei anderen Klemmbaustein-Herstellern aktuell nicht allzu präsent ist und alleine deshalb schon etwas Abwechslung bietet.


ALSA kann auch Gerätenamen

25. Juni 2024 · Anwendungen · andreas · Kein Kommentar

Auf einem Raspberry Pi hatte ich das Problem, daß ALSA bei jedem Neustart des Systems die Reihenfolge der Ausgabegeräte neu sortierte:

$ cat /proc/asound/cards 0 [Headphones ]: bcm2835_headpho - bcm2835 Headphones bcm2835 Headphones 1 [PMA50 ]: USB-Audio - PMA-50 D & M Holdings Inc. PMA-50 at usb-3f980000.usb-1.1.3, high speed 2 [vc4hdmi ]: vc4-hdmi - vc4-hdmi vc4-hdmi

Mal war der PMA-50 als Karte 1 verfügbar, mal wurde ihm die 2 zugewiesen und als Folge daraus war das in der “alsa.conf” festgelegte Ausgabegerät nicht immer das von mir eigentlich gewünschte und der externe DAC blieb stumm.

/etc/asound.conf
pcm.!default { type hw card 1 } ctl.!default { type hw card 1 }

ALSA kann statt der Nummer der Karte (wie in gefühlt 99% aller Beispiele zu finden) auch deren Namen verwenden werden. Eine Liste aller gültigen Geräte findet sich unter “/proc/asound/”:

$ ls -l /proc/asound/ dr-xr-xr-x 4 root root 0 25. Jun 08:42 card0 dr-xr-xr-x 4 root root 0 25. Jun 08:42 card1 dr-xr-xr-x 8 root root 0 25. Jun 08:42 card2 ... lrwxrwxrwx 1 root root 5 25. Jun 08:42 Headphones -> card0 ... lrwxrwxrwx 1 root root 5 25. Jun 08:42 PMA50 -> card2 ... lrwxrwxrwx 1 root root 5 25. Jun 08:42 vc4hdmi -> card1 ...

Nach einer Anpassung der “alsa.conf” funktioniert der USB-DAC unabhängig von der zugewiesenen Gerätenummer:

/etc/asound.conf
pcm.!default { type hw card PMA50 } ctl.!default { type hw card PMA50 }

Hörenswert #116: Johnny Cash - Bridge Over Troubled Water

23. Juni 2024 · Hörenswert · andreas · Kein Kommentar

Zugegebermaßen kann ich die Begeisterung für Simon & Garfunkel so überhaupt nicht nachvollziehen, aber das “Bridge Over Troubled Water”-Cover von Johnny Cash finde ich großartig, genau wie den Rest von “American IV: The Man Comes Around”.


x86/cpu: SGX disabled by BIOS

19. Juni 2024 · Betriebssysteme · andreas · Kein Kommentar
Intel Software Guard Extensions

Nach dem Update von Debian 11 auf Debian 12 zeigte ein Dell 7280 bei jedem Systemstart kurz die Meldung

[ 0.076930] x86/cpu: SGX disabled by BIOS.

was zu der Frage “Was ist SGX und wer braucht das?” führte.

Bei SGX handelt es sich um die Intel Software Guard Extensions, eine Erweiterung der Prozessorarchitektur, um Programme innerhalb des RAMs voneinander abzuschotten.

Die Erklärung, warum die Meldung nach dem Debain-Update plötzlich ausgegeben wurde, hängt mit dem verwendeten Kernel zusammen: während Bullseye noch mit dem 5.10’er Kernel lief, wird Debian Bookworm mit Kernel 6.xx ausgeliefert - der Support für Intel SGX wurde mit Kernel 5.11 eingeführt.

Seit Prozessor-Genration 11 ist SGX wohl aber wieder Geschichte, denn sowohl in den Core-i-Prozessoren der Generationen 11 als auch 12 fehlten die Software Guard Extensions wieder, was zu Problemen mit sich darauf verlassender Software führt.

Die Extensions können im BIOS mit Hilfe der Option “Intel SGX Enable” aktiviert werden. “Software Controlled” ist hierbei nicht ausreichend, die Option muß auf “Enabled” gesetzt werden, damit der Kernel zufrieden ist.