Manchmal muss den Upload von Dateien testen. Nicht immer nutzt man etwas wie S3 sondern oft auch noch ganz klassische Umgebungen mit SCP oder sFTP. Wenn man schnell und unkompliziert den Upload auf einen sFTP-Server testen will, kann sich so einen ganz schnell und einfach mit Docker erzeugen.
docker run -p 2222:22 -d atmoz/sftp foo:pass:::upload
man kann sich dann auf localhost:2222 mit dem Benutzer foo und dem Passwort pass verbinden. Für Dateien steht das Upload-Verzeichnis bereit. Wenn man ihn nicht mehr braucht, wirft man den Container einfach weg und kann das nächste mal sauber mit einem neuen starten.
Oft will man ja beim Speichern von Dateien flexibel bleiben. Beim Entwickeln lokal speichern, im Produktivsystem in S3 und auf einem alten Test-System vielleicht noch auf einem FTP-Server oder in Redis.
Jeder hat schon mal so was geschrieben um wenigstens das native Filesystem und FTP zu abstrahieren, weil der FTP-Server nur vom produktiven System aus zu erreichen war oder so. Mein PHP Framework hat auch solche Klassen. Aber ich hatte keine Lust mehr diese noch mal anzupassen und eine brauchbare Struktur mit Factory und Interfaces dort endlich mal zu implementieren... was die Klassen (2006 geschrieben) an sich dringend nötig hätten.
Deswegen habe ich mich einige Sekunden im Internet umgeguckt und Flysystem gefunden. Das kann natives FS, FTP, S3, Redis, OneDrive, Azure File Storage.... also alles was man so braucht.
Ich habe es mal mit S3 getestet. Natürlich müsste man sich erst einmal eine brauchbare Factory schreiben, aber da kann man sicher in seinem System auf die alten Strukturen zurück greifen und muss dann nicht alles umbauen, wenn man auf Flysystem wechselt.
Amazon S3 ist ein einfacher Key-Value Store, wo man auch sehr große Daten unterbringen kann. Gerade wenn man Dateien nicht auf dem selben Server speichern möchte oder ein Cluster betreiben will, ist S3 eine gute Alternative zu FTP oder NFS-Laufwerken. Der Server ist über HTTP zu erreichen und es gibt für alle möglichen Sprachen Clients. Eine S3 kompatible Implementierung ist MinIO. Ich hab hier ein kleines Beispiel gebaut, wo ich ein Bild hochlade und wieder downloade und danach alles auch wieder aufräume. Metadata habe ich auch genutzt. Wenn man komplexere Anwendungen hat wird man wohl eher nicht SaveAs verwenden sondern den mitgelieferten Stream aus dem Array verwenden.
Das Minio Docker-Image:
sudo docker pull minio/minio
sudo docker run -p 9080:9000 -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" -e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" minio/minio server /data
Wenn man ein eigenes Haus hat, ist man dann doch irgendwann immer an dem Punkt, wo man sich über Sicherheit Gedanken macht. Dabei gibt es wie bei der IT zwei Stufen an Sicherheit.
Einmal Einbrüche verhindern und Versuche erkennen und aufzeichnen. Es ist zwar schön, wenn sie die Terrassentür nicht so einfach auf hebeln lässt, aber man will den Versuch ja trotzdem dokumentiert haben. Falls es jemanden doch gelingen sollte, will man auch dann Material haben, um alles nachweisen zu können und vielleicht sogar gutes Bildmaterial für die Strafverfolgung zu haben.
Dann kommen immer Überwachungskameras ins Spiel. Klar muss einem sein, dass so eine Kamera einen Einbruch nicht verhindert, sondern nur bei der Aufklärung helfen kann. Gute Fenster und Türen ersetzt eine Kamera nie. Die Kunst bei Überwachungskameras ist, diese so zu positionieren, dass sie nur Stellen aufzeichnen, die nicht andere Personen und deren Persönlichkeitsfreiraum einschränken und doch genau Raum abdecken, um viele und gute Bilder oder Videos zu machen.
Indoor ist meistens nicht nötig und vielleicht nur in abgetrennten Eingangsbereichen sinnvoll. Abgetrennt ist, wichtig wenn man Katzen oder Hunde hat, weil sonst würden, diese wohl die Kamera zu oft auslösen. Sensible Bereiche will man ja selbst auch gar nicht überwachen.
Die Bilder und Video sollen nicht nur in der Kamera gespeichert werden, sondern in Echtzeit an einen sicheren FTP-Server gesendet werden. Sicher bedeutet hierbei, dass der Server bei einem Einbruch selbst nicht geklaut oder zerstört werden kann. Cloud-Lösungen sind hier teilweise nicht verkehrt. Ein kleines QNAP-NAS lässt sich aber auch gut versteckt im Haus unterbringen. Das Speichern auf einem FTP in Echtzeit ist wichtig, dass auch wenn jemand die Kamera beschädigt oder klaut, hierbei wenigstens so lang wie möglich Bilder oder Videos erstellt und gesichert werden. Eine Kamera nur mit SD-Karte, die geklaut werden kann ist an sich sinnlos.
Es gibt schon gute und günstige Outdoor IP-Kameras. Ob man WLAN braucht oder Netzwerkkabel legen will muss jeder selbst wissen. ABER da Kabel (ausfall-)sicherer sind und man diese gleichzeitig zur Stromversorgung über PoE verwenden kann, habe ich mich bei mir rein für eine LAN-Kabel gestützte Lösungen entschieden, auch wenn eine der Kameras WLAN hat.
Neben einem 1GBit Switch kommt noch ein weiterer 100Mbit PoE Switch aus China zum Einsatz. 1GBit habe ich da hauptsächlich, wegen dem SAT DLNA-Server, der über die selben Leitungen geht, aber allein für Überwachungskameras würde 100MBit ausreichen.
Wichtig ist die Auflösung der Kamera. 720p klingt besser als es ist. 1080p ist schon sehr viel besser und ich würde nur für relativ unwichtige Bereiche oder welche wo die Menschen dicht an der Kamera vorbei gehen müssen noch mit 720p ausstatten. 1080p mit Infrarot bekommt es meistens gut hin auch Nummernschilder gut lesbar abzubilden. 720p hat hier schon schnell Probleme.
Bilder und Videos landen bei mir auf meinem kleinen QNAP TS-120 NAS. Eine externe 500GB eSATA HDD kann schon viele viele Tage halten, wenn man wirklich nur bestimmte Bereiche per Motion-Detection überwacht, an denen nicht im Minutentakt Menschen oder Vögel vorbei gehen/fliegen. Wind + Büsche sollten auch nicht in dem Bereich zu finden sein,weil die doch die Motion-Detection sehr effektiv auslösen.
Spinnen direkt vor der Kamera können ein Problem sein. Aber meistens bauen die 2-3 Abende ihr Netz und stören dann nicht weiter.
Bis hier hin ist alles toll und funktioniert super. Aber es gibt immer noch 2 Bereiche, wo ich mir unsicher bin wie ich das weiter handhaben soll. Einmal eine sehr gut versteckte Kamera, die das NAS überwachen soll. FTP + SD-Karte, damit sich Kamera und NAS gegenseitig absichern können. Gut getarnte Kamera mit Motion-Detection und FTP-Upload sind schwer zu finden, wenn man nicht unendlich viel Geld dafür ausgeben will.
Als zweites ist noch ein Fenster nicht überwacht, dass aber direkt zur Straße geht und wo es schwer ist eine Kamera mit Sicht auf das Fenster anzubringen. Ich mag Kamera an Außenwänden nicht besonders, aber da wird es wohl keine andere Lösung geben. Da wäre eine hübsche Kamera wie diese ganz gut, die auch etwas nach einer Lampe aussieht, damit sich niemand davon belästigt fühlt, auch wenn die Kamera gar nicht die Straße und andere Bereiche überwacht.
Ich und NAS war immer ein schwieriges Thema. Eines von Buffalo mit 1TB Festplatte war mir viel zu laut. Ich habe die Festplatte dann in meinen PC eingebaut und den Rest des NAS entsorgt. Die NAS-Funktion der Fritzbox war ganz nett aber ich wollte keine Festplatte unter dem Schrank im Wohnzimmer haben. In der Wohnung war leider der Telefonanschluss nicht mit Arbeitszimmer und unter dem Bücherschrank war es immer extrem staubig. Also es dann mit dem Haus begann und ich die Idee hatte mit IP-Kameras den Gartenbereich zu überwachen, wurde das Thema NAS wieder aktuell. Ich hatte mir da verschiedene Lösungen überlegt:
- Billiger 19" Server
- Billiger HP Micro-Server
- ein NAS
- ein Rasberry Pi mit USB-Festplatte
Ich bestellte mir ein günstiges NAS aus China. Dieses mal eines, wo die Festplatte austauschbar war und das etwas mehr nach einem NAS aussah. Die UI war auch sehr viel besser als bei dem Buffalo NAS. Aber es war wirklich sehr laut (allein der Lüfter) und so wirklich toll fühlte es auch nicht an. Man merkte einfach den Preis und Updates und Patches konnte man da auch nicht erwarten.
Gehen wir ein paar Jahre zurück. Ich weiß nicht mehr wie ich darauf gekommen bin, aber irgendwann fand ich heraus, dass man bestimmte QNAP NAS als VM-Hosts verwenden konnte. Diese waren nicht günstig, aber brauchten an sich alles mit was eine kleine Firma brauchte.
Vor so 4 Jahren kam es dann dazu, dass ich um Hilfe bei einer kleineren Firma gebieten wurde. Da schien ein QNAP-NAS perfekt zu passen. Die brauchten eben nur zentralen Speicher und Dinge wie eine zentrale Groupware, die nicht in der Cloud lief (wegen Datenschutzbedenken). Verbindung per VPN, um auf die Groupware zugreifen zu können, wäre nicht wirklich das Problem gewesen.
Damals hätte so ein NAS ca. 2000 Euro gekostet, das genug Festplatten- und Arbeitsspeicher für den Zweck gehabt hätte. Das war dann für die kleine Firma zu viel.
Dezember 2017. 10 PCs ein Server. Domain-Controller. Zentraler Speicher. Zuerst dachte ich man könnte eine VM mit Samba als Domain-Controller nutzen und auf so einem NAS laufen lassen, bis ich heraus fand, dass diese Größe von NAS's sogar einen entsprechenden Service schon mit brachte. Die Preise waren auch in der Zeit stark gefallen. Ein passendes NAS mit 2x 3GB und 4GB RAM kostete gerade mal etwas über 600 Euro. Bezahlbar und alles in einem.
Auch ganz praktisch an einer QNAP TS-253A ist auch die Größe, die ohne Probleme auf dem Boden eines 19" Schranks platz findet. USB 3.0, 2x 1GBit LAN, RAID.. Microphone-Anschlüsse für Karaoke (ohne wäre teurer gewesen).
Das NAS wurde gekauft und ich hatte endlich mal die Möglichkeit mit so einem System zu arbeiten. Fazit: Toll! UI ist super zu bedienen. Es ist leise und schnell. Netzwerkfreigaben
funktionieren natürlich sofort und problemlos. Der Domain-Controller funktionierte auch sofort, wobei ich etwas mit den Logon-Scripten zu kämpfen hatte bis die liefen. Man durfte kein ".bat" hinter schreiben. Der Rest ist wirklich einfach. Eine Domain anlegen, einen Domain-Admin anlegen ,paar Benutzer und es kann los gehen. PC mit Hilfe des Admin-Kontos in die Domain aufnehmen. Neustart und sich mit einem der Benutzer anmelden. Läuft und bringt kleinen Firmen sehr viel mehr Kontrolle (als PCs wo jeder als Admin drauf arbeitet).
Das Geld für eine TS-253A wollte ich privat dann doch nicht ausgeben. Aber es gibt günstigere gebrauchte NAS von QNAP wie die TS-120. Dieses hat nur einen HDD-Slot und einen 1GBit LAN-Anschluss. Aber auch USB 3.0 und sogar E-SATA. Als CPU ist eine ARM-CPU und keine x86 von Intel verbaut. Deswegen hat es wohl auch keine VM-Host Funktion, wobei es auch beim RAM eng werden würde. Leider fehlt da auch der Domain-Controller, den ich sonst doch gerne gehabt hätte.
Wenn man sich aber mal durch die Funktionen und Zusatzdienste der dort installierten QTS-Version klickt, merkt man schnell, dass QNAP ein NAS auch eher als sehr kompakten Server sieht, als eine Festplatte mit LAN-Anschluss. QTS ist dabei ein wirkliches tolles System, dass schnell ist und trotz den ganzen Funktionen auch für denen übersichtlich erscheint, der vorher noch nie mit QTS zu tun hatte.
Auf dem Startbildschirm sind schon verschiedene Dienste wie ein eigens kleines Cloud-Storage-System zu sehen.
Ich zeige hier mein paar Dienste, die wirklich praktisch sein können (ich aber auch nicht nicht wirklich verwendet habe). Wie oben schon erwähnt, fehlt mir etwas der Domain-Controller.
Eine ActiveDirector/Domain Integration als Client ist aber möglich, so dass man die Benutzer einer Windows Domain direkt im NAS nutzen kann und nicht alles doppelt pflegen muss. Aber es gibt auch einen LDAP-Server. Wie weit man damit kommt, habe ich noch nicht getestet, werde ich aber in den nächsten Monaten wohl mal ausprobieren.
Wenn man eine einfache Groupware oder ein Wiki im Intranet laufen lassen möchte, braucht man an sich auch keine VMs. Denn das NAS bringt einen WebServer (sieht wie ein Apache aus), einen MySQL-Server und PHP mit. Ein Media-Wiki kann man auch sich direkt so als "App" installieren. Der Fall von vor 4 Jahren hätte sich also auch so lösen lassen ohne VM.
Wer eine Java-Lösung einer PHP-Lösung vorzieht hat Glück, denn es kann sogar ein Tomcat installiert werden. Es fehlt node.js, aber mit Apache + PHP und Tomcat sollte 90% aller Webanwendungen darauf laufen lassen können.
Performance... da würde ich nicht zu viel erwarten, aber sicher ist es für eine Firma mit so 10-15 Mitarbeitern, die dort Emails (Roundcube) checken und ihre Termine und Aufgaben verwalten ausreichend schnell. Mit DynDNS/fester IP und Port-Forwarding oder VPN, hat man eine kleine unbahängige Lösung. Ein VServer zu mieten ist aber da doch vielleicht die bessere Lösung, wenn man von extern Zugreifen möchte und keine wiederkehrenden Probleme mit Verbindungsausfällen der Internetverbindung hat.
Wegen den IP-Kameras überlege ich nochmal zu prüfen, ob die nicht die vom NAS mitgelieferte Lösung verwenden sollte. Ich müsste nochmal prüfen ob meine Kamera damit kompatibel ist und wie teuer kompatible Lösungen sind. Weil direkt die Kamera über das NAS steuern zu können ist natürlich sehr viel schöner, als nur eine Kamera per FTP Bilder und Videos auf einem NAS ablegen zu lassen. Da wäre wohl keine Lösung mit dabei Videos die älter als 1 Woche sind automatisch löschen zu lassen und ähnliches.
Auch wollte ich noch mal Testen, ob ich eine Festplatte einfach per E-SATA anschließen kann und diese wie die interne dann verwaltet wird. Eine externe für Backups wäre nett, aber ich hätte doch gerne die Option mehr Festplatten nachrüsten zu können. QNAP bietet hier leider keine Erweiterungen an wie beim TS-253A an.
Am Ende ist QNAP zwar teurer als einfache NAS-Systeme, bietet aber auch ein sehr stabiles System mit vielen Funktionen und kann in kleineren Firmen ohne Probleme einen klassischen Server ersetzen. Ein klassischer Server wäre dabei zu meist auch teurer. Die Geräte ab 300 Euro (nur das Gehäuse) bieten schon wirklich und sind ihr Geld meinen kleinen Erfahrungen nach auch wert.
Leute die viel mit Video-Streaming arbeiten, sollten sich bestimmte Funktionen wie
DJ2 live mal ansehen. Bei Karaoke im kleinen Stil sollte man aber vielleicht doch erst einmal bei UltraStar bleiben.
Nach einigen Versuchen mit einem billigen China NAS (langsam und laut), der NAS-Funktion der Fritzbox (die plötzlich die externe SSD nicht mehr erkannte) bin ich nun bei einer gebrauchten QNAP TS-120 gelandet. Eine der Hauptaufgaben des NAS sollte es ja sein Bilder und Videos einer oder mehrere Überwachungskameras zu speichern. Zusätzlich sollte es auch für andere Dinge dienen, wie Datenaustausch zwischen den PCs und so.
Die TS-120 kann viele Dinge der größeren und neueren NAS nicht. So kann sie weder als VM-Host dienen noch als Domain-Controller in Windows-Netzwerken eingesetzt werden (was schön gewesen wäre). Aber trotzdem ist sie den anderen Lösungen, die ich hatte, weit überlegen.
Die Einrichtung der IP-Kamera ging auch entsprechend einfach. Sie speichert über FTP und man kann über SMB dann auf die Daten zugreifen.
Jetzt mit dem Haus reicht es nicht mehr nur die Wohnungstür zu zuschliessen. Da viele Einbrüche über Garten und Terrassentür geschehen soll der Garten überwacht werden. Die Tür ist sicher und ein motorisierter Rollladen sichert nochmals ab. Also geht es mehr darum mögliche Einbruchsversuche zu dokumentieren.
Es ist ein ieGeek 720p IPCam für außen und mit LAN + WLAN. SD-Karte ist wohl auch möglich, ich will aber lieber FTP verwenden.
NAS mit FTP-Server kommt dann als nächstes und dann wird die Kamera installiert und kann benutzt werden. Die Bildqualität (720p) gefällt mir aber schon sehr gut.
Blog-entries by search-pattern/Tags:
Möchtest Du AdSense-Werbung erlauben und mir damit helfen die laufenden Kosten des Blogs tragen zu können?