PostgreSQL ist für den Dashboard-Host-Dienst, Testüberwachungsdienst und dynamische Formularfelder-Dienst erforderlich.

Allgemeine Anforderungen

Hinweis Für mehr Sicherheit erstellen Sie separate Datenbankbenutzer für jeden SystemLink-Dienst. Dadurch wird gewährleistet, dass jeder Dienst nur auf seine eigene Datenbank und eigene Tabellen zugreifen kann.

Bevor Sie einen Dienst für die Verwendung eines PostgreSQL-Servers konfigurieren, stellen Sie sicher, dass Sie:

  • Ein bereitgestellter PostgreSQL-Server. Für optimale Leistung und Sicherheit empfehlen wir, die PostgreSQL-Instanz SystemLink zuzuweisen, anstatt sie mit anderen Anwendungen zu teilen.
  • Der Hostname des PostgreSQL-Servers.
  • Die Zugangsdaten für mindestens einen Datenbankbenutzer.
  • PostgreSQL-Administratorrechte zum Erstellen von Datenbanken und Benutzern.
  • Ein TLS-Zertifikat für sichere Verbindungen. (Empfohlen)

Beim ersten Start und für einige Upgrade-Szenarien erstellt jeder Dienst das erforderliche Schema und die erforderlichen Tabellen. Nach dem Einrichten können Sie die Benutzerrechte für CREATE widerrufen. Die folgende Tabelle zeigt die Mindestrechte, die für den normalen Betrieb erforderlich sind:

Tabelle 72. Berechtigungen für Operationen
Standort Berechtigungen
Datenbank VERBINDEN
Dienstschema ERSTELLEN, VERWENDUNG
Tabellen im Schema AUSWÄHLEN, EINFÜGEN, AKTUALISIEREN, LÖSCHEN
Hinweis Der Zugriff auf Schemadaten sollte über die SystemLink-Webanwendung oder die entsprechende Service-API erfolgen. Das Schema gilt als interne Implementierung und kann sich ohne Ankündigung ändern.

Speichern von Daten des Dashboard-Host-Dienstes auf einem externen PostgreSQL-Server

Erstellen Sie eine Datenbank und einen Benutzer, um sicherzustellen, dass der Benutzer über die Berechtigungen CREATE auf der Datenbank verfügt. Der Standarddatenbankname lautet grafana.

Wenn Sie mit Helm Secrets verwalten, fügen Sie Ihre Datenbank-Zugangsdaten zu systemlink-secrets.yaml hinzu:

dashboardhost:
  secrets:
    database:
      host: "<postgresql-hostname>:<port>"
      user: "systemlink"
      password: "<database-password>"

Stellen Sie sicher, dass in systemlink-values.yaml die Standardkonfigurationen dashboardhost.grafana.extraSecretMounts und dashboardhost.grafana.extraConfigmapMounts aktiviert sind:

dashboardhost:
  grafana:
    extraSecretMounts:
      - name: *dashboardhostdbSecret
        secretName: *dashboardhostdbSecret
        defaultMode: 0440
        mountPath: "/etc/secrets/dashboardhost"
        readOnly: true
    extraConfigmapMounts:
      - name: *postgresCertificateConfigMap
        mountPath: "/etc/ssl/certs/dashboardhost/"
        subPath: *postgresCertificateFileName
        configMap: *postgresCertificateConfigMap
        readOnly: true

Speichern von Daten des Testüberwachungsdienstes auf einem externen PostgreSQL-Server

Erstellen Sie eine Datenbank und einen Benutzer, um sicherzustellen, dass der Benutzer über die Berechtigungen CREATE auf der Datenbank verfügt.

Künftige Aktualisierungen des Testüberwachungsdienst-Diagramms erfordern möglicherweise Änderungen am Schema und an der Tabelle. Um diese Änderungen vorzunehmen, muss das Diagramm des Testüberwachungsdienstes als Benutzer, der Eigentümer des Schemas und der Tabellen ist, agieren. Zusätzlich zu dem Benutzer, der für den tagtäglichen Betrieb verantwortlich ist, können Sie einen weiteren Benutzer mit erweiterten Berechtigungen für die Durchführung von Datenbankmigrationen angeben.

Sie können die PostgreSQL-Verbindung entweder mit einem Verbindungs-String (empfohlen) oder mit einzelnen Verbindungsparametern konfigurieren.

