IT-Asset-Management - Ueberblick behalten

Wer nicht weiß was im Netz läuft kann es nicht absichern. IT-Asset-Management ist der erste Schritt zu einem kontrollierten IT-Betrieb.

Was ITAM ist

Systematische Erfassung, Verwaltung und Überwachung aller IT-Assets: Hardware, Software, Lizenzen, Cloud-Ressourcen.

Klingt nach Enterprise-Bürokratie. Ist aber auch für kleinere Umgebungen sinnvoll sobald mehr als fünf Server oder Lizenzen im Spiel sind.

Was erfasst werden sollte

  • Hardware:
  • Server (physisch und virtuell): Hostname, IP, OS, CPU, RAM, Disk
  • Netzwerkgeräte: Switches, Router, Firewalls
  • Endgeräte wenn verwaltet
  • Software:
  • Installierte Betriebssysteme mit Version und Supportende
  • Laufende Dienste und ihre Versionen
  • Abhängigkeiten (PHP-Version, MariaDB-Version)
  • Lizenzen:
  • Was ist proprietär, was Open Source?
  • GPL-Code in eigenen Projekten? Copyleft-Pflichten?
  • Welche SaaS-Dienste laufen, zu welchen Konditionen?

Einfache Inventur mit Shell

#!/bin/bash
# inventory.sh — läuft auf jedem Server per Cronjob

echo "=== $(hostname) $(date) ==="
echo "OS: $(lsb_release -d | cut -f2)"
echo "Kernel: $(uname -r)"
echo "Uptime: $(uptime -p)"
echo "IP: $(ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v 127)"
echo "CPU: $(nproc) cores, $(grep 'model name' /proc/cpuinfo | head -1 | cut -d: -f2 | xargs)"
echo "RAM: $(free -h | awk '/^Mem/{print $2}')"
echo "Disk: $(df -h / | awk 'NR==2{print $2 " total, " $3 " used"}')"
echo ""
echo "Services:"
systemctl list-units --type=service --state=running --no-legend | awk '{print "  " $1}'
echo ""
echo "PHP: $(php -v 2>/dev/null | head -1)"
echo "Nginx: $(nginx -v 2>&1)"
echo "MariaDB: $(mysql --version 2>/dev/null)"
# Auf allen Servern ausführen
for srv in web01 web02 db01 backup01; do
    ssh $srv 'bash -s' < inventory.sh
done > /var/reports/inventory-$(date +%Y%m%d).txt

EOL-Tracking

Das Wichtigste: wissen wann Support ausläuft.

PHP 8.1 → EOL 2025-12-31
PHP 8.2 → EOL 2026-12-31
Ubuntu 22.04 LTS → EOL 2027-04
MariaDB 10.11 LTS → EOL 2028-02

endoflife.date ist eine gute Quelle — kostenlos, maschinenlesbar per API.

curl -s "https://endoflife.date/api/php.json" | jq '.[] | select(.cycle == "8.1") | {eol, lts}'

Lizenzcompliance

GPL und LGPL haben Copyleft-Bedingungen: wenn man GPL-Code in eigenen Produkten verwendet muss der eigene Code unter GPL veröffentlicht werden (bei Distribution).

MIT, BSD, Apache 2.0: sehr permissiv, kein Copyleft.

# Alle Composer-Lizenzen auflisten
composer licenses

# npm
npm list --json | jq '.. | .license? // empty' | sort | uniq -c | sort -rn

Wer Software kommerziell verkauft oder als SaaS betreibt sollte die Lizenzen der Abhängigkeiten kennen.