Erfolgreiches Monitoring…

…hilft Probleme zu erkennen und zu beheben bevor sie zum Ausfall des Servers führen.

Durch MRTG konnte ich sehen wie die Anzahl der aufgebauten TCP Verbindungen auf unserem Server stetig zunahm. Also mal das System gecheckt und siehe da einige SMTP-Instanzen von Spamdyke sind hängen geblieben. Diese habe ich abgeschossen und nun ist auch gleich wieder etwas mehr RAM verfügbar – dank Monitoring!

Module für WD MyBook Live kompilieren

Endlich funktionieren bei mir die Module für die Mybook Live. Orientiert habe ich mich dabei an den Anleitungen zu den Entwicklungs-Tools und zum Kompilieren der Module. Leider funktionierte das nicht so richtig und ich bekam immer den Fehler Invalid module format. Also wie funktioniert es? Weiterlesen

Zertifikate mit Plesk und CAcert für mehrere VHosts

Normalerweise werden Zertifikate für Domains auf der Basis von IP Adressen ausgegeben. Das heißt bei einer IP kann ich nur eine einzelne Domain bedienen. Im CAcert-Wiki gibt es jedoch einige Hinweise wie sich dieses Problem für mehrere VHosts umgehen lässt. Ich habe Methode 1) gewählt und erfolgreich getestet. So geht’s:

Angenommen wir haben zwei Domains und wollen für diese Zertifikate erstellen. Als Beispiel nehme ich domain1.de, www.domain1.de, webmail.domain2.de und www.domain2.de. Zuerst müssen beide Domains bei CAcert registriert und bestätigt werden. Als nächsten Schritt muss die Zertifikatanforderung erstellt werden.

Dazu die openssl.cnf editieren (hier Ubuntu linux):
nano /etc/ssl/openssl.cnf

[ req ] muss req_extensions = v3_req beinhalten.

Unter [ v3_req ] muss eingefügt werden:
subjectAltName = DNS:www.domain1.de, DNS:webmail.domain2.de, DNS:www.domain2.de

Dann die Datei speichern und wir machen uns an das Erzeugen des privaten 1024-Bit-Schlüssels:
openssl genrsa -out mykey.pem 1024

Jetzt wurde eine Datei mykey.pem angelegt. Jetzt erstellen wir die Anforderung für CAcert:
openssl req -new -key mykey.pem -out myreq.pem

Als CommonName (CN) bitte unbedingt domain1.de angeben. myreq.pem wurde daraufhin erstellt und die alternativen Namen dabei aus der Config übernommen. Hier noch zwei Befehle zum Überprüfen der Eingaben:
openssl req -in myreq.pem -noout -verify -key mykey.pem
openssl req -in myreq.pem -noout -text

myreq.pem muss jetzt an CAcert (new Server Certificate) gesendet werden. Bei Erfolg erhält man das fertige Zertifikat zurück. Jetzt sind alle Teile vorhanden um das Zertifikat in Plesk zu aktivieren. Unter Server/Certificates muss ein neues erstellt werden. Dort den private key (mykey.pem), das erhaltene Zertifikat und das root-Zertifikat in den Textfeldern angeben. Zur Sicherheit kann man in Plesk auch nochmal die „Preferences“ ausfüllen. Hat das soweit funktioniert, einfach das neue Zertifikat auf ‚default‘ setzen und auch bei ‚IP-Adresses‘ das Zertifikat ändern. Viel Erfolg!

Plesk 8.0.1: Table ‚psa.exp_event‘ doesn’t exist

Nach dem Update von Plesk auf einem Strato-Server trat der genannte Fehler des Betreffs auf. Die Webseite des Herstellers gab leider nur eine Fehlerbehebung für die ältere Version 7.5.4 vor, die aber nicht funktionierte.

Funktionieren tut aber dieser Befehl:

# mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa

DROP TABLE IF EXISTS `exp_event`;
CREATE TABLE `exp_event` (
`id` bigint(10) unsigned NOT NULL auto_increment,
`source` enum(‚pa‘,’plesk‘) default NULL,
`event_type` enum(’started‘,’stopped‘,’created‘,’updated‘, ‚deleted‘, ’status_changed‘, ‚terminated‘, ‚flushed‘, ‚installed‘, ‚uninstalled‘, ’siteapp_added‘, ’siteapp_removed‘, ‚expired‘, ‚exceeded‘) NOT NULL default ’started‘,
`event_time` datetime NOT NULL default ‚0000-00-00 00:00:00‘,
`obj_class` enum(‚license‘, ’service‘, ‚ip_address‘, ‚admin_info‘, ’siteapp‘, ’session_preferences‘, ‚client‘, ‚client_limits‘, ‚client_status‘, ‚client_prefs‘, ‚client_perms‘, ‚client_ip_pool‘, ‚client_limit_traffic‘, ‚client_limit_size‘, ‚domain‘, ‚domain_limits‘, ‚domain_user‘, ‚domain_limit_traffic‘, ‚domain_limit_size‘, ‚domain_status‘, ‚phosting‘, ‚fhosting‘, ‚db_server‘, ’subdomain‘, ‚mailname‘, ‚webuser‘, ‚maillist‘, ‚dns_zone‘, ‚mailname_antivirus‘, ‚mailname_spamfilter‘, ‚mailname_mailgroup‘, ‚mailname_autoresponder‘, ‚mailname_attachment‘, ‚dashboard_preset‘, ‚dashboard_preset_type‘, ‚dashboard_preset_name‘) NOT NULL default ‚license‘,
`obj_id` varchar(255) character set utf8 NOT NULL default “,
`host` varchar(255) character set utf8 NOT NULL default “,
`user` varchar(255) character set ascii NOT NULL default “,
`flushed` enum(‚true‘,’false‘) NOT NULL default ‚false‘,
PRIMARY KEY (`id`)
);

