Zabbix linux securityupdates monitoren

Anzahl der verfügbaren Security-Updates für Linux monitoren

Cronjobs, die regelmäßig eine Mail mit den verfügbaren Security-Updates eines Systems verschicken, sind zwar ganz nützlich. Aber wenn man viele Systeme zu verwalten hat, ist ein zentralisiertes Monitoring der Updates hilfreicher.

Red Hat und CentOS

Auf Updates prüfen

Red Hat und CentOS haben das Werkzeug yum an Bord, welches die Anzahl der verfügbaren Updates auflistet:

yum --security check-update

Wenn oben genanntes Kommando nur den Fehler Command line error: no such option: --security meldet, fehlt noch ein Yum-Plugin, welches Sie mit yum install yum-security nachinstallieren.

Legen Sie folgenden Conjob an, welches die Ausgabe so formatiert, dass Zabbix-Sender diese versteht:

0 8,22 * * * root zabbix_sender -z 10.0.1.23 -s "odb.sys25.net" -k "yum.security.check-update" -o "$(yum --security check-update 2>/dev/null|grep "package.*needed for security"|sed s/"No pack"/"0 pack"/g)"

Beachten Sie, dass wenn keine Updates verfügbar sind, die Ausgabe "No packges needed for security needed" lautet. Das ist für Zabbix schwer lesbar, weshalb Sie "No" durch "0" ersetzen sollten.

Items einrichten

Richten Sie in einem Template die folgenden Items vom Typ „Zabbix-Trapper“ ein:

  • Yum Security-Updates available, key=yum.securityupdates, Numeric Unsigned
  • Yum Updates available, key=yum.updates, Numeric Unsigned
  • Red Hat Release, key=rhel.release, Charakter

Ubuntu und Debian

Auf Updates prüfen

Ubuntu-Usern steht das Skript update-notifier aus dem gleichnamigen Paket zur Verfügung, welches Sie mit apt-get install update-notifier-common installieren.

Das „update-notifier-common“ ist in Debian 8 Jessie leider nicht mehr enthalten. Sie können aber das Paket aus dem Repository von Debian 7 verwenden:
http://ftp.de.debian.org/debian/pool/main/u/\
update-notifier/update-notifier-common_0.99.3debian11_all.deb
dpkg -i update-notifier-common_0.99.3debian11_all.deb
apt-get -f install 

Bei der Ubuntu-Serverinstallation sollte das Skript standardmäßig installiert werden.

/usr/lib/update-notifier/apt-check --human-readable
53 packages can be updated.
28 updates are security updates.
# Nur Anzahl Security-Updates zurückgeben
/usr/lib/update-notifier/apt-check --human-readable|grep "security update"|cut -d " " -f1

Wenn Sie Zabbix-Server 3.4 oder neuer verwenden, können Sie die komplette Ausgabe von update-notifier an den Zabbix-Server als Text senden. Sogenannte Dependend Items extrahieren dann die Zahlenwerte in zwei getrennte Items. Legen Sie beispielsweise einen Cronjob an, der folgendes Kommando ausführt:

zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k apt.update-notifier -o "$(/usr/lib/update-notifier/apt-check --human-readable)"

Fügen Sie die nachfolgenden Zeilen in ein Bash-Skript, zum Beispiel/usr/lib/zabbix/scripts/debian.updates.sh ein, und machen Sie dieses per chmod +x ausführbar:

#!/bin/bash
if [ -e /etc/zabbix/hostname ]
then
	HOSTNAME=$(cat /etc/zabbix/hostname)
else
	HOSTNAME=$(hostname -f)
fi

UPDATES=$(/usr/lib/update-notifier/apt-check 2>&1||echo "-1,-1")
echo -n "$HOSTNAME debian.securityupdates "
echo $UPDATES|cut -d';' -f1
echo -n "$HOSTNAME debian.updates "
echo $UPDATES|cut -d';' -f2
echo -n "$HOSTNAME debian.release "
lsb_release -a 2>/dev/null|grep Release|awk '{print $2}'

Das Skript erzeugt eine formatierte Ausgabe, die Sie per Zabbix-Sender an den Zabbix-Server schicken können.

Richten Sie einen Cronjob ein, der die Ausgabe des Cronjobs per Pipe an den Zabbix-Sender übergibt, zum Beispiel:

0 7,14 * * * root /usr/lib/zabbix/scripts/debian.updates.sh|zabbix_sender -z <IP-ZABBIX-SERVER> -i - >/dev/null

Items einrichten

Richten Sie in einem Template die folgenden Items vom Typ „Zabbix-Trapper“ ein:

  • Debian Security-Updates available, key=debian.securityupdates, Numeric Unsigned
  • Debian Updates available, key=debian.updates, Numeric Unsigned
  • Debian Release, key=debian.release, Charakter
Zabbix-Server bekommt per Zabbix-Sender die Anzahl der verfügbaren Updates übermittelt.

Vergessen Sie nicht, einen Trigger einzurichten! Updates sollten zeitnah installiert werden.