Projekt Homeserver im Eigenbau 9: Diverse Programme installieren und konfigurieren

Man könnte sagen, das Grundgerüst des Servers steht. Aber um mit ihm einige sinnvolle Dinge machen zu können, fehlt es noch an diverser Software. So möchte ich z. B. die Sensoren für Temperatur und Lüfterdrehzahl abfragen können, Festplattenstatus und auch deren Temperatur, Hardwarekomponenten auflisten und, was auch sehr wichtig ist, im Problemfall eine Mail gesendet bekommen.

In diesem Beitrag werde ich also diverse Software installieren und konfigurieren. Welche davon ihr benutzen wollt, bleibt hierbei euch überlassen, keines der Pakete ist zwingend notwendig. Aber wenn man sich über den Status des Servers informieren will, sind die Pakete schon sehr nützlich.

Hardware auflisten

Mit dem Paket lshw können alle Hardwarekomponenten des Rechners aufgelistet werden. Es hat sogar die Möglichkeiten, die Ausgabe als HTML oder XML vorzunehmen. Für mich ist das Programm später noch wichtig, wenn es ums RAID geht. Denn hiermit kann ich auch identifizieren, wo welche Platte angeschlossen ist. Das ist wichtig, wenn man eine defekte Platte austauschen muss. Installiert wird es mit:

sudo apt-get install lshw

Aufgerufen wird es ebenfalls mit lshw. Wenn es beim RAID interessant wird, gehe ich hierauf noch ausführlicher ein.

Partitionstool Parted

Ich persönlich mag fdisk nicht wirklich. Zwar wird es später noch gebraucht, aber das eigentliche Partitionieren mache ich lieber mit Parted. Das liegt auch daran, dass es sich um die Ausrichtung der Partition an physischen Sektorgrenzen automatisch kümmern kann. Bei fdisk muss ich selbst angeben, bei welchem Sektor eine Partition anfängt und endet. Installiert wird es mit:

sudo apt-get install parted

Benachrichtigungen per Mail

Wenn ein Problem auftritt, dann soll mich der Server per Mail darüber informieren. So von sich aus geht das noch nicht. Es müssen noch Programme installiert werden, die eine Mail verschicken können. Da ich meinen Server nicht als eigentlichen Mailserver betreiben möchte, brauche ich also diese komplexen MTAs, wie Postfix oder dergleichen nicht. Ich installiere das kleine Programm SSMTP, welches über meinen eigentlichen Mailprovider, zum Beispiel GMX oder Google Mail, eine Mail verschickt. Sollte ich später mal den Server doch noch als Mailserver nutzen wollen, kann man das alles ja auch umkonfigurieren. Aber für jetzt, der Einfachheit halber, bleibe ich mal bei SSMTP.

Zunächst mal muss ssmtp installiert werden.

sudo apt-get install ssmtp

Nun muss es aber noch konfiguriert werden, und dazu müssen 2 Konfigurationsdateien angepasst werden.

sudo nano /etc/ssmtp/ssmtp.conf

Hier tragen wir bei den folgenden Feldern die Daten für meinen GMX-Account ein. Darüber sollen die Mails dann verschickt werden:

  • root=: Hier steht „postmaster“, aber hier tragen wir unsere GMX-Adresse ein. Die Zeile lautet dann „root=meine.adresse@gmx.de“. Natürlich steht dann da eure Mailadresse. 🙂
  • mailhub=: Hier kommt der SMTP-Server plus Port von GMX rein. Die Zeile sähe dann so aus: „mailhub=mail.gmx.net:465“.
  • Die Zeile „rewriteDomain“ ist auskommentiert. Entfernt das Nummernzeichen und schreibt gmx.net hinter das Gleichheitszeichen. Die Zeile sähe dann so aus: „rewriteDomain=gmx.net“.
  • hostname=: Hier wird auch gmx.net eingetragen. Die Zeile sieht dann so aus: „hostname=gmx.net“.
  • Die Zeile „FromLineOverride“ ist auch auskommentiert, nehmt das Nummernzeichen hier wieder raus und ändert den Wert „Yes“ zu „No“.

Und am Ende fügt ihr noch folgende Zeilen ein:

UseTLS=YES
AuthUser=eure_mailadresse@gmx.de
AuthPass=euer_gmx.de_passwort

