MES Inside – Handout für IT und Betrieb

Stand: 0.4.0-preview.3 (M4, Preview). Freigegeben sind die Clientintegration für .NET 8 und .NET Framework 4.8 sowie der geprüfte SQL-Server-Betrieb. Weitere Datenbankprovider und der separat installierbare Agent sind noch keine freigegebenen Bestandteile dieser Preview.

Zweck dieses Dokuments

Dieses Handout richtet sich an IT-Abteilungen, Systemadministration, Informationssicherheit und technischen Betrieb. Es beantwortet vor einer Installation insbesondere:

  • Was ist MES Inside und welche Komponenten werden installiert?
  • Welche Verbindungen, Konten und Rechte sind erforderlich?
  • Welche Daten entstehen und wo werden sie gespeichert?
  • Welche Ressourcen werden benötigt?
  • Welche Risiken und betrieblichen Aufgaben entstehen?

Das Handout ersetzt keine installationsbezogene Freigabe. Hostnamen, Datenbankgrößen, Aufbewahrung, Datenschutz und Verantwortlichkeiten müssen für die konkrete Umgebung festgelegt werden.

Kurzbeschreibung

MES Inside ist eine Plattform für Anwendungsbeobachtung. Eingebundene Anwendungen liefern strukturierte Meldungen, Fehler, Zeitmessungen, Zähler und optionale Ressourcenwerte. Die Daten werden zentral gespeichert, durchsucht und ausgewertet. Der aktuelle Serverstand umfasst außerdem hierarchische Aufbewahrung, begrenzte Bereinigung, Heartbeat- und Ressourcenverdichtung, Maintenance-Überwachung, Alarmregeln sowie E-Mail-Benachrichtigungen mit persistenter Outbox und Deduplizierung.

Die Fachanwendung schreibt Ereignisse zuerst in eine lokale, begrenzte Spool. Ein Hintergrundprozess überträgt fertige Batches an die Ingestion-API. Ist die API nicht erreichbar, läuft die Fachanwendung weiter. Die Daten bleiben bis zur späteren Übertragung lokal erhalten, soweit die konfigurierte Spool-Grenze dies zulässt.

Fachanwendung
  -> MES-Inside-Client
  -> lokale Spool
  -> HTTPS / Ingestion-API
  -> MES-Inside-Datenbank
  -> Admin-Web, Auswertung, Retention und Export

Komponenten

Komponente Aufgabe Typischer Ort
Clientbibliothek Erfassung, Datenminimierung und Schreiben der Spool Prozess der überwachten Anwendung
In-Process-Sender periodische Übertragung ohne separaten Dienst Prozess der überwachten Anwendung
Externer Agent alternative Übertragung mehrerer Spools eigener Dienst/Prozess; optional
Ingestion-API authentifizierte Annahme idempotenter Batches MES-Inside-Webserver
Admin-Web Suche, Auswertung und Administration MES-Inside-Webserver
Datenbank strukturierte Telemetrie- und Verwaltungsdaten SQL Server; weitere Provider geplant
Dateisystem Spool, Schlüssel und Installationszustand jeweiliger Anwendungsserver

Unterstützte Anwendungsplattformen

Der gemeinsame Client basiert auf netstandard2.0. Die Integrationspakete unterstützen insbesondere ASP.NET Core/.NET 8, ASP.NET auf .NET Framework 4.8, Konsolen-, Worker- und WinForms-Anwendungen. Andere Technologien können die HTTP-Ingestion-API verwenden. Der MES-Inside-Server kann hinter IIS oder hinter einem Reverse Proxy wie nginx betrieben werden.

Erforderliche Netzwerkverbindungen

Vom Client zum Server

  • ausgehendes HTTPS zur konfigurierten MES-Inside-API;
  • Zielpfad typischerweise /api/v1/ingestion/batches;
  • kein eingehender Port am überwachten Webserver erforderlich;
  • DNS- und Zertifikatsprüfung müssen funktionieren;
  • Proxy-Konfiguration ist installationsabhängig zu prüfen.

Vom MES-Inside-Server

  • Verbindung zum konfigurierten Datenbankserver;
  • optional Zugriff auf Backupziel, SMTP oder Alerting-Ziele;
  • keine Internetverbindung erforderlich, wenn Pakete und Abhängigkeiten intern bereitgestellt werden.

TLS-Zertifikate müssen von den beteiligten Systemen als vertrauenswürdig erkannt werden. Das pauschale Deaktivieren der Zertifikatsprüfung ist keine Produktionslösung.

