Ein Wiki privater Natur

Server Monitoring Ergebnis in MS-Teams einfügen

Das Problem

Die Ausgaben von Server-Monitoring-Tools lassen sich oft nicht direkt in MS-Teams als formatierte Tabelle einfügen.
Markdown-Tabellen werden als Code-Block dargestellt, HTML wird nicht immer korrekt interpretiert.

Die Lösung: CSV mit Semikolon

1. Skript ausführen

# Monitoring Skript ausführen
CONFIG_FILE=~/Scripte/monitor-servers.cfg MAILTO=admin@firma.de ~/Scripte/monitor.sh > monitor-output.txt

2. In CSV konvertieren

~/Scripte/log2csv.sh < monitor-output.txt > server-status.csv

3. In LibreOffice Calc importieren

  1. Datei server-status.csv öffnen
  2. Trennoptionen wählen:
    • Trennzeichen: Semikolon (;) - bewusst nicht Komma, sonst bricht 9,7Gi/19Gi falsch um
    • Zeichensatz: UTF-8 (wichtig wegen → Zeichen)
  3. Alle Daten markieren → Strg+C

4. In MS-Teams einfügen

Einfach Strg+V - die Tabelle erscheint formatiert mit allen Spalten.

Beispiel-Daten (anonymisiert)

server-status.csv:

Server;Uptime;Disk;Memory;Updates;Hinweise
web01.example.com;45 Tage;22G 25% free;9.8Gi/19Gi;13 Pakete;
db01.example.com;1004 Tage;881G 52% free;265Gi/313Gi;keine;"*** ALERT: Uptime 1004 Tage (>90) - DRINGEND REBOOTEN!\nNOTIZ: SAP-System → 2. Person muss online sein!"
pbs01.example.com;390 Tage;188G 4% free;9.0Gi/15Gi;56 Pakete;"*** ALERT: Uptime 390 Tage (>90) - DRINGEND REBOOTEN!"

Warum Semikolon?

Problem Lösung Grund
9,7Gi/19Gi bricht um Semikolon als Trennzeichen Komma in Werten würde falsch interpretiert werden
Mehrere Hinweise Zeilenumbruch in einer Zelle Alert + NOTIZ in einer Zelle mit \n
UTF-8 Zeichen UTF-8 Zeichensatz wählen → Symbol muss korrekt dargestellt werden

Alternative: HTML

Falls CSV nicht funktioniert, kann auch HTML verwendet werden:

~/Scripte/log2html.sh < monitor-output.txt > status.html
xdg-open status.html

Allerdings ist CSV zuverlässiger für MS-Teams und funktioniert immer.

Skripte Übersicht

Skript Zweck
~/Scripte/monitor.sh Hauptmonitoring-Skript (Linux/Windows)
~/Scripte/log2csv.sh Konvertiert in CSV mit Semikolon
~/Scripte/log2html.sh Konvertiert in HTML-Tabelle
~/Scripte/log2md.sh Konvertiert in Markdown-Tabelle
~/Scripte/log2tsv.sh Konvertiert in TSV (Tab-separated)

Crontab Beispiel

# Donnerstags 8 Uhr ausführen
0 8 * * 4 CONFIG_FILE=/root/Scripte/monitor-servers.cfg MAILTO=admin@firma.de /root/Scripte/monitor.sh > /tmp/monitor-output.txt 2>&1

Dann manuell oder mit einem zweiten Cron-Job konvertieren und versenden.

Windows-Server Hinweis

Für Windows-Server wird PowerShell verwendet:

Die Erkennung erfolgt automatisch über /etc/os-release (Linux) oder PowerShell-Befehle (Windows).


Getestet mit LibreOffice 7.x und MS-Teams Desktop Client