Passt bei den beiden letzten Zeilen Benutzername und Passwort für euren GMX-Account an.

So weit für diese Datei, mit STRG+X speichern wir das jetzt.

Nun muss noch festgelegt werden, welche Benutzer alles diese Mailadresse zum Senden nutzen dürfen. Hierfür öffnen wir die Datei mit:

sudo nano /etc/ssmtp/revaliases

Und hier tragen wir folgendes am Ende ein:

root:eure_mailadresse@gmx.de:mail.gmx.net:465
www-data:eure_mailadresse@gmx.de:mail.gmx.net:465
kamil:eure_mailadresse@gmx.de:mail.gmx.net:465

Natürlich müsst ihr entsprechend eure eigenen Daten eintragen. Auch diese Datei speichern wir wieder mit STRG+X.

Dann könnte man das übrigens testen, aber irgendwas habe ich falsch gemacht. Mit dem Befehl „sudo ssmtp -v “ habe ich mir eine Mail schicken wollen. Es ging ein Fenster auf, in dem ich allerhand Zeugs reingeschrieben habe, und irgendwie muss ich das wohl auch abgeschickt haben. Jedenfalls landete mein Experiment in meinem Spam-Ordner. Egal, senden geht, auch wenn der Versuch irgendwie merkwürdig aussah. 🙂

Übrigens habe ich die Informationen von der Linux und Ich Webseite, wo ihr auch Beispiele für Google Mail findet.

Hardware-Sensoren abfragen

Um Informationen über Temperatur, Stromspannung und Lüfter zu erhalten, brauchen wir das Tool lm-sensors.

sudo apt-get install lm-sensors

Damit alleine geht aber noch nichts. Es muss noch nach Sensoren gesucht werden. Hierfür braucht man den Befehl:

sudo sensors-detect

Nun werden euch eine Menge Fragen gestellt, wobei ihr einfach mit Enter die Standard-Antworten akzeptieren könnt. Erst am Schluss kommt der Hinweis, „Just press Enter“. Anschließend kommt eine Anzeige und am Ende die Frage: „Do you want to automatically write these lines in /etc/modules?“. Diese Frage beantwortet ihr mit „yes“.

Nun könnt ihr mit dem Befehl „sensors“ die Daten eures Mainboards abrufen. Es könnte sein, dass ihr erst vollständige Angaben bekommt, nachdem ihr den Rechner neu gestartet habt.

Temperatur der Festplatten abfragen

Auch die Festplatten dürfen nicht zu heiß werden. Und damit ich sehen kann, ob noch evtl. Lüfter nötig sind, muss ich wissen, wie warm die Platten werden. Dafür hilft mir das kleine Tool hddtemp.

sudo apt-get install hddtemp

Nun kann ich mit dem Befehl hddtemp die Festplattentemperatur ansehen:

sudo hddtemp /dev/sda

Das Tool zeigt mir nun an, welche Platte an /dev/sda angeschlossen ist und dessen Temperatur.

Einstellungen für Festplatten mit hdparm

Mit diesem Programm können diverse Einstellungen für Festplatten festgelegt werden. Zum Beispiel kann man hier festlegen, wann eine Platte in den Standby geht. Um hdparm nutzen zu können, muss es erst installiert werden:

sudo apt-get install hdparm

Nun muss für die Festplatten noch die Konfigurationsdatei angepasst werden:

sudo nano /etc/hdparm.conf

Für die SSD unter /dev/sda werden wir keine Änderungen vornehmen, aber für die Platten für das RAID ab /dev/sdb werden wir einige Einstellungen machen. Also beginnt die Zeile mit dem Gerätenamen und den Optionen in geschweiften Klammern. Der Gerätename kann auch mehrere Geräte umfassen, zum Beispiel /dev/sd[bcd]. Hier würden die Einstellungen für /dev/sdb, /dev/sdc und /dev/sdd gelten.

/dev/sdb {
    spindown_time = 240
    write_cache = on
    }

Dieser Block konfiguriert die Festplatte /dev/sdb so, dass sie nach 20 Minuten Inaktivität in den Standby geht und der Festplatten Schreibcache aktiv ist. Wenn ihr später eine zweite Platte hinzufügt, braucht ihr keinen neuen Block, sondern könnt die Zeile /dev/sdb so anpassen: /dev/sd[bc] usw.