Konten und Rechte

Überwachte Anwendung

Die Identität des Webprozesses benötigt:

  • Lesen der MES-Inside-Konfigurationsdatei;
  • Ändern, Erstellen und Löschen innerhalb des konfigurierten Spoolpfads;
  • Lesen des API-Credentials aus dem vereinbarten Secret-Speicher;
  • ausgehenden HTTPS-Zugriff auf die Ingestion-API.

Nicht erforderlich sind lokale Administratorrechte, die Installation eines Windows-Dienstes, die Anlage eines Scheduled Tasks oder Datenbankzugriff auf die MES-Inside-Datenbank.

MES-Inside-Webserver

Die Identität der Anwendung benötigt:

  • Lesen der Anwendungskonfiguration;
  • Lesen und Schreiben in App_Data beziehungsweise dem extern konfigurierten Datenverzeichnis;
  • Zugriff auf Data-Protection-Schlüssel;
  • Verbindung zur MES-Inside-Datenbank mit dem Laufzeitkonto.

Datenbank

Ein privilegiertes Setup- oder Migrationskonto wird nur für Anlage und Schemaänderungen verwendet und nicht dauerhaft gespeichert. Das getrennte Laufzeitkonto erhält nur Rechte innerhalb der MES-Inside-Datenbank. Der aktuelle SQL-Server-Standard verwendet db_datareader und db_datawriter; Schemaänderungen erfolgen mit einem separat bereitgestellten Konto.

Vor einer Migration soll ein geprüftes Datenbankbackup vorhanden sein. Die konkreten Backuprechte und das Backupziel sind mit dem Datenbankbetrieb abzustimmen.

Dateien und schützenswerte Werte

Ablage Inhalt Schutzbedarf
Client-Konfiguration URL, Identität, Level, Limits und Credential-Referenz intern
Secret-Speicher/Umgebungsvariable API-Key geheim
Spool noch nicht übertragene Telemetrie wie Telemetriedaten
transport-status.json technischer Zustand ohne Secret intern
App_Data/keys Data-Protection-Schlüssel hoch
Installationszustand Provider- und Installationsinformationen hoch
MES-Inside-Datenbank Telemetrie, Benutzer, Projekte und Konfiguration hoch

API-Keys, Datenbankkennwörter und Data-Protection-Schlüssel gehören nicht in das Repository. App_Data, Datenbank und externe Secret-Ablagen sind in Backup-, Restore- und Deploymentkontrollen einzubeziehen.

Ressourcen und Dimensionierung

Der tatsächliche Bedarf hängt primär von Ereignisanzahl, durchschnittlicher Ereignisgröße, Aufbewahrungsdauer, Indizes, Suchlast und Backupstrategie ab. Vor einer verbindlichen Dimensionierung ist ein Pilot mit Messwerten der betroffenen Anwendungen erforderlich.

Zu planen sind:

  • lokaler Spoolspeicher pro sendender Anwendung;
  • Datenbankdaten und Datenbanklog;
  • Indexwachstum;
  • temporärer Platz für Migration, Export und Import;
  • Backupgröße und Aufbewahrung der Backups;
  • CPU und RAM für Ingestion, Suche, Diagramme und Cleanup;
  • Netzwerkvolumen einschließlich Protokoll- und TLS-Overhead.

Die Spool ist standardmäßig auf 500 MB begrenzt. Das ist eine Schutzgrenze, keine Empfehlung für jede Installation. Bei anhaltender Unerreichbarkeit werden neue Ereignisse nach Priorität abgewiesen, bevor der Datenträger unkontrolliert vollläuft.

Verfügbarkeit und Fehlerverhalten

  • Die Fachanwendung darf nicht vom MES-Inside-Server abhängig werden.
  • Ereignisse werden lokal gepuffert und in idempotenten Batches übertragen.
  • Temporäre Fehler verwenden exponentiellen Backoff, Jitter und gegebenenfalls Retry-After.
  • Fehlerhafte Credentials werden nicht in einer schnellen Schleife wiederholt.
  • Erst nach erfolgreicher Serverbestätigung wird ein Batch lokal entfernt.
  • Ein voller oder nicht beschreibbarer Spoolpfad reduziert die Beobachtbarkeit, darf aber die Fachanwendung nicht stoppen.

