Beiträge von Sebbo

    wenn mehrere User in einem Channel sind, ist die Anordnung anders als im Client


    Die Clientliste ist ja keine Liste der online Clients aus einem bestimmten Channel. Es ist eine Liste aller Clients, die zur Zeit auf dem Server online sind.


    Das Array hat wahrscheinlich diesen Style, oder?


    In dem Fall wird das Array nach den Indexes 0, 1, 2 und so weiter aufsteigend sortiert. Wie er sich das Array mit den Client-Datensätzen zusammen baut, weis ich nicht. Ich denke aber, dass es 1:1 so aus der Reihenfolge übernommen wird, wie es der ServerQuery Befehl "clientlist" zurück liefert. Der gibt die Liste nämlich aufsteigend sortiert nach "clid" zurück. Ist also kein Schönheitsfehler oder irgendeine Art von Reverse-Sortierung. ;)

    Kann man hier eigentlich auch die Instanz-Einstellungen wie "DoS-Protection" mit "instanceEdit(array $data)" setzen/ändern?


    Ja, das ist möglich und zwar verwendet man hierzu die Funktion "instanceEdit" wie bereits erwähnt:


    Ansonsten kann man das auch noch wie folgt aktivieren:

    Ob das ganze auch für Teamspeak auf port 9987 mit UDP funktioniert, müsste getestet werden. Vielleicht kann ja Sebbo dazu was sagen, der kennt sich mit den IP-Tables besser aus wie ich?


    Klar funktioniert das auch. Du kannst ja zwischen TCP und UDP unterscheiden. ;)

    Code
    iptables -A INPUT -p udp --dport 9987:9996 -j LOG -m comment --comment "TeamSpeak Voiceports"


    Das protokolliert zum Beispiel den eingehenden Traffic auf den UDP Ports 9987 bis 9996.

    Cannot access log file.


    Das heißt aber nur, dass es ein Problem mit dem Zugriff der Log-Dateien gibt. Deswegen stürzt nicht gleich die Instanz ab. Klar, gab es hier mal einen Bug bzw. ein Problem, aber das wurde meines Wissens nach längst behoben. Auf welcher Version läuft dein TS Server denn?


    Ebenso wäre es interessant, wie die Rechte deiner Instanz aussehen. Ich weis nicht, wie fit du in Linux bist, daher soll das keine Unterstellung sein. Also bitte nicht falsch verstehen. :)


    Führe die beiden Befehle einfach als der Benutzer aus, der den TeamSpeak Server steuert/gehört und zeige uns die beiden Ausgaben hier als Code/Zitat:

    Code
    $ ls -lha


    Code
    $ ls -lha logs/

    Hallo,


    ich verstehe grade irgendwie nicht so richtig, was du vor hast bzw. dein Ziel ist.


    Der Server wird immer eine Log-Datei generieren, denn die ist zum Analysieren/Debuggen und für Infos gedacht. Die kannst du auch nicht deaktivieren. Du kannst sie nur löschen, aber selbst das wäre sinn frei.


    Was stört dich denn an den Logs?

    aber lässt sich dein Verdacht (ich ahne schon welcher) auch auf die Problematik mit den einzelnen Usern (immer die gleichen) zurückführen?


    Das weis ich leider nicht. Ich weis nur, dass die aktuellste Ubuntu Version einen Kernel verwendet, der mit älterer Hardware nicht (richtig) kompatibel ist und es daher zu komischen Phänomenen führen kann. Wenn deine CPU keinen PAE-Support hat, wird der Kernel große Probleme haben, richtig zu funktionieren. Laut Google-Suchergebnissen starten die meisten Server/Notebooks dann sogar erst gar nicht.


    Also ich würde eine entsprechend ältere Ubuntu Version installieren oder versuchen, den Kernel zu downgraden. Laut Ubuntu selbst, funktioniert die aktuellste Ubuntu Version auch auf Uralt Rechnern - man muss lediglich den richtigen Kernel installieren. :)


    Hier mal ein Artikel von Heise dazu: Ubuntu 12.04.4 für alte Rechner | heise open


    PS: Wenn du nur 512 MB RAM hast, reicht auch die 32-Bit Version eines Betriebssystems, denn die 64-Bit Version bringt erst ab 4 GB RAM und mehr etwas. ;)

    Hallo,


    ich habe da mal was für die Programmierung benötigt und dabei entstand dann dieses Thema: Sprach-/Dateiübertragung messen - Voice-/Filetransfer


    Eventuell ist da was für dich dabei. :)


    Aber prinzipiell ist vnstat ein gutes Performance-Analyse Tool. iptraf wäre glaub ich ein Tool, dass auch dauerhaft im Hintergrund aufzeichnet - bin mir allerdings nicht sicher, ob es nicht sogar ein anderes Tool war.


    Hier werden einige interessante und nennenswerte Tools genannt: 18 commands to monitor network bandwidth on Linux server


    Ansonsten kann das bestimmt Nagios.

    Mhmm, okay. Was steht in der aktuellsten Log-Datei der TeamSpeak Server Instanz drin?


    Ja, das nachfolgende ist overpowered, aber hatte irgendwie grade Bock drauf. :D


    Code
    cat $(find $(dirname $(find / -name ts3server_startscript.sh))/logs/ -name ts3server_*_0.log | sort -nr | head -1)


    Hinweis: Der Code kann als Benutzer root oder der Eigentümer des Servers ausgeführt werden.


    Was macht der Code?

    • Er sucht nach TeamSpeak Server Instanz-Verzeichnissen auf dem ganzen Server (erkennt es anhand des gefundenen ts3server_startscript.sh Skripts) ;)
    • Danach wird in den gefundenen Verzeichnissen nach Log-Dateien gesucht und von allen Verzeichnissen wird die aktuellste Datei genutzt und ausgegeben

    Wirklich? Ja, guckst du:

    Auf einmal geht nicht, aber nacheinander. Per Skript geht das zum Beispiel relativ schnell. ;)


    Hab mal eben eins gebastelt - konnte es aber noch nicht testen, daher auf eigene Gefahr. Teste es vorher bitte selber oder warte, bis ich heute Abend daheim bin und dafür Zeit habe. Wird so gegen 20 Uhr sein.


    Sollte am prinzipiell - rein vom logischen - so einwandfrei funktionieren. :)


    Du musst folgende Code-Stellen anpassen:

    • 127.0.0.1 10011
      IP-Adresse und Port, worauf ServerQuery lauscht
    • sehrGeheimes$Passwd2014
      ServerQuery serveradmin Passwort
    • for snapshot in snapthots/*; do
      snapshots/* durch das Verzeichnis austauschen, wo du deine Snapshots gespeichert hast


    Denn im SQLite Dump wird stehen:AUTOINCREMENTUnd in einem MySQL Dump sollte stehen:AUTO_INCREMENTIn einem SQLite Dump gibt es in einemINSERT INTOStatemant eine andere Art des Escapen.

    Deswegen gibt es Hilfen, dies entsprechend zu konvertieren: sqlite - Quick easy way to migrate SQLite3 to MySQL? - Stack Overflow


    Weitere Infos findet man hierzu auch hier: Suchergebnisse


    SQLite nutzt anscheinend " und MySQL nutzt '


    Nein, die doppelten Anführungszeichen funktionieren in beiden Datenbanken, da das genormt ist - genauso auch die einfachen Anführungszeichen.

    Die Verbindungsinformationen deines Servers sind in Ordnung und akzeptabel.


    2014-09-11 22:32:35.893419|WARNING |SCHandler | 1| Got command data while disconnected, dropping


    Diese Meldung heißt, dass der Client bereits die Verbindung getrennt/verloren hat und er die Verbindung wieder aufbauen möchte, es jedoch nicht kann und daher vom Server fliegt bzw. geschmissen wird.


    Hast du in den Servergruppen vielleicht eingestellt, dass man pro Identität nur 1x drauf darf? Falls ja: Erhöhe dieses Rechte bitte auf 3, um sowas für disconnects zu umgehen. Das Recht heißt "i_client_max_clones_uid".


    Ansonsten musst du schauen, ob es irgendwelche Netzwerkprobleme am Server oder Client gibt:

    • Sind die Netzwerktreiber aktuell und funktionsfähig?
    • Haben die Clients eine stabile Internetverbindung? Also fliegen sie nur vom einen TS oder auch von einem anderen, wenn sie von deinem fliegen?

      • Der Server schreibt oder teilweise Logs:

        • Code
          cat /var/log/dmesg


        • Code
          cat /var/log/messages

    Hallo,


    ich schlage folgendes vor: Erstelle eine frische Installation eines TeamSpeak 3 Servers - dieses mal jedoch mit einer MySQL bzw. MariaDB Datenbank: TeamSpeak Server Installation mit der MariaDB


    Ich empfehle dir direkt die MariaDB zu nutzen, wenn du ihn eh neu installierst. Ist performance-reicher und aktueller als die MySQL Datenbank. Ansonsten funktioniert die Anleitung genauso für die MySQL Datenbank. Du musst nur immer "mariadb" durch "mysql" austauschen. ;)


    Gut. Je nachdem, wo du die neue Instanz installierst und ob du noch eine entsprechend freie IP hast, kannst du die Instanz gleich starten. Ansonsten lasse sie erstmal aus.


    Jetzt machst du am besten pro virtuellen Server einen Snapshot. Hierzu empfehle ich dir, dass du ein Script bastelst/nimmst, dass das entsprechend automatisiert tut. Danach hast du dann so viele Snapshot-Dateien wie virtuelle Server. ;)


    Jetzt musst du ggfs. die funktionierende Instanz stoppen und die neue starten. Sobald diese gestartet ist, kannst du mit dem fast dem gleichen Skript die Snapshots auf der neuen Instanz wieder einspielen. So sollte das ganze relativ schnell und sauber gehen. :)


    Wenn du dich dann versuchst, auf einen virtuellen Server zu verbinden, sollte das a) funktionieren und b) genauso erscheinen, wie zuvor.


    Jetzt musst du nur noch folgendes tun: Verschiebe oder kopiere das files/ Verzeichnis von der alten Instanz in die neue. Somit sind wieder alle Dateien da, wo sie auch vorher waren. ;)


    Das wär's eigentlicht. Ich würde das dann erstmal eine weile so testen und belassen. Wenn es ein, zwei Wochen oder einen Monat ohne Probleme funktioniert, dann würde ich den Server nochmal anfassen und aufräumen:

    • Alte Instanz löschen
    • Neue Instanz in das Verzeichnis der alten Instanz verschieben

    Hinweis: Hierzu müssen die Instanzen natürlich nochmal ausgeschaltet werden!


    PS: Ich entwickle genau für solche Sachen ja kommerziell die Softwares. Ich schau mal, ob ich dazu was sinnvolles hinkriege, was dann jeder nutzen kann. Das wird allerdings bis Sonntag dauern/warten müssen, da ich noch andere Projekte derzeit in der Pipe habe.