Vor ein paar Wochen bin ich auf Piwik gestoßen und total begeistert davon. Piwik ist die Opensource-Alternative zu Google Analytics. Und damit gibt es endlich die Möglichkeit eine Webseite zu analysieren ohne Google mit Daten zu versorgen. Piwik benötigt nur PHP und MySQL und kann ganz einfach über einen Web-Installer installiert werden. Nachdem Piwik installiert wurde, muss noch ein kleiner JavaScript-Code auf der zu analysierenden Webseite eingefügt werden. Danach beginnt Piwik damit Besucher der Webseite und deren Aktionen zu analysieren.
Ich habe Piwik jetzt seit einigen Wochen im Einsatz. Interessant waren dabei für mich folgende Daten, die Piwik für mich ermittelt und über die praktische AJAX-Weboberfläche anzeigt:
- Wo kommen die Besucher meiner Webseite her?
- Wie lange verweilt ein Besucher im Durchschnitt auf meiner Webseite?
- Welche Seiten meiner Webseite werden am Häufigsten aufgerufen?
Eine Online-Demo von Piwik demonstriert die verschiedenen Funktionen live. Unbedingt mal anschauen! Unter piwik.org kann man sich Piwik besorgen.
Es gibt Probleme mit einem Serverdienst. Blöd, dass Du gerade unterwegs bist und keinen SSH-Zugang zum Server herstellen kannst. Das gehört mit TouchTerm (für iPhone) der Vergangenheit an.
TouchTerm ist ein SSH-Client für das iPhone und kann kostenlos über den AppStore installiert werden. Praktisch ist, dass man häufig benötigte Verbindungen speichern und somit immer schnell auf sie zugreifen kann. Dabei unterstützt TouchTerm auch den Landscape-Modus, mit dem man etwas mehr zu sehen bekommt.
TouchTerm bietet auch die Möglichkeit sich per Public-Key auf seinem SSH-Server anzumelden. Dazu generiert TouchTerm ein Key-Paar und sendet den Public-Key per eMail an eine beliebige Adresse. Diesen Public-Key kann man dann für den Zugang über SSH freischalten.
TouchTerm ist ein muss für alle Hobby- und Profi-Administratoren und bietet die Sicherheit, jederzeit an einem System Hand anlegen zu können.
Im vorherigen Beitrag 10 Gründe für Jabber habe ich schon erwähnt, was die Vorteile von Jabber sind. Ein großer Vorteil von Jabber ist, dass man einen eigenen Jabber-Server betreiben kann und damit die volle Kontrolle über seine persönlichen Daten behält (und natürlich auch viele nützliche Plugins benutzen kann). Über das Wiki von ubuntuusers.de bin ich auch Openfire aufmerksam geworden. Openfire wird von Ignite Realtime entwickelt und wurde unter GPL veröffentlich.
Features
- in Java implementiert
- Konfiguration vollständig über übersichtliches Webinterface möglich
- interne Datenbank oder Datenbank-Anbindung (MySQL, …)
Plugins
- IM-Gateway (AOL Instant Messenger, Gadu-Gadu, ICQ, IRC, MSN, Yahoo! Messenger) für die Anbindung an andere IM-Netzwerke
- Broadcast für Broadcast-Nachrichten (Nachricht an viele Benutzer)
- Content Filter um den Inhalt von Nachrichten filtern zu können
- Monitoring Service für die Überwachung des Jabber-Servers
- und viele mehr
Installation (unter Ubuntu 6.06)
- Java installieren mit
apt-get install sun-java5-jre
- Openfire herunterladen von igniterealtime.org/downloads (tar.gz-Version)
- Archiv entpacken mit
tar xvfz openfire_3_5_2.tar.gz
- Openfire starten mit
./bin/openfire start
- Konfiguration starten mit dem Browser domain.tld:9090 aufrufen und dem Wizard folgen
Versucht man Openfire auf einem vServer/VPS zu starten sollte man die Datei ./bin/openfire anpassen. Dort müssen bei den Aufrufen von java noch die Paramter -Xms12m -Xmx24m eingefügt werden. Ansonsten versucht die VM von Java zu viel Speicher zu reservieren und der Server bricht beim Starten ab.
weitere Informationen zu Openfire gibt es im Wiki von ubuntuusers.de.
Es gibt unterschiedliche Gründe dafür, eine URL umzuleiten. Ein Grund wäre z.B. die Suchmaschinenoptimierung. Man möchte, dass beim Aufruf domain.de gleich www.domain.de erscheint. Mit einem Apache-Webserver kann man dies über mod_rewrite und entsprechende Regeln lösen. Das ist allerdings etwas kryptisch und nicht auf den 1. Blick verständlich. Es gibt aber auch noch eine ältere aber sehr einfache und effektive Art für die Weiterleitung.
Man erstellt eine .htaccess-Datei mit folgendem Inhalt im Root-Verzeichnis des Webspaces:
Redirect permanent / http://www.domain.de
Jetzt werden automatisch alle Aufrufe an domain.de an www.domain.de weitergeleitet. Praktisch und effektiv!
(Photo: PHOTOCASE, bastian-dietz)
Wer seinen Benutzern über ProFTPD einen FTP-Zugang verschaffen möchte und dazu die normalen Linux-Benutzer zur Authentifizierung verwenden will, steht vor dem Problem, dass ProFTPD einen gültigen Shell-Zugang vorraussetzt.
Es gibt aber einen einfachen und sicheren Weg, bestimmten Benutzern nur Zugang über FTP zu erlauben:
- Pseudo-Shell anlegen mit:
cp /bin/false /bin/ftp
echo "/bin/ftp" >> /etc/shells
- /etc/passwd bearbeiten
Jedem Benutzer, der nur einen FTP-Zugang erhalten soll nun einfach die Shell /bin/ftp zuweisen.
Wenn ein Cronjob ausgeführt wird, bekommt der ausführende Benutzer mit den Standarteinstellungen eine E-Mail mit der Ausgabe des abgelaufenen Programms. Dies kann manchmal nervig sein. Wer diese Benachrichtigungen abschalten möchte hängt einfach an die Zeile des betreffenden Cronjobs > /dev/null 2>&1 an. Ein möglicher Eintrag in der crontab würde dann so aussehen:
40 * * * * /root/scripts/blubb.sh > /dev/null 2>&1
Es gibt eine praktische Möglichkeit herauszufinden, wieviele und welche Anfragen ein Apache2-Webserver aktuell bearbeitet. Diese Information kann wichtig sein um herauszufinden, ob der Webserver aktuell stark ausgelastet ist. Und wenn ja, von wem die Anfragen stammen.
Apache2 beinhaltet (genau wie Apache 1.X) eine Funktion mit der der aktuelle Serverstatus abgefragt werden kann. Dazu muss in der apache2.conf Datei folgendes eingefügt (bzw. auskommentiert) werden:
ExtendedStatus On
< location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
< /location>
Nach einem Restart des Webservers kann man nun mit folgendem Befehl den aktuellen Status abrufen:
apache2ctl fullstatus
Ein weiteres interessantes Tool ist apachetop. Allerdings war dies unter Ubuntu 6.06 bei mir aufgrund enormer Verzögerungszeiten nach einer Eingabe praktisch unbenutzbar.
Wer einen Server betreibt, sollte sich unbedingt regelmäßig die Log-Dateien anschauen. Nur so ist man darüber informiert, was auf dem Server passiert und kann gegebenfalls schnell reagieren. Natürlich macht es Sinn, dass zu automatisieren. Mit grep und mail lassen sich schnell und einfach brauchbare Scripte schreiben, die genau das überwachen, was man überwachen möchte.
Ein paar Beispiele:
Festplattenplatz überwachen
Es sollte niemals passieren, dass eine Partition voll läuft. Deshalb kann man die Auslastung der einzelnen Partitionen ganz einfach mit folgendem Script überwachen.
#!/bin/bash
/bin/df -h | /usr/bin/mail user@domain.de -s Disk-Quota
SSH-Logins überwachen
Wer war in den letzten Tagen über SSH auf dem Server? Gab es fehlgeschlagene Login-Versuche? Diese Fragen kann man mit der Ausgabe dieses Scripts klären.
#!/bin/bash
/bin/grep "sshd" /var/log/auth.log | /usr/bin/mail user@domain.de -s SSH-Logins
Liste aller versendeten Mails
Das folgende Script erstellt eine Liste mit allen versendeten Mails.
#!/bin/bash
/bin/grep "Message delivered." /var/log/mail.log | /usr/bin/mail user@domain.de -s Mail-Log
Hinweis: Bei all diesen Beispielen wird eine E-Mail mit dem Ergebnis versendet. Alle Beispiele sollten in einer Datei gespeichert werden und dann entweder über die Konsole oder per Cronjob ausgeführt werden.
Bild: boing – PHOTOCASE
Nicht nur auf meinem Mail- und Webserver auch auf meinem PC gibt es einige Daten, die ich unter keinen Umständen verlieren möchte. Ich habe mich daher in letzter Zeit nach einer günstigen, sicheren und sinnvollen Backuplösung umgeschaut. Wichtig war mir, dass meine Backups verschlüsselt übertragen werden und wenn möglich auch verschlüsselt gelagert werden. Ich machte mich daher auf die Suche nach einem Webspace mit SSH-Zugang. Da in Deutschland Webspace recht teuer ist, habe ich mich auch nach Angeboten in anderen Ländern umgesehen und bin dabei auf hostmonster.com gestoßen. Dort bekommt man für 5,95 $ im Monat 200 GB Webspace mit 2.000 GB Traffic pro Monat. Ein SSH-Zugang ist ebenso enthalten wie eine kostenlose Domain. Unglaublich! Aber Angebote dieser Art findet man in den USA häufig.
Erfahrung mit Hostmonster
Nachdem ich das Angebot bestellt hatte, konnte ich schon nach 30 Minuten auf meinem Webspace und meine Domain zugreifen. Den SSH-Zugang musste man erst noch freischalten lassen, was nochmal ungefähr 2 Stunden dauerte. Positiv war ich vom Support via Chat überrascht. Dort wurden meine anfänglichen Fragen schnell und kompetent beantwortet. Seitdem nutze ich meinen Backupspace und hatte bisher keinerlei Aufälle.
Backup übertragen und verschlüsseln
Meine Backups übertrage ich gpg-verschlüsselt per SSH. Das ist meiner Meinung nach eine sinnvolle und sichere Lösung. Mein Script dazu sieht so aus:
#!/bin/bash
DATUM=$(date '+%Y-%m-%d')
tar cvf - /ordner/ | /usr/bin/gpg --symmetric --no-tty --passphrase-file "/ordner/gpg-passphrase" | ssh user@domain.net -p 22 "cat > /home/user/backup-$DATUM.tar.gpg"
Damit werden meine Daten gepackt, verschlüsselt und gleich per SSH auf den Webspace übertragen.
Bisher bin ich mit dieser Lösung 100%ig zufrieden und kann sie nur weiterempfehlen.
Wer über SSH auf einem anderen Rechner arbeitet kennt das Problem, dass die Verbindung z.B. von Routern nach einer bestimmten Zeit geschlossen werden. Abhilfe schafft hier die Option “ServerAliveInterval”.
In der Datei .ssh/config kann für jeden Host ein Intervall in Sekunden angegeben, in dem der Client Signale an den Server sendet um die Verbindung aufrecht zu erhalten. Könnte evtl. so aussehen:
Host server
HostName xx.xx.xx.xx
User username
Port 2221
ServerAliveInterval 120