Der Status steht secret-frei in transport-status.json. Spoolbelegung, ausbleibende erfolgreiche Übertragungen und wiederholte Fehler müssen in das betriebliche Monitoring aufgenommen werden.

Datenschutz und Informationssicherheit

Standardmäßig verboten sind insbesondere:

  • Passwörter, Tokens, Cookies und Authorization-Header;
  • vollständige Formular-, Request- oder Session-Dumps;
  • ungeprüfte QueryStrings und SQL-Parameter;
  • besondere Kategorien personenbezogener Daten.

Properties werden clientseitig über eine Allowlist begrenzt und serverseitig erneut geprüft. Benutzerkennungen sollen pseudonymisiert werden. Vollständige IP-Adressen dürfen nur nach ausdrücklicher Freigabe, dokumentiertem Zweck, korrekter Proxy-Konfiguration und kurzer Aufbewahrung gespeichert werden.

Vor Produktivbetrieb sind Datenschutzinformation, Auftragsverarbeitungsvereinbarung, Berechtigungskonzept, Löschkonzept und zulässige Telemetrieinhalte zu prüfen.

Wesentliche Risiken und Gegenmaßnahmen

Risiko Auswirkung Gegenmaßnahme
sensible Inhalte werden geloggt Datenschutz-/Sicherheitsvorfall Allowlist, Redaction, Code Review, Tests
API-Key wird offengelegt unberechtigte Einspeisung Secret-Speicher, Rotation, Sperrung, getrennte Keys
API ist nicht erreichbar lokale Spool wächst Backoff, Alarmierung, Größenlimit, Betriebsprozess
Datenträger ist voll Telemetrieverlust oder Anwendungsprobleme harte Spoolgrenze, Monitoring, reservierter Speicher
Datenbank wächst unerwartet Kosten und Ausfallrisiko Retention, Cleanup, Kapazitätsalarme
falsche Mandantenzuordnung Datenoffenlegung serverseitige Key-Zuordnung und Mandantentests
fehlerhafte Migration Ausfall oder Datenverlust Backup, Restore-Prüfung, Wartungsfenster
Reverse Proxy ist falsch konfiguriert falsche IP-/TLS-Auswertung Trusted-Proxy-Konfiguration und Abnahmetest
Monitoring wird selbst nicht überwacht unbemerkte Blindheit Heartbeat, Transportstatus und externe Verfügbarkeitsprüfung

Backup, Restore und Umzug

Mindestens zu sichern sind die MES-Inside-Datenbank, Data-Protection-Schlüssel, Installationszustand, nicht reproduzierbare Konfiguration und externe Secrets nach Vorgabe des Secret-Systems. Die Wiederherstellung muss getestet werden.

Mandantendaten sollen vollständig exportiert und auf einer anderen MES-Inside-Installation importiert werden können. Transferarchive enthalten keine API-Key-Secrets, Passwort-Hashes oder Data-Protection-Schlüssel.

Patch-, Upgrade- und Wartungsprozess

  1. Release Notes und Datenbankmigrationen prüfen.
  2. Wartungsfenster und Rückfallweg festlegen.
  3. Backup erstellen und Wiederherstellbarkeit sicherstellen.
  4. Anwendung veröffentlichen, persistente Serverdaten nicht überschreiben.
  5. Migration als Systemadministrator mit temporärem Migrationszugang ausführen.
  6. Login, Ingestion, Suche, Spoolabbau und Transportstatus prüfen.
  7. Backup- und Cleanup-Läufe nach dem Upgrade kontrollieren.

Abnahmecheckliste für die IT

  • Verantwortliche für Anwendung, Datenbank, Netzwerk und Datenschutz benannt
  • Systemgrenzen, Mandant und Umgebungen dokumentiert
  • HTTPS, DNS, Firewall und Proxy geprüft
  • Dienstkonten und minimale Rechte freigegeben
  • Spoolpfad außerhalb öffentlich ausgelieferter Verzeichnisse eingerichtet
  • API-Key sicher hinterlegt und Rotation getestet
  • Datenbank-, Schlüssel- und Konfigurationsbackup eingerichtet
  • Restore mindestens einmal getestet
  • Retention, Kapazitätsgrenzen und Cleanup festgelegt
  • erlaubte und verbotene Telemetriedaten dokumentiert
  • Alarmierung für API, Datenbank, Spool und ausbleibende Daten eingerichtet
  • Upgrade- und Notfallprozess mit Ansprechpartnern dokumentiert

Weiterführende Dokumentation