Bei spindown_time steht 240. Eigentlich wollte ich 30 Minuten eingestellt haben. Aber der Wert, den ich ergoogled hatte, funktionierte irgendwie nicht. Nach 45 Minuten war die Platte immer noch aktiv. Der Wert für 20 Minuten, 240, funktioniert hingegen.

Festplatten S.M.A.R.T.

Hier kann man die S.M.A.R.T.-Daten der Festplatte prüfen lassen und einen Test in regelmäßigen Abständen ausführen lassen. Zwar ist das nicht 100 prozentig garantiert, dass ein Fehler sich auch wirklich durch S.M.A.R.T. ankündigt, aber wenn eine Festplatte anfängt, Probleme zu machen, hätte man hier evtl. die Chance, das recht frühzeitig zu erkennen. Die S.M.A.R.T.-Überwachung ist bereits installiert und muss eigentlich nur noch konfiguriert werden:

sudo nano /etc/default/smartmontools

Hier gibt es eine Zeile, die auskommentiert ist, und dessen Nummernzeichen entfernt werden muss.

#start_smartd=yes

Dann startet S.M.A.R.T. auch mit dem Systemstart.

sudo nano /etc/smartd.conf

Das ist die Konfigurationsdatei für den Hintergrund-Dienst. Relativ weit oben findet ihr eine nicht auskommentierte Zeile, die mit „DEVICESCAN“ beginnt. Kommentiert diese Zeile mit einem Nummernzeichen aus und geht dann ganz nach unten in der Datei. Hier füge ich eine Konfigurationszeile für jede platte, die ich überwacht haben will ein. Eine der Platten für das RAID ist bereits im Server. Für diese Platte würde die Konfigurationszeile so aussehen:

/dev/sdb -a -d sat -n standby,10,q -S on -s (S/../../1/00|L/../01/./12) -m eure_mailadresse@gmx.de

Das testet die /dev/sdb Festplatte jeden Montag um 00:00 Uhr mit dem Schnelltest und jeden ersten Tag im Monat mit dem langen Selbsttest. Und bei Fehlern schickt es eine Mail.

Die Felder dieser Abfrage will ich aber denn doch mal kurz erklären. Als ich das das erste Mal gesehen habe, wusste ich damit überhaupt nichts anzufangen. Das gesamte Feld sieht so aus:

t/MM/TT/W/HH
  • t: Das kleine t am Anfang steht für den Test, der durchgeführt werden soll. Die Werte können L für Long, S für Short oder O für Offline lauten, in Großbuchstaben. Da gibt es glaube ich noch mehr Werte, aber die waren für mich uninteressant.
  • MM: Monat des Jahres, von 01 bis 12, immer in 2 Ziffern angegeben.
  • TT: Tag des Monats, von 01 bis 31, immer in 2 Ziffern angegeben.
  • W: Wochentag, 1, Montag, bis 7, Sonntag, immer in einer Ziffer angegeben.
  • HH: Stunden, immer in 2 Ziffern angegeben von 00 bis 23.

Will man 2 Argumente übergeben, wie z. B. einen kurzen Test jede Woche um 00:00 Uhr und einen langen Test jeden Monat um 12:00 Uhr, so packt man das alles in Klammern und trennt jedes Argument mit einem senkrechten Strich. Am PC erzeugt man das mit AltGR+Kleinerzeichen. Wie in meinem Beispiel angegeben, würde das Argument dann so aussehen:

-s (S/../../1/00|L/../01/./12)

Blöd ist halt nur, dass ihr diese Zeile für jede Platte einzeln eintragen müsst. So müsst ihr die Zeile für /dev/sdc wieder eintragen, wenn ihr eine 2. Platte für das RAID hinzufügt.

Für Details der Konfigurationsoptionen könnt ihr euch die Manpage zu SMARTD.conf ansehen.

Übrigens könnt ihr im Wiki Ubuntuusers.de mehr zu S.M.A.R.T. lesen.

Was kommt nun?

Fertig sind wir noch lange nicht, aber für’s erste wäre alles wichtige installiert und konfiguriert. Im nächsten Artikel will ich noch Samba konfigurieren, das ist der Dateiserver, so dass wir mit CIFS-Freigaben von Windows und anderen Programmen drauf zugreifen können.