Skip to content

SQLite Zugriff von extern

SQLite ist eine hübsche kleine Datenbank mit vielen Möglichkeiten. Allerdings kennt sie keinen Client/Server Betrieb, so dass man nur lokal direkt auf die Daten zugreifen kann. Ich habe aktuell die Herausforderung, dass ich auf eine SQLite Datenbank über das Netz zugreifen muss, da ich mit den Daten quasi in Echtzeit auf einem anderen Rechner weiterverarbeite. 

Konkret geht es um eine SQLite Datenbank auf einer Asterisk Telefonanlage, in der ich die Call Detail Records (CDR) abgreifern kann. Leider ist der Asterisk geschlossen und Module, die es mir leichter machen würden, die Daten gleich in eine externe Datenbank zu schreiben sind nicht vorhanden. Also brauche ich wohl oder übel die Trickkiste.

An welche Möglichkeiten habe ich schon gedacht?

  • SQLite Datenbank (ca. 2MB) regelmäßig per rsync kopieren. Ist dann eben nicht in Echtzeit.
  • Abfrage der Daten via ssh und sqlite Client auf der Telefonanlage. Ich bekomme dann aber nicht das benötigte Format oder ich bekomme zu viele Daten (Dump der kompletten DB) und es ist nicht in Echtzeit.
  • Via sshfs das Verzeichnis auf dem externen Host einmounten und direkt auf die Datenbank zugreifen. Funktioniert sehr gut, bis auf das der Mount gelegentlich verschwindet. Eventuell kann ich das aber noch lösen. 

Hat jemand noch weitere Ideen? Ich kann den SQLite auf der Telefonanlage nicht ersetzen und leider auch keine eigenen Module einbringen. Die schönen Module fehlen leider.

Zabbix Queue voll?

Merke: Zeit richtig einstellen auf dem Zabbix Server hilft. 

Der besagte Zabbix Server hatte die falsche Zeitzone und ging damit zwei Stunden nach. Damit kamen bestimmte Pakete von anderen Agents nicht "rechtzeitig" und wurden verworfen. 

Nach Anpassung der Zeitzone mit

dpkg-reconfigure tzdata

lief die Queue auch schön leer.

Webserver, simpel

python -m SimpleHTTPServer

Der Befehl startet einen Webserver, der das aktuelle Verzeichnis über Port 8000 freigibt.

~# python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

Man kann also nun über http://<adresse>:8000/ auf das Verzeichnis zugreifen. Da Python quasi überall vorhanden ist, werden keine weiteren Freigaben oder Software benötigt. Nicht einmal root Rechte braucht man dafür.

Wer einen anderen Port bevorzugt, kann diesen noch dahinter angeben:

python -m SimpleHTTPServer [port]

So etwas ähnliches gibt's auch in Bash, die obige Lösung finde ich aber einfacher.

Blog umgezogen

Heute habe ich längst fällige Dinge erledigt. Ich habe mein Blog vom ältesten auf den jüngsten Server umgezogen und meine alte Homepage auf Basis von Typo3 habe ich dabei gerade abgeschaltet. Ich hatte sie sowieso seit Jahren nicht gepflegt und wollte Typo3 ja schon länger loswerden.

Done. 

RDP schneller machen über NX

RDP, das Remote Desktop Protocol, macht seine Arbeit beim Zugriff auf entfernte Server soweit ja ganz ordentlich. Mittlerweile liegt RDP in Version 6 vor und es gibt sogar unter Linux einen funktionierenden Client und auch einen funktionierenden RDP Server. Steht der zu steuernde Server allerdings hinter einer nicht ganz so breitbandigen Verbindung, lahmt RDP gelegentlich auch mal dahin. Selbst wenn man die Performance optimiert, fliesst es so la la, abhängig eben von der Upload-Bandbreite des Anschlusses an dem der Server hängt. Da auch ich oft auf RDP Server zugreife(n muss), die hinter einem normalen DSL Anschluss hängen kenne ich das Problem also auch aus erster Hand.

Interessant wird's, wenn man über den RDP Tellerrand hinausschaut. Dort gibt es zum Beispiel für den Betrieb von Linux Terminalservern von Nomachine ein Produkt namens NX, welches eine ordentliche Performance an den Tag legt und über normales SSH gefahren wird. NX kann aber auch mehr. Mit NX' Hilfe lassen sich beispielsweise auch RDP Connections beschleunigen.

Zum Beispiel baue ich eine Verbindung mit NX über eine DSL Leitung zu einem Linux Server auf, der im gleichen LAN wie der RDP Server steht. Auf diesem Linux Server starte ich nun meinen RDP Client und verbinde mich auf den RDP Server. Das alleine sorgt schon für einen ordentlichen Performancegewinn, mit dem die Arbeit auf einem Windows Terminal Server über RDP deutlich flüssiger von der Hand geht.

Ausprobieren empfohlen. Ich könnte vielleicht auch mal ein Video vom Unterschied machen, was allerdings Zeit kostet, die ich momentan in andere Dinge stecke. Weshalb sonst sollte ich auch RDP beschleunigen wollen? :-)

Umzug

marcogabriel.com ist umgezogen. Sollte es zu Problemen kommen oder etwas nicht richtig funktionieren wäre ich dankbar über eine kurze Nachricht an mgs (at) marcogabriel (punkt) com. Danke :-).
tweetbackcheck cronjob