Nagios – Raspberry PI und Debian

Mittlerweile gibt es viele kuriose und wahnwitzige Bereiche wo man den Raspberry PI einsetzen kann. Etwas klassisches was aber trotzdem jeder Admin benötigt ist das Monitoring.
Wenn man so in der Gegend herum googled stößt man immer wieder auf ein Wort: Nagios

Wer oder Was ist Nagios?

Nagios ist eine unter der GNU GPL veröffentlichten Software zum Monitoren großer und kleiner IT-Infrastrukturen.

Nagios ist Modulweise aufgebaut was es sehr flexibel macht. Es können z.B. Zustände von Hosts, Services wie HTTP, FTP und SQL gemonitored werden aber auch ob in der Kaffeemaschine noch ausrechend Wasser und Kaffee vorhanden ist.

Wie man an den Bild relativ schön sehen kann lagert Nagios die Drecksarbeit zum Überprüfen der Zustände an die Plugins aus. Er selbst weiß nicht was er monitored. Es werden die Scripts in den Plugins gestartet und einfach auf den Reteurncode gewartet und angezeigt.

Nagios Aufbau

 Nagios installieren

Bevor wir die eigentliche Installation beginnen führen wir wie immer noch einmal ein Update all unserer Pakete durch.

Nachdem dies alles erledigt starten wie die Installation bequem via apt:

Es wird ein ganzer Rattenschwanz an Abhängigkeiten mitinstalliert und deshalb hat die Installation bei mir schon mehrere Minuten in Anspruch genommen. Lehnt euch zurück und beobachtet die Installation mit einer heißen Tasse Kaffee. Währen des Setups werde ihr um ein Passwort für den User nagiosadmin gefragt.

 Der erste Start

Nachdem die Installation hoffentlich erfolgreich durchgelaufen ist könnt ihr Nagios bereits das erste Mal öffnen:

http://ip-des-servers/nagios3

Dort könnt ihr euch nun mit den Usernamen „nagiosadmin“ und den bei der Installation vergebenen Kennwort einloggen.

 

Raspberry Pi – Keyboard-Layout auf deutsch ändern – Logitech K400r

Ich habe im Raspbian das Problem, dass immer ein englisches Tastaturlayout zu haben.
Selbst ein

konnte mir nicht helfen.

Hintergrund:

Die beliebte Logitech Tastatur K400r hat unter Debian in der Grafischen Oberfläche ein Problem dass diese nicht richtig konfiguriert werden kann. Ich konnte genau dies auch unter Ubuntu nachstellen.

Lösung:

Der einzige funktionierende Befehl am Pi ist,

Nun hab ich als Workaround diesen Befehl in die bash.bashrc hinzugefügt.
Das bewirkt beim starten des Terminals (Root Terminal oder LXTerminal), das auf ein Deutsches Tastaturlayout umgeschalten wird, Systemweit, nicht nur im Terminal 😉

Die Datei findet Ihr unter „/etc/bash.bashrc“,
-Root Terminal öffnen und den Befehl vi /etc/bash.bashrc eingeben
-Nun seid Ihr im Texteditor, stellt euch in eine leere Zeile mit dem Cursor und drückt „i“ für insert (einfügen), ich verwende immer gleich die 2. Zeile
-Dort schreibt Ihr nun den Befehl sudo setxkbmap de rein
-Escape Taste drücken
-auf Tippfehler kontrollieren 🙂
-speichern und schließen geht im VI-Editor mit :wq
-Neustarten und testen ob nach dem Öffnen eines Terminals das Layout auf Deutsch geändert wurde

Update 02.11.2014: Ich hab den Text vereinfacht und genauer erklärt, funktioniert so gut wie immer!

Webmin auf den Raspberry PI

Solltet ihr den Raspberry PI als Server im Einsatz haben ist eine grafische Oberfläche auf dem Raspi unnötig. Um ihn trotzdem bequem über eine GUI managen zu können installiert euch einfach Webmin.
Was ist Webmin?
Ein sehr nutzliches Tool wo ihr den Raspi und alle möglichen Dienste über eine Weboberfläche managen könnt. Infos hierzu findet ihr unter http://www.webmin.com/

Als Vorbereitung mal alle Paketquellen aktualisieren:

am besten gleich noch ein

hinterher. Das upgrade dauerte bei mir mit 117 Paketupdates ca. 3 Stunden.
Sollten sie noch nicht drauf sein installiert euch noch folgende Pakete nach:

Nach ein paar Minuten sollte auch dies erledigt sein.
Als nächstes besorgt ihr euch das Installationsfile mit:

und installiert es mit

Nach weiteren paar Minuten ist auch dies fertig und ihr könnt euch im Browser eurer Wahl auf den Raspi einloggen (Port 10000).

Viel Glück 🙂

Turbo für den Raspberry PI

Bisher galt immer folgendes:
Sollte der RasPi beim Overclocking defekt werden gab es keinen Ersatz.

Seit ein paar Tagen ist es nun offiziel:
Alle RasPi’s die mit Raspbian laufen dürfen ohne Garantieverlust auf 1Ghz hochgetaktet werden.
Diese Einstellungen könnt ihr wie üblich in der config.txt des Images vornehmen oder ganz bequem im Betrieb mittels raspi-config (als Root öffnen).

Sieht dann so aus:
Solltet ihr den Menüpunkt „overclocking“ nicht sehen dann zuerst mal ganz unten auf „update“ gehen.

Transparenter Proxy mit squid und DD-WRT

Ein Proxy ist nicht immer böße wie in der Arbeit wo ein Content-Filter aktiv ist.
Zuhause kann er ganz nützlich sein um z.b auf allen Endgeräte im Heimnetz automatisch die Werbung auzufiltern usw…

