Neues Projekt: file delivery

Nach Goetemp und Werdertweets schmeiss ich jetzt mal file delivery hier raus ins Netz. Die Idee des Projekts ist relativ simpel. Ueber einen einfachen Weg Dateien im Internet zur Verfuegung zu stellen ohne den echten Dateinamen bekannt zu geben sowie die Dokumente im DocumentRoot vorzuhalten.
Dabei herausgekommen ist file delivery. Es ist ein in PHP geschriebenes kleines System wo ueber ein Webinterface Dateien hochgeladen werden koennen. Die Dateien koennen irgendwo im Dateisystem liegen und muessen nicht im DocumentRoot des Webservers verfuegbar sein. Nach dem Upload gibt es eine URL die aus dem Benutzernamen des Nutzers der die Datei hochgeladen und der MD5-Checksum der hochgeladenen Datei besteht. Nur mit dieser kryptischen URL kann man nun die eine Datei herunterladen.
Als kleines Addon ist eine optionale Emailbenachrichtigung implementiert, die eine Email verschickt, wenn die gewaehlte Datei heruntergeladen wird.

Das System hat eine simple Benutzerverwaltung. Neue Nutzer koennen von dem Administrator Account hinzugefuegt werden. Wenn das PHP-Modul „apc“ installiert und aktiviert ist, wird auch ein Upload Fortschrittsbalken angezeigt. file delivery nutzt Smarty als Templateengine und kann dadurch komplett geskinnt werden.

Das System habe ich unter http://files.pregos.info installiert. Zugangsdaten zum Testen sind „admin/password“. Fuer diese Installation habe ich das Passwort aendern fuer den Administrator deaktiviert.

Wer Anmerkungen, Kritik oder aehnliches hat, bitte immer her damit. Code gibts fuer interessierte auf Anfrage per Mail.

Nagios – APC-USV monitoren

Aus aktuellem Anlass, weil ich gerade einen Check hinzugefuegt habe der den Batteriestatus ueberwacht und ggfs. darueber informiert wenn ausgewechselt werden muss.

Generell: Monitoring einer APC SmartUPS 3000 mit einer NetworkManagement Card via SNMP ist einfach. Ich habe diesen Weg gewaehlt (backup) und alles funktioniert einwandfrei.

Um zu ueberwachen ob eine Batterie ausgetauscht werden muss, habe ich das Plugin check_powerchute (backup) installiert. Einfach in /usr/lib/nagios/plugins/ kopieren, in der /etc/nagios3/commands.cfg einen entsprechenden Check hinzufuegen

# USV Batterie replacement
define command{
        command_name    check_apc_batterie
        command_line    $USER1$/check_powerchute $HOSTADDRESS$
        }

und dann noch in der /etc/nagios3/conf.d/services.cfg den check definieren und fertig:

## USV Batterie replacement
define service{
        host                            usv-smartups3000rm
        service_description             USV BATTERIE
        check_command                   check_apc_batterie
        use                             generic-service
        notification_interval           0 ; set > 0 if you want to be renotifie
        }

Bei dem Plugin check_powerchute ist zu beachten, dass es sehr simpel programmiert ist, und evtl. die SNMP-Community sowie die Protokollversion den Gegebenheiten vor Ort von Hand in der Datei selber angepasst werden muss.