Danach gingen auch alle Funktionen von Plesk wieder problemlos. Ist aber trotzdem ärgerlich den Fehler erst über den SWsoft Service zu erfahren.

Jetzt weiß ich wenigstens auch wo mein Passwort im Klartext steht.

Bilder verkleinern mit Imagemagick

Falls Imagemagick noch nicht installiert ist, mit

sudo agt-get install imagemagick

installieren. Nun hat man mit convert ein mächtiges Komanndozeilentool zu Verfügung um Bilder zu konvertieren.

Oft will man schnell Bilder auf eine bestimmt Größe bringen. Um alle Bilder in einem Ordner zu verkleinern reichen folgende Befehle aus

mkdir small

for i in *.jpg ; do convert $i -resize 250×188 small/$i ; done

Hier muss bei *.jpg die entsprechende Dateiendung angegeben werden. Statt der absoluten Größe kann bei -resize auch eine Prozentangabe angegeben werden.

Kleiner Hinweis: Falls die kleine Schleife nicht funktioniert, sollte man mittels bash in die mächtigere Bourne-Again-Shell wechseln.

howto: Subversion mit Debian und Eclipse

Für mein aktuelles Ruby on Rails Projekt wurde Subversion (SVN) benötigt. Mit dem RadRails Plugin für Eclipse kann man wunderbar arbeiten. Leider bringt Eclipse nur CVS zur Versionskontrolle mit und man benötigt das Subclipse Plugin um auch SVN zu nutzen.

Doch zuerst zum Server, der in meinem Fall unter Debian Linux läuft.

apt-get install subversion

Und schon ist Subversion installiert. Noch fehlt aber ein Serverprozess. Man sollte nicht alles als root laufen lassen und deshalb habe ich vorher einen rails Benutzer angelegt:

adduser rails

Da ich mit diesem auch entwickle, hat sich das angeboten. Selbstverständlich kann man auch einen eigenen SVN Nutzer anlegen. Ist man als dieser angemeldet, erstellt man sich ein Repository bzw. Projektarchiv:

svnadmin create /home/rails/meinPfad

Eventuell muss man das Verzeichnis vorher anlegen. Im dortigen conf-Verzeichnis die svnserve.conf anpassen:

[general]
#anon-access = read
#anon-access = write
# Kein Zugriff für anonyme Nutzer:
anon-access = none
auth-access = write

password-db = passdb
realm = rails

Jetzt muss noch eine passdb-Datei im gleichen Verzeichnis erstellt werden:

[users]
rails = meinPasswort

Dann kann der Server als Daemon gestartet werden:

nohup svnserve -r /home/rails/ -d –listen-port 3690

Nohup sorgt dafür, dass das Programm im Hintergrund läuft. Auf der Konsole sollte man zuerst Testen ob der Server auch wie gewollt funktioniert:

svn list svn://meineIP/meinPfad

Gibt es dort Fehler mit dem Pfad, dann kann man versuchen den Server ohne -r Pfadangabe zu starten und muss hinter der IP den absoluten Pfad angeben.

Läuft der Subversion Server, so können wir uns an die Konfiguration von Eclipse machen.

Für Eclipse 3.2 muss man nur den Subclipse Update Server angeben und dann das Paket auswählen. Help > Software Updates > Find and Install > Search for new… > New Remote Site

http://subclipse.tigris.org/update_1.2.x

Ist die IDE neu gestartet, kann Subclipse verwendet werden. Öffnet man die SVN Perspektive, kann man hier neue Archive angeben. Als Repository Location gibt man folgendes ein:

svn://meineIP/meinPfad

Danach sollte eine Passwortabfrage kommen und es kann losgelegt werden. Viel Erfolg!

Zusätzliche Maustasten aktivieren (Installing Ubuntu 6.06.1 64-Bit – Part IV)

Mäuse mit 5 Maustasten sind inzwischen Standard (Links, Rechts, mittlere Maustaste + Scrollrad, linke und rechte Daumentaste – Achtung: Das Scrollrad wird wie zwei separate Tasten behandelt, so dass man insgesamt auf 7 Tasten kommt).