Verwenden eines Verbindungs-Strings (empfohlen):
  • Fügen Sie Ihre Zugangsdaten zu systemlink-secrets.yaml hinzu:
    testmonitorservice:
      secrets:
        database:
          connectionString: "Host=<postgresql-hostname>;Database=<database-name>;Username=<database-user>;Password=<database-password>;SslMode=Require"
          migrationConnectionString: "Host=<postgresql-hostname>;Database=<database-name>;Username=<migration-user>;Password=<migration-password>;SslMode=Require"
  • Konfigurieren Sie dann die Verbindung in systemlink-values.yaml:
    testmonitorservice:
      database:
        connectionString:
          secretName: "testmonitorservicedb-connection"
          connectionStringKey: "connection-string"
          migrationConnectionStringKey: "migration-connection-string"
        tls:
          enabled: true
          existingConfigMap: *postgresCertificateConfigMap
          certificateSubPath: *postgresCertificateFileName

Verwenden einzelner Verbindungsparameter:

  • Alternativ können Sie Verbindungsparameter auch einzeln angeben. Fügen Sie Ihre Zugangsdaten zu systemlink-secrets.yaml hinzu:
    testmonitorservice:
      secrets:
        database:
          connectionPassword: "<database-password>"
          migrationConnectionPassword: "<migration-password>"
  • Konfigurieren Sie dann die Verbindung in systemlink-values.yaml. Der Standarddatenbankname lautet nisystemlink und der Standardbenutzer ist nisystemlink:
    testmonitorservice:
      database:
        connectionInfo:
          host: "<postgresql-hostname>"
          port: "5432"
          dbName: "nisystemlink"
          user: "nisystemlink"
          migrationUser: "<migration-user>"
          secretName: "testmonitorservicedb-connection"
          passwordKey: "password"
          migrationPasswordKey: "migration-password"
        tls:
          enabled: true
          existingConfigMap: *postgresCertificateConfigMap
          certificateSubPath: *postgresCertificateFileName

Speichern von Daten des Dienstes für dynamische Formularfelder auf einem externen PostgreSQL-Server

Erstellen Sie eine Datenbank und einen Benutzer, um sicherzustellen, dass der Benutzer über die Berechtigungen CREATE auf der Datenbank verfügt.

Künftige Aktualisierungen des Dienst-Diagramms für dynamische Formularfelder erfordern möglicherweise Änderungen am Schema und an der Tabelle. Um diese Änderungen vorzunehmen, muss das Diagramm des Dienstes für dynamische Formularfelder als Benutzer, der Eigentümer des Schemas und der Tabellen ist, agieren. Zusätzlich zu dem Benutzer, der für den tagtäglichen Betrieb verantwortlich ist, können Sie einen weiteren Benutzer mit erweiterten Berechtigungen für die Durchführung von Datenbankmigrationen angeben.

Sie können die PostgreSQL-Verbindung entweder mit einem Verbindungs-String (empfohlen) oder mit einzelnen Verbindungsparametern konfigurieren.

Verwendung eines Verbindungs-Strings (empfohlen):

  • Fügen Sie Ihre Zugangsdaten zu systemlink-secrets.yaml hinzu:
    dynamicformfields:
      secrets:
        database:
          connectionString: "Host=<postgresql-hostname>;Database=<database-name>;Username=<database-user>;Password=<database-password>;SslMode=Require"
          migrationConnectionString: "Host=<postgresql-hostname>;Database=<database-name>;Username=<migration-user>;Password=<migration-password>;SslMode=Require"
  • Konfigurieren Sie dann die Verbindung in systemlink-values.yaml:
    dynamicformfields:
      database:
        connectionString:
          secretName: "dynamicformfields-db-connection"
          connectionStringKey: "connection-string"
          migrationConnectionStringKey: "migration-connection-string"
        tls:
          enabled: true
          existingConfigMap: *postgresCertificateConfigMap
          certificateSubPath: *postgresCertificateFileName

Alternativ können Sie Verbindungsparameter individuell angeben:

  • Fügen Sie Ihre Zugangsdaten zu systemlink-secrets.yaml hinzu:
    dynamicformfields:
      secrets:
        database:
          connectionPassword: "<database-password>"
          migrationConnectionPassword: "<migration-password>"
  • Konfigurieren Sie dann die Verbindung in systemlink-values.yaml. Der Standarddatenbankname lautet nisystemlink und der Standardbenutzer ist nisystemlink:
    dynamicformfields:
      database:
        connectionInfo:
          host: "<postgresql-hostname>"
          port: "5432"
          dbName: "nisystemlink"
          user: "nisystemlink"
          migrationUser: "<migration-user>"
          secretName: "dynamicformfields-db-connection"
          passwordKey: "password"
          migrationPasswordKey: "migration-password"
        tls:
          enabled: true
          existingConfigMap: *postgresCertificateConfigMap
          certificateSubPath: *postgresCertificateFileName"