Zum Inhalt

CheckMK

mailcow bietet mittels des eigenen Update-Scripts die Möglichkeit zu prüfen, ob Updates vorhanden sind.

Sofern mailcow-Updates mittels checkmk abgefragt werden soll, kann man im local-Verzeichnis des checkmk-Agents (normalerweise /usr/lib/check_mk_agent/local/) eine ausführbare Datei mit dem Namen mailcow_update und nachfolgendem Inhalt erstellen:

#!/bin/bash
cd /opt/mailcow-dockerized/ && ./update.sh --check-tags >/dev/null
status=$?
if [ $status -eq 3 ]; then
  echo "0 \"mailcow_update\" mailcow_update=0;1;;0;1 No newer tags available."
elif [ $status -eq 0 ]; then
  echo "1 \"mailcow_update\" mailcow_update=1;1;;0;1 New tag is available.\nThe changes can be found here: https://github.com/mailcow/mailcow-dockerized/releases/latest"
else
  echo "3 \"mailcow_update\" - Unknown output from update script ..."
fi
exit

Um jeden neu verfügbaren Code als Update angezeigt zu bekommen, kann die ausführbare Datei mit folgendem Inhalt erstellt werden:

#!/bin/bash
cd /opt/mailcow-dockerized/ && ./update.sh -c >/dev/null
status=$?
if [ $status -eq 3 ]; then
  echo "0 \"mailcow_update\" mailcow_update=0;1;;0;1 No updates available."
elif [ $status -eq 0 ]; then
  echo "1 \"mailcow_update\" mailcow_update=1;1;;0;1 Updated code is available.\nThe changes can be found here: https://github.com/mailcow/mailcow-dockerized/commits/master"
else
  echo "3 \"mailcow_update\" - Unknown output from update script ..."
fi
exit

Sofern das mailcow-Installationsverzeichnis nicht /opt/ ist, kann der Pfad in der zweiten Zeile angepasst werden.

Danach für den mailcow-Host in checkmk die Services neu inventarisieren und es sollte ein neuer Check mit Namen mailcow_update auswählbar sein.

Der Check mailcow_update wird jedes Mal ausgeführt, wenn der checkmk Agent den mailcow Server überprüft. Sie können das Ergebnis zwischenspeichern, indem Sie das Skript in einem Unterordner mit dem Namen der Anzahl von Sekunden ablegen, für die Sie es zwischenspeichern möchten. \ /usr/lib/check_mk_agent/local/3600/ speichert die Antwort für 3600 Sekunden (1 Stunde).

Screenshots

Keine Updates verfügbar

Sofern keine Updates / keine neuen Tags vorhanden sind, wird OK ausgegeben.

No update available

Neue Updates verfügbar

Sofern Updates / Neue Tags vorhanden sind, wird WARN ausgegeben.

Updates available

Sollte stattdessen CRIT gewünscht sein, ist die 7. Zeile durch folgendes zu ersetzen:

echo "2 \"mailcow_update\" mailcow_update=1;1;;0;1 Updated code is available.\nThe changes can be found here: https://github.com/mailcow/mailcow-dockerized/commits/master"

Detailierter Check-Output

Long check output

  • Hier wird ein Link zu den GitHub Commits / des letzten Release von mailcow ausgegeben, sofern Updates verfügbar sind.
  • Metriken werden ebenfalls ausgegeben (nicht nur bei vorhandenen Updates):
  • 0 = Keine Updates verfügbar
  • 1 = Neue Updates verfügbar