Wie ihr einen kleinen Proxy auf den Raspberry PI aufsetzt/konfiguriert haben wir schon im letzten Artikel gelernt.

Um dies möglichst komfortabel zu betreiben bietet die alternative Routerfirmware DD-WRT gute Möglichkeiten eigene iptables Regeln zu setzen um automatisch den gesamten HTTP Trafic zum Proxy zu leiten.

Zuerst müssen wir die squid.config auf den Proxy ein kleinwenig anpassen.
Der Wert http_port erhält den kleinen Zusatz transparent .
Sieht dann in etwa so aus:

Speichern -> squid neustarten -> fertig

Nun zur Konfiguration am Router:
DD-WRT bietet die Möglichkeit Scripts in der WebGUI auszuführen unter dem Menüpunkt „Administration-> Commands“
Diese Textbox befüllen wir mit folgenden Zeilen Code:

Die Wete wie IP und Port natürlich mit euren Daten ersetzen.
Mit einen Klick auf „Save Firewall“ ist die Arbeit schon getan.

Raspberry PI spielt Proxy

Heute widmen wir uns dem Thema „Wie erstelle ich einen Proxy mit den Raspberry PI“
Die Wahl fält in auf den in der Linux Welt recht beliebten Cache-Proxy squid3.

Bei den Besitzern eines Raspberry PI’s muss man glaub ich nicht mehr auf Grundlagen
„Wie verbinde ich mich zum RasPi via SSH“ eingehen, deswegen gehts gleich zur Sache.

Als Basisimage dient uns das „Soft-float Debian wheezy“ welches ihr ganz bequem von http://www.raspberrypi.org/downloads herunterladen könnt.

Zur Vereinfachung der Installation und Konfiguration wechsle ich gleich am Beginn mittels sudo -s dauerhaft zum root User. Wer sich das nicht traut: vor jeden Befehl ein sudo setzen.

Mittels folgenden Befehl wird dir automatisch die richtige Version heruntergeladen und installiert:

Nach ein paar Minuten warten können wir uns schon an die erste Konfiguration wagen.
Wir wechseln nun in das Verzeichnis wo sich die Konfigurationsdateien befinden:

In diesen Ordner finden wie die squid.conf Datei vor. Da ich mich persönlich nicht mit den überfüllten Beispieldateien anfreunden kann starte ich hier mit einer neuen leeren squid.conf .
Zuerst widmen wir und der Basiskonfiguration:

  • http_port
    definiert auf welcher IP/Port der Proxy hören muss.
  • cache_mem
    regelt wie viel der Proxy max. in den RAM cached
  • maximum_object_size
    wie der Name schon sagt: max. Größe cacheder Dateien
  • maximum_object_size_in_memory
    maximalste Größte einer Datei im RAM
  • cache_replacement_policy
    memory_replacement_policy
    Hier wird es komplex: Ich zitiere aus dem Ubuntuusers.de Wiki:

Wenn der Cache voll ist, muss entschieden werden, welche Daten gelöscht werden sollen und welche nicht. Dafür gibt es drei Strategien:

  • LRU behält die zuletzt angefragten Objekte im Cache, unabhängig von Größe und Alter der Objekte (wird als Standard verwendet, wenn man nichts angibt).
  • heap GDSF optimiert die Objekt-Hitrate. Kleine, häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Wahrscheinlichkeit eines Objekt-Hit gesteigert.
  • heap LFUDA optimiert die Byte-Hitrate. Häufig angefragte Objekte werden im Cache gehalten, selten angefragte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefragtes, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten. Damit steigt die Byte-Hitrate auf Kosten der Objekt-Hitrate.

Man kann Strategien auch mischen. Es bietet sich an, für Objekte im Ram heap GDSF zu verwenden und für Objekte im Festplatten-Cache head LFUDA. So wird ein ausgewogener Kompromiss zwischen schnellen Reaktionszeiten und Traffic sparen erreicht:

Als nächstes widmen wir uns in der selben Datei der Anonymisierung der Clients

  • via
    Nach RFC2616 ist es vorgeschrieben das ein Proxy seine Version im Header mitsendet. via off und alles ist gut 🙂
  • forwarded_for
    Der Proxy sendet per default die IP des Clients im HTTP Header mit.
    Mittels forwarded_for off schalten wir dies ab.

Nun zum komplexesten Teil den wir hier nur kurz streifen : ACL

In der ersten Zeile definieren wir das alle Clients die über das Subnet 192.168.1.0/24 kommen ab jetzt im squid als silvercloud behandelt werden.
Als nächstes erlauben wir silvercloud den ganzen HTTP Traffic.
Die einfachste aller Regeln besagt nun das Clients aus 192.168.1.0 uneingeschränkt ins Internet dürfen. Weiter gehen wir hier nicht ein da dies den Artikel sprengen würden.

Die ganze Konfig zum kopieren:

Wagen wir uns an den ersten Start:

Nun auf einen Client den RasPi als PRoxy in den Verbindungseinstellungen des Browsers einrichten und wenn alles gut gegangen ist währe das Thema fürs erste erledigt.

Wer auch noch interessiert ist welche URL’s vom Browser aufgerufen werden findet diese in folgender Datei: einfach mit den Editor eurer Wahl öffnen .

In diesem Sinne viel Spaß mit euren Proxy und beim austesten verschiedenster Konfigurationen.

Gute Lektüre findet ihr unter:

http://wiki.ubuntuusers.de/Squid
http://www.squid-handbuch.de/hb/