Suche Monitoring Tool - zabbix das richtige?

AliManali

cpt sunday flyer
Thread Starter
Mitglied seit
07.03.2012
Beiträge
4.627
Ort
Ostschweiz
Hi

Würde gerne auf meiner Website den Status verschiedener Gameserver anzeigen lassen. Die Gameserver liegen auf dem Homeserver, die Website extern auf einem Reseller Plesk. Habe gemini dazu befragt, welche meinte, ja kein Problem.

Habe nun auf einem Debian zabbix installiert. Aber irgendwie funktioniert das nicht. Habe auf einem Gameserver auch den zabbix agent installiert. Möchte natürlich die spezifischen Ports überwachen, nicht einfach den Host. Aber so weit ich verstanden habe, dient der zabbix agent eher dazu einen Host zu überwachen? Kann ich nicht einfach die entsprechenden Server direkt auf Erreichbarkeit abhören?

Bei einem Server habe ich bereits eine Anzeige, ob der Server erreichbar ist:


Wenn man da runter scrollt, sieht man ob der Server online ist. Das hätte ich gerne für alle Server so. Bzw. eine Status Seite, wo alle Server aufgelistet sind.

Ist da zabbix überhaupt das richtige? Geht das so, wie ich mir das vorstelle?

Überwachen würde ich gerne ein paar Gameserver, ein Plesk, ein Download Verzeichnis auf dem Plesk, ein http Webserver, Teamspeak Server, sowas in der Art.

Gruss und danke
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Kenne zabbix nicht, aber wenn es nur über aus dem Internet erreichbare TPC ports geht, könntest du sowas wie uptime-kuma verwenden. Kann allerdings kein UDP überwachen!
 
UDP monitoren ist tricky, da es im Gegensatz zu TCP am Handshake fehlt. Welche Services sind das denn genau, die auf UDP laufen? Für Standard-UDP-Protokolle wie NTP, DNS usw. gibt es in der Regel vorgefertigte Checks in den gängigen Monitoring-Softwares, wenn du da jetzt aber irgendwas ganz spezielles laufen hast, dürfte es mau aussehen...

Eine Möglichkeit könnte alternativ sein, auf dem Zielsystem per Agent zu überprüfen, dass der UDP-Port auf listening steht (z.B. per netstat oder ss). Vielleicht reicht dir das?
 
Hmm, dann geht das wohl nicht. Danke trotzdem. Die Server sind halt Gameserver, also nichts ab Stange. Wie gesagt, gemini meinte das sei ohne Probleme möglich. Aber die verzapft halt viel, wenn der Tag lang ist.

Ja, würde schon reichen, wenn man sehen würde ob die Ports auf listening stehen. Aber geht das auch über Netzwerk mit einem Monitoring Tool, welches der (externen) Website dann mitteilt, dass die online sind?
 
Möglich ist alles :-) Wenn es dir wirklich nur darum geht, diese eine Information auf einer externen Webseite zugänglich zu machen, könntest du z.B. ein kleines Bash-Skript schreiben, das den Port-Status lokal auf dem Gameserver überprüft, und anschliessend z.B. per SCP/FTP die Webseite aktualisiert. Alternativ packst du dir einen Webserver (Nginx/Caddy) auf den Gameserver, der dann ein UP/DOWN o.ä. Icon ausliefert. Auf der Webseite kannst du das dann als externen Inhalt einbinden.

Wenn du natürlich auch noch E-Mail-Benachrichtigungen, eine Historie oder Performance-Metriken haben möchtest, wirds natürlich mehr Arbeit und du musst abwägen, ob du auf eine richtige Monitoring-Lösung oder Marke Eigenbau setzen möchtest.
 
Hmm, dachte das sei ohne grossen Aufwand möglich. Es handelt sich auch nicht um einen einzelnen Host bzw. VM, sondern im Moment wären es 5. Sowohl Windows als auch Linux. Zum Teil wären auch mehrere Ports/Server pro VM, die man überwachen müsste. Sowohl UDP als auch TCP. Das habe ich irgendwie wild zusammengebastelt mit diversen Tools. Auf drei von den Maschinen läuft bereits ein Webserver, aber zwei davon sind irgendwelcher properitärer Kram.

Webserver auf den Gästen fällt schon mal raus, weil ich mich da wieder um Zertifikate und das ganze Gedöhns kümmern müsste. Dachte halt, das sei mit einer Monitoring Lösung einfach umzusetzen. Aber wenn das so kompliziert ist, lass ich es halt. Wäre halt für die Website schick gewesen, aber geht auch ohne.
 
Gibt mehrere Möglichkeiten:
1) irgeneine Aktion, wo es eine Anwort von einem aktiven Dienst gibt - ping, http etc. -> Uptime Kuma
2) man installiert einen Agent, passend zum Monitoring Server (Zabbix etc.)
3) standardisiertes SNMP -> SNMP Monitoring Server

Wenn dann die Daten am Monitoring Server angekommen sind, hat man je nach Variante unterschiedliche Möglichkeiten für Events, Dashboards etc.
 
Ja genau, habe den zabbix Agent auf einem Server schon mal installiert. Aber bislang konnte ich nicht mal den Host selber damit überwachen, geschweige denn die betreffenden Dienste. Aber damit wäre es möglich? Weil das wäre eigentlich der Plan gewesen, ja.

Habe den Agent allerdings noch nicht konfiguriert. Nur mal getestet, ob der auf dem Standardport erreichbar ist, was nicht der Fall ist bislang.
Beitrag automatisch zusammengeführt:

Ahja, habe da eine Anleitung gesehen, wie man den Client konfiguriert und ein Bash Script schreibt, welches als zabbix Agent Item implementiert werden kann. Teste jetzt das mal, ob das was bringt.
 
Zuletzt bearbeitet:
Hi

Habe nun alle Gäste mit dem Agent ausgestattet, und die im Server eingepflegt.


Screenshot 2024-12-05 090133.png




Nun möchte ich auf dem Phoenix Server (Debian 12.5) wissen, ob Port UDP 65003 offen ist. Glaube wenn ich das richtig machen würde, könnte ich die Bash Datei nacher irgendwie mit dem zabbix Agent verbinden.

Bin jetzt seit 3 Stunden mit Gemini am verhandeln, wie das gehen soll. Ich habe schon zig mal die Frage umformuliert, und bekomme jedes mal ein komplett anderes Script. Mein erstes Ziel wäre jetzt mal ein Shell Script hinzukriegen, was entweder Simpel eine 0 ausgibt, wenn der Server offline ist, oder eine 1, wenn er läuft. Aber mit Gemini kriege ich das nicht hin, bin langsam am verzweifeln.

Momentan sieht das Script so aus:

#!~/zabbixscripts

# Konfigurierbare Variablen
PORT=65003
PROTOCOL="udp"

# Prüfen, ob der Port geöffnet ist
RESULT=$(ss -tulwn | grep ":${PORT}\/${PROTOCOL}")

# Ergebnis auswerten
if [[ -z "$RESULT" ]]; then
# Port ist nicht geöffnet
echo "Port ${PORT}/${PROTOCOL} ist nicht geöffnet."
exit 1
else
# Port ist geöffnet
echo "Port ${PORT}/${PROTOCOL} ist geöffnet."
exit 0
fi

Da kommt immer die Meldung, Port nicht geöffnet.

Aber hatte schon ganz viele Varianten ausprobiert. Auch welche die so einigermassen funktioniert haben. Eines hatte ich mal, da wurde mir bei einem toten Port eine 1 ausgegeben, auf einem aktiven eine 2. Das Script sollt nach der gemini Tante aber die Anzahl der Verbindungen ausgeben.

Am schönsten wäre es, wenn ich zwei Scripts hätte. Eins bei dem man sieht ob online/offline, und eins wo man sieht, wieviele Verbindungen da stehen.

Mit netstat hat gar nichts geklappt, mit ss wenigstens ein bisschen, aber auch nicht so wirklich. Und ich weiss nicht mal, ob ich mit dem Shell Script wirklich auf der richtigen Spur bin. Kann das der Agent selbstständig ausführen? Macht er das Intervall mässig, oder wie muss ich mir das vorstellen?
 
Ohne Zabbix jetzt im Detail zu kennen, kann man da nicht Dienste überwachen? ALso unwichtig ob der Port erreichbar ist, abfragen ob der Service {SERVICENAME} überhaupt läuft?
 
Geht das auch mit irgendwelcher Spezialsoftware? Das wäre natürlich ideal, ja. Ich habe da wirklich Null Ahnung von.

Wobei wenn man zusätzlich sehen könnte, wieviele Verbindungen da stehen, das wär schon auch noch ziemlich sexy.
 
Das wären die Ports - zu Services find ich auch gerade nix - wie gesagt, Zabbix ist nicht mein Gebiet
Da gibts dann diesen Eintrag: der wäre doch was du suchst oder?
Code:
net.udp.listen[port]
 
Ahja, danke. Die Anleitung hatte ich mir noch nicht angesehen. Das muss ich mir mal ansehen, aber nicht für den Moment. Bin seit früh Morgens dran.
Beitrag automatisch zusammengeführt:

Hab es noch hin gekriegt mit Deiner Anleitung. Zumindest im Zabbix Server habe ich die Werte schon. Wie ich das dann auf meine externe Website kriege wird sich noch zeigen müssen.

Das kann man wohl alles am zabbix Server direkt konfigurieren, ich war den ganzen Tag am Client am rumbasteln.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh