Im letzten Artikel habe ich ein minimalistisches Active/Active Clustersetup aufgebaut. Ein Problem hierbei, wenn mal der eine, mal der andere Server eine Anfrage beantwortet klappt das mit vielen PHP-Anwendungen nicht, da die ihre Session-Informationen standardmäßig im Dateisystem ablegen. Somit stehen die Sessions immer nur einem der Cluster-Nodes zur Verfügung. Abhilfe schafft hier memcached bzw. php5-memcache.

Die Installation wird wie folgt gestartet:

apt-get install memcached php5-memcache

An...

Ich habe hier im Blog ja schon öfter Artikel zu Clustern geschrieben, es handelte sich aber immer um Active/Passive Setups. Diesmal soll es ein Active/Active Setup werden.

Worin liegt der Unterschied? Bei einem Active/Passive Setup gibt es einen aktiven Node auf dem alle gewünschten Dienste gestartet sind. Auf dem passiven Node sind zwar dieselben Dienste und Daten vorhanden, aber nicht gestartet. Tritt auf dem aktiven Node ein Fehler auf werden die restlichen Dienste dort heruntergefahren und auf dem passiven Node gestartet. Das dauert natürlich etwas und in der Zeit sind die Dienste nicht erreichbar. In einem Active/Active Setup sind die Dienste auf allen Nodes gestartet und es gibt keine Downtime, wenn auf einem Node ein Fehler auftritt. Ein weiterer Vorteil, man kann die Last auf die Nodes verteilen.

Ich habe hier im Blog ja schon öfter Artikel zu Clustern geschrieben, es handelte sich aber immer um Active/Passive Setups. Diesmal soll es ein Active/Active Setup werden.

Worin liegt der Unterschied? Bei einem Active/Passive Setup gibt es einen aktiven Node auf dem alle gewünschten Dienste gestartet sind. Auf dem passiven Node sind zwar dieselben Dienste und Daten vorhanden, aber nicht gestartet. Tritt auf dem aktiven Node ein Fehler auf werden die restlichen Dienste dort heruntergefahren und auf dem pa...

Ich habe mich echt lange davor gedrückt mit endlich mal richtig mit SPF (und DKIM, dazu aber ein andermal mehr) zu beschäftigen. Heute habe ich es dann endlich gemacht und er hat gar nicht gebohrt es war verblüffend einfach und schnell gemacht.

SPF ist dazu da einem empfangenden Mailsystem eine Möglichkeit zu geben festzustellen ob der einliefernde Server vom Domaininhaber überhaupt für den Mailversand vorgesehen wurde.

Wenn ich mich recht erinnere haben wir in den vorangegangenen CLI-Adventures awk bisher immer nur verwendet um eine bestimmte Stelle (nennen wir es Spalte) einer Zeile herauszulösen. awk kann jedoch deutlich mehr, zum Beispiel Rechnen und Systembefehle ausführen.

Wo ich schonmal dabei war an den SSL-Zertifikaten zu schrauben habe ich gleich noch HSTS angeknipst. HSTS zwingt den Browser, für eine gewisse Zeit, nur noch HTTPS-Verbindungen zu einem Server/einer Domain herzustellen und verhindert so bestimmte Formen von Man-in-the-middle-Angriffen.

Ich weiß nicht, wie oft ich schon Mails von Bloglesern erhalten habe, mein SSL-Zertifikat sei abgelaufen und ich sollte es doch endlich mal erneuern. Nicht dass mir mein Monitoring das nicht rechtzeitig gesagt hätte, auch https://startssl.com hat mir immer rechtzeitig eine entsprechende Info geschickt. Aber Zertifikatupdates sind einfach umständlich und doof.

Um so erfreuter war ich, als https://letsencrypt.org sich anschickte hier Abhilfe zu schaffen. Doch der Betatest brachte einige Ernüchterung. Der Standard-Client brachte nicht nur zahlreiche Dependencies und damit überraschend viel Komplexität mit sich, er wollte außerdem auf genau den Ports laufen, die mein Webserver belegt. Das manuelle Verfahren, welches zumindest die letztgenannte Einschränkung nicht mit sich brachte war leider nicht sauber automatisierbar, da es ständig irgendwelche Rückfragen stellte.

Abhilfe schaffte hier [[https://github.com/lukas2511/letsencrypt.sh|letsencrypt.sh]]. Es benötigt lediglich sed und curl, beides ist sowieso installiert. Das eigentliche Script ist in Bash geschrieben und deutlich überschaubarer als der letsencrypt-Standard-Client. Der einzige Nachteil, die Apache-Konfiguration muss ich weiterhin selbst übernehmen, doch das hatte der letsencrypt-Client auch nicht sauber hinbekommen.

Neben der Serverüberwachung mit Icinga/Nagios habe ich bisher immer Munin verwendet. Munin zeichnet Graphen z.B. für die aktuelle Serverlast (Load) oder die Belegung der Festplatten. Leider skaliert Munin nicht besonders gut. In festen Intervallen fragt Munin die verbundenen Clients nach neuen Daten und rendert neue Grafiken. Das dauert leider einigermaßen lang.

Eine ressourcensparendere Alternative ist collectd (https://collectd.org/).

Speichermedien für Backups gibt es reichlich. Eines der ältesten Medien sind sicherlich Bänder. Und auch wenn sie immer mehr von Cloudlösungen und Festplatten abgelöst werden gibt es sie noch immer. Die Vorteile sind sicherlich die hohen Kapazitäten in Verbindung mit den günstigen Medien. Einzig die Einstiegpreise für ein entsprechendes Laufwerk sind zunächst sicher abschreckend.

Ein Nachteil von Bändern ist sicher dass man sie nicht einfach so wie eine normale Festplatte ansprechen kann. Somit scheiden viele Backuplösungen aus und man benötigt eine auf Bandlaufwerke spezialisierte Software.

Hier kommt Bacula ins Spiel.

Ein VPN ist eine praktische Sache und eine der seltenen Maßnahmen, die sowohl Komfort als auch Sicherheit erhöhen. Die Einrichtung eines VPNs kann recht komplex sein, mit OpenVPN geht es aber ziemlich leicht. Außerdem stehen für OpenVPN Clients für quasi jedes Betriebssystem zur Verfügung.