PDF-Reports¶
Statusberichte und SLA-Zusammenfassungen als PDF — automatisch generiert, automatisch versandt.
Wofür¶
- Monats-SLA-Bericht an den Kunden
- Wochenstatus an die eigene Geschäftsführung
- Quartals-Audit-Bericht für Compliance
Manuelle Generierung ist möglich, der eigentliche Wert liegt in der Automatisierung.
Report-Templates¶
Drei eingebaute Templates:
| Template | Inhalt |
|---|---|
| SLA-Monatsbericht | Verfügbarkeit pro Service, Vorfälle, Downtimes |
| Status-Zusammenfassung | Aktuelle Lage, offene Probleme, Trend zur Vorperiode |
| Audit-Bericht | Audit-Log-Auszüge mit Filter, formatiert |
Custom-Templates für Pro/Enterprise: HTML+CSS-Datei hochladen, wird im PDF-Renderer (WeasyPrint) gerendert.
Geplante Reports¶
/reports/scheduled → Neu:
| Feld | Bedeutung |
|---|---|
| Name | „Acme SLA April" |
| Template | aus der Liste |
| Scope | Tenant / Tag / Hosts |
| Frequenz | täglich / wöchentlich / monatlich |
| Zeitpunkt | Cron-artig |
| Empfänger | Liste E-Mail-Adressen |
| Format | PDF (Default) oder HTML-Mail |
| Sprache | DE / EN |
Beispiel:
name: "Acme Monthly SLA"
template: sla_monthly
scope:
tenant: Acme GmbH
schedule:
cron: "0 6 1 * *" # erster Tag im Monat um 06:00
period: last_month
recipients:
- acme-ops@example.com
- acme-management@example.com
language: de
Manuelle Generierung¶
Ad-hoc:
/reports → Report erstellen mit gleichen Parametern, sofortige Generierung. PDF wird zum Download bereitgestellt + optional versandt.
Render-Pipeline¶
flowchart LR
SCHED[Scheduler] --> Q[Queue]
Q --> RENDER[Render-Job]
RENDER --> DATA[Daten holen]
DATA --> HTML[HTML rendern]
HTML --> PDF[PDF via WeasyPrint]
PDF --> STORE[in object-storage / volume]
PDF --> MAIL[E-Mail mit Attachment]
WeasyPrint braucht keine Headless-Browser-Engine — reine Python-Lib auf Pango/Cairo. Schnell, deterministisch, mit Schriftarten-Bündel.
Branding¶
Pro Tenant kannst du:
- Logo (oben links)
- Primär-Farbe (Header / Section-Heading)
- Footer-Text
- Sprache (DE / EN)
Eingestellt unter Admin → Tenants → Branding.
Speicherort¶
Generierte PDFs landen unter /opt/vesana/reports/ und werden 90 Tage aufbewahrt. Über /reports durchsuch- und herunterladbar.
Per Konfig kann eine S3-Bucket-Anbindung konfiguriert werden — dann landen PDFs dort statt lokal.
Mail-Versand¶
PDF als Attachment, Body als HTML mit kurzer Zusammenfassung („Verfügbarkeit 99,8 %, 4 Vorfälle, …") und Link zur Online-Sicht.
Wenn das PDF > 25 MB würde (großer Tenant mit vielen Hosts), wird stattdessen ein Download-Link verschickt — der Empfänger kann sich das PDF aus Vesana holen, ohne riesige Mail.
Custom-Templates¶
Pro/Enterprise: HTML-Datei hochladen mit Jinja2-Variablen.
{# title.html.j2 #}
<!DOCTYPE html>
<html>
<head>
<style>{% include "branding.css" %}</style>
</head>
<body>
<h1>SLA-Bericht — {{ scope.tenant.name }}</h1>
<p>Zeitraum: {{ period.from }} bis {{ period.to }}</p>
...
</body>
</html>
Verfügbare Variablen: scope, period, summary, incidents, downtimes, services etc.
Export ohne Versand¶
/reports/manual → Generieren ohne Versand. Sinnvoll für Stichproben oder einmalige Berichte.
Permission¶
| Permission | Wirkung |
|---|---|
report.view |
Reports einsehen |
report.create |
Manuell erstellen |
report.schedule |
Geplante Reports |
report.template_upload |
Custom-Templates |
Anschluss¶
- SLA-Reports — Zahlen für die PDFs
- Audit-Log — Audit-Bericht-Quelle