Um sie auch unter Linux zu benutzen sind folgende Einstellungen hilfreich. Eine ausführliche Anleitung findet sich auch unter http://wiki.ubuntuusers.de/Extratasten.

Der X-Server wird durch folgende Änderung in der /etc/X11/xorg.conf für weitere Maustasten vorbereitet:

Section „InputDevice“
Identifier „Configured Mouse“
Driver „mouse“
Option „CorePointer“
Option „Device“ „/dev/input/mice“
Option „Protocol“ „ExplorerPS/2“
Option „Buttons“ „7“
Option „ZAxisMapping“ „4 5“
EndSection

imwheel wird mit folgender Anweisung installiert:

sudo apt-get install imwheel

Dann sucht man ein bisschen in der /etc/X11/imwheel/imwheelrc und fügt folgende Zeilen ein:

„.*“
None,Thumb1,Alt_L|Left
None,Thumb2,Alt_L|Right

Zum Schluss noch den X-Server neustarten und die Maustasten sollten funktionieren.

XGL / Compiz (Installing Ubuntu 6.06.1 – Part III)

[Dieser Teil wird noch überarbeitet, da ich momentan die XGL/Compiz Konfiguration überarbeite. Christian 21.08.2006]

So, jetzt wird der XGL-Server installiert und konfiguriert. Dabei wird Compiz gleich mitinstalliert.

Eine gute Anleitung ist unter http://wiki.ubuntuusers.de/Xgl zu finden.Leider sind die Quellen dort nicht auf dem neuesten Stand. Ich nehme zusätzlich in die /etc/apt/sources.list auf:

deb http://ubuntu.moshen.de/ dapper eyecandy

Das anschließende

sudo wget http://ubuntu.moshen.de/2F306651.gpg -O- | sudo apt-key add –

fügt den GPG-Schlüssel der trusted-keys-Datenbank von APT hinzu.

Es werden folgende Pakete installiert:xserver-xgl libglitz1 libxcomposite1 .. [wird noch aktualisiert]

Nun wird die Xgl-Sitzung eingerichtet. Mittels

sudo vim /usr/bin/startxgl.sh

wird ein Startscript im Order /usr/bin/ erstellt. Hier wird folgender Inhalt eingefügt:

#!/bin/sh
Xgl :1 -nolisten tcp -fullscreen -ac -accel xv:fbo -accel glx:pbuffer &
DISPLAY=:1
exec gnome-session

Diese Angaben sind für NVidia-Karten und Gnome. Die anderen Einstellungsmöglichkeiten finden sich auf der oben genannten Seite.

Anschließend wird das Skript ausführbar gemacht:

sudo chmod +x /usr/bin/startxgl.sh

Um den Xgl-Server als Sitzung im Anmeldebildschirm auswählen zu können wird nun folgende Datei angelegt:

sudo vim /usr/share/xsessions/xgl.desktop

Die anschließenden Zeile werden in die Datei kopiert:

[Desktop Entry]
Encoding=UTF-8
Name=Xgl
Comment=Start an Xgl Session
Exec=/usr/bin/startxgl.sh
Icon= Type=Application

Installation von Compiz

sudo vim /usr/bin/startcompiz

#!/bin/bash
if ps -A | grep -e „Xgl“ > /dev/null; then
killall gnome-window-decorator
wait

cgwd &
compiz –replace gconf &
fi

Dieses Script muss ausführbar gemacht werden:

sudo chmod +x /usr/bin/startcompiz

Dem Autostart hinzufügen

Falls die deutsche Tastaturbelegung fehlt, kann sie mit dem Befehl

xmodmap /usr/share/xmodmap/xmodmap.de

wieder eingestellt werden. Um die Einstellung dauerhaft zu behalten wird sie in den Autostart hinzugefügt:

sudo gedit /etc/xdg/autostart/Xmodmap_de.desktop

[Desktop Entry]
Encoding=UTF-8
Name=Musterprogramm
Exec=xmodmap /usr/share/xmodmap/xmodmap.de
Terminal=false

System is running (Installing Ubuntu 6.06.1 64-bit – Part II)

So, das System läuft!

Als erstes habe ich den Bootmanager GRUB (/boot/grub/menu.list) angepasst, so dass Windows wieder automatisch bootet. Dafür habe ich den automatisch generierten Eintrag ganz unten nach oben vor den Block der automatisch angepassten Bootoptionen gepackt. Damit wird Windows wirklich immer als erstes gestartet. Wenn es unten bleibt, müsste man die Nummer des Autostarts (momentan „0“) immer wieder anpassen, wenn ein neuer Kernel eingespielt wird.

Dann habe ich die sources.list (etc/apt/sources.list) angepasst und alle Optionen ausgewählt. Nach

sudo apt-get update
sudo apt-get upgrade

hat er wegen der ganz aktuellen CD nur ein oder zwei Pakete nachgezogen. Dann habe ich den nvidia-Treiber installiert:

apt-get install nvidia-glx.

Und zum Schluss den X-Server neu konfiguriert.