Google Apps
Nach langer Zeit habe ich mich entschieden meinen eigenen Mailserver hinter der DSL Leitung zu entsorgen.
Die neue Plattform für mich ist dabei Google apps, ein kostenloser Dienst den Google zur Verfügung stellt. Die Besonderheit hierbei ist die Verwendung eigener Domains, in meinem Fall "streb.name"
Google apps bietet ähnlich einem "normalen" GMail Konto folgende features:
- Google Mail mit eigener Domain und einem unschlagbaren SPAM-Filter
- Google Sites
- Google Docs
- Google Calendar
- Google Contacts
- und final Google Talk (ein Jabber Account mit der eigenen Domain)
Von den zur Verfügung stehenden apps nutze ich aktuell "nur" GMail und Google Talk mit einem ICQ Transport, zu finden ist eine Liste von "offenen" Jabberservern mit Transports unter: http://www.jabberes.org/servers/
Für die Umstellung an sich ist nicht viel notwendig, ein beispielhaftes Zonenfile für die Nutzung von Google apps findet sich hier. Einzig mit Google Talk und Jabber Services auf anderen Jabberservern, für z.B. ICQ oder AIM Transports gab es etwas Probleme die jedoch durch Ergänzen der bei mir fehlenden SRV Records im DNS gelöst werden konnten.
File merge am Mac
Vor kurzem hatte ich das Problem zwei Dateien mergen zu müssen, d.h. die Dateien haben den gleichen Ursprung aber beide wurden parallel weiter editiert.
Um diese wieder zusammenzuführen hilft opendiff am Mac, enthalten ist das Tool in XCode.
Um den gewünschten Inhalt der neuen Datei auszuwählen einfach rechts unter bei Actions den gewünschten merge Mechanismus auswählen.
TimeMachine und iSCSI
Nachdem mein TimeMachine Backup auf einen SMB Share nach einiger Zeit wegen Problemen mit dem Image Probleme gemacht hat habe ich mich dazu entschlossen einen neuen Weg zu suchen. Aktuell wird für das Storage iSCSI auf einen Linux Server verwendet. Benötigt wird hierfür lediglich das iSCSI Target unter Linux (in diesem fall Debian) und ein iSCSI Initiator für den Mac da sowohl in Leopard als auch Snow Leopard iSCSI nicht nativ unterstützt wird.
Die Installation des Targets geht unter Debian mittels:
aptitude install iscsitarget iscsitarget-modules-`uname -r`
Danach folgt die Konfiguration des Targets in /etc/ietd.conf
Target iqn.2009-12.name.streb:storage.timemachine
Lun 0 Path=/dev/vg_data/lv_timemachine,Type=blockio
Alias TimemachineDie Konfigurationsänderung wird durch den Neustart des Target Daemons initiiert: /etc/init.d/iscsitarget restart.
Vorher muss allerdings /etc/default/iscsitarget editiert werden um das Starten des Daemons zu erlauben.
ISCSITARGET_ENABLE=true
Um iSCSI auf dem Mac nutzbar zu machen kann "globalSAN iSCSI" verwendet werden, zu finden ist die Software hier: http://www.studionetworksolutions.com/support/faq.php?pi=11&fi=51.
Nach erfolgreicher Installation kann das Volume eingebunden werden.
Zum setzen der Einstellungen bringt globalSAN ein SystemPref mit in dem unter "Portal" der iSCSI Target Host zu setzten ist.

globalSAN iSCSI Portal
Danach werden unter "Targets" die zur Verfügung gestellten Dateisysteme sichtbar.

