Image Rendering
SmartCollect SC² unterstützt das automatische Rendern von Tafeln und Dashboards als PNG-Bilder. Dies ermöglicht es SmartCollect SC², automatisch Bilder Ihrer Tafeln zu erzeugen, um sie in Alarmbenachrichtigungen aufzunehmen.
Während ein Bild gerendert wird, wird das PNG-Bild vorübergehend in das Dateisystem geschrieben. Wenn das Bild gerendert ist, wird das PNG-Bild vorübergehend in den Ordner “png” im SmartCollect SC²-Ordner “data” geschrieben.
Ein Hintergrundjob läuft alle 10 Minuten und entfernt die temporären Bilder. Sie können konfigurieren, wie lange ein Bild gespeichert werden soll, bevor es entfernt wird, indem Sie die Einstellung temp-data-lifetime konfigurieren.
Sie können ein PNG auch rendern, indem Sie auf den Dropdown-Pfeil neben einem Schaltfeldtitel und dann auf Freigeben > Direktlink gerendertes Bild klicken.
Die Empfehlung für den freien Speicher beträgt mindestens 16 GB auf dem System, das das Rendering durchführt.
Das Rendern von Bildern kann viel Speicher benötigen, hauptsächlich weil SmartCollect SC² im Hintergrund Browser-Instanzen für das eigentliche Rendering erstellt. Wenn mehrere Bilder parallel gerendert werden, dann hat das Rendering einen größeren Speicherbedarf. Ein Vorteil der Verwendung des Remote-Rendering-Dienstes ist, dass das Rendering auf dem Remote-System durchgeführt wird, so dass Ihre lokalen Systemressourcen nicht vom Rendering betroffen sind.
Alarmbenachrichtigungen können Bilder enthalten, aber das gleichzeitige Rendern vieler Bilder kann den Server, auf dem der Renderer läuft, überlasten. Eine Anleitung zur Konfiguration finden Sie unter concurrent_render_limit.
Ab SmartCollect SC² v7.0.0 wurde die gesamte PhantomJS-Unterstützung entfernt. Bitte verwenden Sie das SmartCollect SC² Image-Rendering-Modul.
Aktivieren Sie Debug-Protokollmeldungen für das Rendering in der SmartCollect SC²-Konfigurationsdatei und untersuchen Sie das SmartCollect SC²-Serverprotokoll.
[log]
filters = rendering:debug
In vielen Fällen läuft SmartCollect SC² auf internen Servern und verwendet Zertifikate, die nicht von einer Chrome bekannten CA (Certificate Authority) signiert wurden und daher nicht validiert werden können. Chrome verwendet intern NSS (Network Security Services) für kryptografische Operationen wie die Validierung von Zertifikaten.
Wenn Sie den SmartCollect SC² Image Renderer mit einem SmartCollect SC²-Server verwenden, der ein von einer solchen benutzerdefinierten CA (z. B. einer firmeninternen CA) signiertes Zertifikat verwendet, schlägt das Rendern von Bildern fehl und Sie sehen Meldungen wie diese im SmartCollect SC²-Protokoll:
t=2019-12-04T12:39:22+0000 lvl=error msg="Render request failed" logger=rendering error=map[] url="https://192.168.106.101:443/d/zxYJxNaZk/mysql-metrics?orgId=1&refresh=1m&from=1575438321300&to=1575459921300&var-Host=master1&panelId=4&width=1000&height=500&tz=Europe%2FBerlin&render=1" timestamp=0001-01-01T00:00:00.000Z
t=2019-12-04T12:39:22+0000 lvl=error msg="Rendering failed." logger=context userId=1 orgId=1 uname=admin error="Rendering failed: Error: net::ERR_CERT_AUTHORITY_INVALID at https://192.168.106.101:443/d/zxYJxNaZk/mysql-metrics?orgId=1&refresh=1m&from=1575438321300&to=1575459921300&var-Host=master1&panelId=4&width=1000&height=500&tz=Europe%2FBerlin&render=1"
t=2019-12-04T12:39:22+0000 lvl=error msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/render/d/zxYJxNaZk/mysql-metrics status=500 remote_addr=192.168.106.101 time_ms=310 size=1722 referer="https://smartcollect.xxx-xxx/d/zxYJxNaZk/mysql-metrics?orgId=1&refresh=1m"
(Der Schweregrad Fehler in den obigen Meldungen kann mit einem einzelnen r falsch geschrieben sein).
Wenn dies geschieht, müssen Sie das Zertifikat zum Vertrauensspeicher hinzufügen. Wenn Sie die Zertifikatsdatei für die interne Root-CA in der Datei internal-root-ca.crt.pem haben, dann verwenden Sie diese Befehle, um einen benutzerspezifischen NSS-Vertrauensspeicher für den SmartCollect SC²-Benutzer (smartcollect für den Zweck dieses Beispiels) zu erstellen und führen Sie die folgenden Schritte aus:
[root@merver ~]# certutil -d sql:/usr/share/smartcollect/.pki/nssdb -A -n internal-root-ca -t C -i /etc/pki/tls/certs/internal-root-ca.crt.pem
[root@server ~]# chown -R smartcollect: /usr/share/smartcollect/.pki/nssdb