TeamSpeak 3 Server und TSDNS monitoren und autom. neustarten

    • Offizieller Beitrag

    Hallo,
    ich möchte euch hiermit gerne das TS3Monitor Skript vorstellen.


    Zitat von Offizielle Beschreibung

    Monitor your TeamSpeak 3 / TSDNS server instances using TS3Monitor.


    It will check the status of your TeamSpeak 3 / TSDNS server instance and if it has crashed, it will try to restart it.


    The TS3Monitor provides you also an autostart feature of the configured instances after a reboot or crash of the entire Root server/VPS/virtual machine.


    Zu gut deutsch:

    Zitat von Ins Deutsche übersetzt

    Monitore deine TeamSpeak 3 / TSDNS Server Instanzen mit Hilfe von TS3Monitor.


    Es prüft den Status deiner TeamSpeak 3 / TSDNS Server Instanz und wenn diese ausgefallen ist, versucht es, diese neuzustarten.


    TS3Monitor bietet auch die Funktion für einen Autostart für die konfigurierten Instanzen nach einem Neustart oder Ausfall des kompletten Root Servers/VPS/vServers.


    Hier im Forum wurde uns bereits "Supervisor" vorgestellt: TS3Server mit MariaDB Datenbank (Ubunut 14.04) Tutorial (siehe "5. Autostart")


    Supervisor hat diverse Vor- und auch Nachteile. Warum ich persönlich diese Software allerdings überhaupt nicht mag, habe ich im obigen Thema als Antwort verfasst: TS3Server mit MariaDB Datenbank (Ubunut 14.04) Tutorial


    Was kann TS3Monitor?


    Folgende "Hauptfunktionen" hat das Skript:

    • Prüfung des Status einer TeamSpeak 3 Server Instanz
    • Prüfung des Status einer TSDNS Server Instanz

    Neben diesen Hauptfunktionen, gibt es noch folgende speziellen Funktionen:

    • Es schreibt eine Log-Datei, um nach einem Neustart des (Linux) Servers z.B. nachverfolgen zu können, was es so zuletzt getrieben hat (oder, falls der Server keine E-Mails versenden kann/darf)
    • Es sendet E-Mail Benachrichtigung zu Status Änderungen oder auf Wunsch auch "immer"
    • Es startet eine TeamSpeak 3 und auch TSDNS Server Instanz neu, wenn sie z.B. ausgefallen (gecrashet) oder heruntergefahren wurde (dann aber nur, wenn man es per Einstellung vom Skript erzwingt)
    • Nach einem Neustart des Linux Servers, kann TS3Monitor auch autom. dafür sorgen, dass alle konfigurierten Instanzen - egal ob TS3 oder TSDNS - wieder selbstständig gestartet werden (Ersatz für LSBInitScript)

    Voraussetzungen


    Um das Skript betreiben zu können, müssen folgende Bedingungen erfüllt sein:

    • Linux (sollte auf den meisten Distributionen funktionieren)
    • Eine oder mehrere installierte TeamSpeak 3 oder TSDNS Server Instanzen auf einem Root Server, einer VPS oder einem vServer
    • Diverse Software Pakete (siehe GitHub Seite für aktuellste Informationen)
    • "root" Benutzer Zugriff auf dem Linux System (siehe README.md auf der GitHub Seite für mehr Informationen)

    Weitere Informationen zum Produkt findest du unter GitHub - TS3Tools/TS3Monitor: Monitor your TeamSpeak 3 and TSDNS server instances.


    Für Fragen stehe ich gerne zur Verfügung. :)

  • Irgendwie funktioniert dieses Script nicht.
    Es fängt schon mit der Installation an, es steht dort ich soll den Cronjob so hinzufügen:

    Code
    ./TS3Monitor ts3server --path /home/teamspeak/ --install-cronjob


    Aber leider ist der Befehl "--path" nur mit Enterprise Lizenz verfügbar.

    • Offizieller Beitrag

    Hallo @niro93,
    das Skript funktioniert einwandfrei.


    Diverse Funktionalitäten sind durch die Lizenzen entsprechend eingeschränkt. Siehe auch hier: GitHub - TS3Tools/TS3Monitor: Monitor your TeamSpeak 3 and TSDNS server instances


    Aus diesem Grund erhälst du die von dir genannte Meldung. Führe das Skript daher bitte wie folgt aus:

    Code
    ./TS3Monitor ts3server --install-cronjob
  • Es gibt einen deutlich einfacherer Weg.



    Code
    nano /etc/systemd/system/ts3server.service


    Code
    systemctl daemon-reloadsystemctl start ts3server.service


    Vorteil: Systemd ist extrem zuverlässig. Wieso also ein extra script für eine Funktion die das System auch so kann.
    Zusatzvorteil:

    Code
    systemclt enable ts3server.service

    Nun startet der teamspeak server nach dem network.target automatisch.


    Außerdem bei einem Absturz weswegen auch immer startet der Dienst automatisch nach 10 Sekunden durch.

    • Offizieller Beitrag

    systemd ist mehr oder weniger genauso nett wie supervisord, aber beide dieser Lösungen haben halt mehrere "Probleme":

    • systemd ist nicht in allen Betriebssystemen verfügbar - vor allem in etwas älteren, die aber noch LTS besitzen
    • Du brauchst pro TeamSpeak 3 Server Instanz einen neuen systemd Service: ts3server01.service, ts3server02.service, ..., ts3serverN.service
    • Wie bildest du in systemd den TSDNS Server ab? Dazu gibt es keine PID-Datei...
    • Was macht systemd, wenn eine TS3 Instanz crasht? systemd kann im Fehlerfall den Dienst neustarten, aber versuche die möglichen Problemszenarios mal systemd zu erklären.

      Außerdem bei einem Absturz weswegen auch immer startet der Dienst automatisch nach 10 Sekunden durch.


      Soweit ich weis, kannst du nur eine PID-Datei angeben und wenn es diese nicht mehr gibt, wird der Service neugestartet. Es gibt aber auch den Fall, dass die PID-Datei vom TS3 Server noch existiert, die Instanz allerdings gecrasht ist (z.B. Linux Reboot ohne TS3 Shutdown oder eingefrorener Host und entsprechender Neustart).

    Das Hauptziel des Skripts war ein Monitoring von TS3 und TSDNS Instanzen mit Erkennung von allen möglichen Fehlern. Zusätzlich sollte es auch E-Mails versenden, um den Admin über Ausfälle zu informieren. systemd versendet z.B. keine E-Mails.


    Zusätzlich bekam es dann halt noch das Feature, dass es auch gleich versucht, die Services entsprechend korrekt wieder zu starten. Das war allerdings anfangs nicht vorgesehen.

  • Dieses Thema enthält 4 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.