globalSAN iSCSI Target
Danach wird TimeMachine wie gewohnt auf das neue Volume gesetzt und los gehts.
OpenNMS Prowl Alerts
Nachdem ich als iPhone Nutzer auch Prowl installiert habe ging es nun darum mein OpenNMS mit Prowl für die Alarmierung zu koppeln.
Da Prowl eine gut beschriebene API bietet und ebenfalls fertige Skripte für diese in verschiedenen Sprachen (Perl,Python,...) zur Verfügung stellt habe ich mich für diese Variante entschieden.
Benutzt habe ich hierfür die Perl Variante, downloadbar ist prowl.pl hier.
Allerdings gab es bei der Parameterübergabe(API Key, Application, usw.) aus OpenNMS an prowl.pl etwas Schwierigkeiten. Lösung des Problems ist ein kleiner Wrapper der von OpenNMS aufgerufen wird und im Hintergrund entsprechend parametrisiert prowl.pl aufruft.
prowl_wrapper.pl
#!/usr/bin/perl -w my $prowl = "/usr/local/bin/prowl.pl"; my $apikey = shift; my $application = "OpenNMS"; my $priority = 1; my $event = "Alert"; my $msg = ""; foreach (@ARGV) { $msg .= $_." "; } my $cmd = $prowl." -apikey ".$apikey. " -application=\"".$application."\" -priority=". $priority." -event=\"".$event."\" -notification=\"".$msg."\""; my $return = qx( $cmd ); print $return;
Wichtig ist hier die jeweiligen Prowl API-Key für den Wrapper richtig anzupassen, hierfür habe ich die PagerEmail Adresse in OpenNMS verwendet um so für jeden Kontakt eine andere angeben zu können.
Anbei finden sich die notwendigen configs für OpenNMS:
notificationCommands.xml
<command binary="true"> <name>notifyProwl</name> <execute>/usr/local/bin/prowl_wrapper.pl</execute> <comment>send Prowl notifications</comment> <argument streamed="false"> <switch>-pemail</switch> </argument> <argument streamed="false"> <switch>-subject</switch> </argument> </command>
rootdelay beim Linux Boot
Gerade eben hatte ich bei einer nagelneuen Linux Installation ein Problem beim ersten Booten des neuen Systems. Der Fehler war nicht von Anfang an ersichtlich, nach längerem Debugging hat sich der Fehler wie folgt dargestellt:
Beim Übergang vom Initrd zum Kernel und dem Mounten des Filesystems meldete Grub folgenden Fehler:
ALERT! /dev/sda2 does not exist. Dropping to a shell!
Danach begrüßte mich eine BusyBox Shell von der ich leider nicht weiter kam.
Problem war schlicht das beim Laden des SAS-Controller Modules (mptsas) braucht das System viel zu lange um die Platten zu finden und bricht mit einem Timeout ab.
Der Fehler lässt sich durch den Parameter
rootdelay=45
in der Kernel Commandline beheben.
Siehe auch hier bei Launchpad beschrieben.
Housekeeping in Leopard
Nachdem gefühlt in letzter Zeit mein OSX immer behäbiger geworden ist war ich auf der Suche nach Tools die das System wieder auf vordermann bringen. Dabei sind mir zwei Kandidaten besonders ans Herz gewachsen:
OnyX hilft sämtliche Caches zu aktualisieren bzw. neu aufzubauen und weitere "System maintenance" Skripte aufzurufen.

AppCleaner ist gedacht um bisher installierte Programme ohne Rückstände zu entfernen.

Subjektiv hat das zumindest bei mir einiges gebracht, mal sehen ob sich da noch weiteres optimieren lässt.
Umstellung auf lighttpd
Nachdem ich mich vor kurzem dazu entschlossen habe diesen Webserver von Apache auf Lighttpd umzustellen hier ein Load-Graph aus dem NagiosGrapher der den Zeitpunkt der Umstellung relativ genau erahnen lässt:

Wie man sieht hat sich vom 19.01. bis zum 20.01. die Load des Servers geringfügig nach unten verändert !
Alle meine Websites laufen mittlerweile mit Lighttpd, ich bin echt begeistert davon.
Vergleich gängiger Dateisysteme unter Linux
Oft steht man bei der Installation eines Servers vor der Wahl welches Dateisystem genommen werden soll.
Hier ein Vergleichen verschiedener Filesysteme (xfs,jfx,reiserfs und ext2/3)
Nachdem es meine Kollgen nun geschafft haben mich mit dem Twitterwahn anzustecken bin ich jetzt auch im Twitterversum unterwegs.
Wer mir folgen möchte hier ist mein Twitter: http://www.twitter.com/mstreb
Ich freue mich über followers. !
Drobo the Storage Robot
Ein interessanes Stück Hardware für die Datenhalde ist Drobo von Data Robotics, Inc. Standartmäßig wird Drobo mittels Firewire oder USB2.0 als direktes Laufwerk an den Host angeschlossen.
Zusätzlich gibt es DroboShare der aus Drobo ein NAS macht, allerdings unterstützt DroboShare out of the Box nur SMB als Netzwerkdateisystem.
Hier kommen die DroboApps ins Spiel, mit diesen Paketen kann DroboShare um einige nützliche Features erweitert werden z.B.:
- Firefly - ein iTunes Media Server
- Userland NFS - ein NFS Server
- Dropbear SSH - ein SSH Server
Zusätzlich gibt es ausserhalb von DroboApps backmyfruitup um TimeMachine Backups auf Drobo via DroboShare abzulegen.
Interessant an Drobo ist auch das die Kapazität dynamisch erhöht werden kann, d.h. kleinste Platte raus, größere Platte rein und fertig. Drobo kümmert sich um die Erweiterung der Volumes, Daten werden hierbei natürlich redundant gespeichert.
Die je nach Größe der Festplatten zu erwartende Kapazität kann mit dem Drobolator ermittelt werden.
Zu sehen ist das Wunderwerk in einer Videpräsentation auf der Drobo Website, vielen Dank an die sehr nett anzusehende "Cali Lewis".
Hier einige reviews zu Drobo bzw. DroboShare:






