Aktionen

Zabbix:Google Chrome headless per Kommandozeile nutzen

Aus znilwiki

Version vom 20. Oktober 2022, 12:34 Uhr von BLinz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<u>'''Changelog:'''</u><br> * 20.10.2022 erste Version ---- ==Vorwort== Bei einem Kunden hat eine System eine "Status"-Webseite aus der man ersehen kann wie es…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Changelog:

  • 20.10.2022 erste Version

Vorwort

Bei einem Kunden hat eine System eine "Status"-Webseite aus der man ersehen kann wie es einem Cluster geht.
Leider ist es eine html Webseite welche dann dynamisch per JavaScript die Werte nachlädt.
Der Zabbix Web Agent bekommt also nur die Webseite mit den Platzhaltern heruntergeladen, aber keine Werte weil das JavaScript nicht ausgeführt wird.
Dabei kam der Tipp es mit Chrome-Kommandozeile zu versuchen. Prima Plan dachte ich - denn seit Zabbix 6.0 installiere ich den Google-Chrome-Browser sowieso auf jedem Zabbix-Server mit. Dieser wird ja für das Erstellen der PDF-Reports genutzt (und inzwischen haben ich auch verstanden warum).

Vorweg: Das JavaScript-Problem konnte ich damit auch nicht lösen. Aber ich fand den Umgang so cool das ich mir das für die Zukunft hier einmal festhalten wollte.


Google Chrome auf Zabbix-Server installieren

Aus meiner Anleitung für die Installation von Zabbix 6.x unter Ubuntu 22.04 (funktioniert auch unter 20.04):
Da wir keine GUI auf dem Zabbix-Server haben laden wir den Browser einfach direkt als Paket herunter und installieren diesen:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
dpkg -i google-chrome-stable_current_amd64.deb
apt install -f
dpkg --configure -a

Ja, das ist etwas umständlich, wir installieren Chrome, er meckert über fehlende Abhängigkeiten, die beheben wir dann und lassen das Konfigurieren noch mal laufen.
Dafür ist der dann installiert ohne das wir eine grafische Oberfläche auf dem Server installieren mussten.


Beispiel

/opt/google/chrome/chrome --headless --dump-dom --disable-gpu --no-sandbox --no-system-proxy-config-service --ignore-certificate-errors --virtual-time-budget=30000 --run-all-compositor-stages-before-draw "https://192.168.1.25/sysinfo/"

Erklärung:

/opt/google/chrome/chrome                   Das Programm selbst
--headless                                  Keine GUI starten
--dump-dom                                  Was Empfangen wird auf dem Bildschirm ausgeben (Umleiten per > datei.txt)
--disable-gpu                               Nicht die Grafikkarte nutzen, nur CPU
--no-sandbox                                keine Sandbox verwenden (nur bei root notwendig / testen ob es verlangt)
--no-system-proxy-config-service            einen eventuell konfigurieren Porxy nicht verwenden
--ignore-certificate-errors                 Zertifikatsprüfungen deaktivieren (Warnung kommt trotzdem)
--virtual-time-budget=30000                 Warte diese Zeit bis die Webseite aufgebaut ist. Ist diese schon vorher geladen wird gleich weiter gemacht
--run-all-compositor-stages-before-draw     in Verbindung mit vorherigen Eintrag notwendig
"https://10.252.101.25/sysinfo/"            URL die Aufgerufen werden soll



Links


Kommantare

<commenst />