Close

Observium auf dem Raspberry Pi 1/2/3

Mit dem Raspberry Pi sind viele Dinge möglich, zum Beispiel auch Netzwerküberwachung mit Nagios, Cacti oder MRTG. Aber auch Observium funktioniert einwandfrei mit einem Raspberry Pi. Bei kleineren Netzwerken (Heimnetzwerk)) läuft Observium auch relativ flüssig auf einem Raspberry Pi 1 Modell B+. Für mittlere bis große Netze empfiehlt sich aber der Einsatz eines Raspberry Pi 2 oder 3 in der größten Variante.

Ausgangsbasis ist eine Raspbian Installation und SSH Zugang. Die Einrichtung läuft zu 100% über die Konsole, nach der Installation von Raspbian braucht man also keinerlei Monitor und HDMI Kabel mehr. Im weiteren Verlauf werden wir auch den Observium Agent einrichten und auf allen dafür geeigneten Systemen (*nix/Linux) zum laufen bringen.

Fangen wir mit der grundlegenden Installation aller benötigten Pakete an, hierzu verbindet Ihr euch mit eurem Raspberry Pi per SSH und gebt folgende Zeilen ein:

Das ist die Grundinstallation und sollte euch alle benötigten Pakete installieren und vorkonfigurieren. Bei der MySQL Installation werdet ihr nach einem Passwort gefragt, das Ihr frei vergeben und Euch merken dürft.

Anschließend legen wir die erforderlichen Verzeichnisse an und laden die aktuelle Observium CE herunter und entpacken sie nach /opt, es wird automatisch in das richtige Unterverzeichnis entpackt.

Nun legen wir eine Standardkonfiguration an indem wir im Verzeichnis von Observium die Beispiel Konfiguration kopieren.

Editiert die config.php mit einem Editor eurer Wahl (Ich bevorzuge nano.) und tragt die Standard MySQL Daten für Benutzer und Passwort (Das was ihr vorher vergeben habt.) ein. Alternativ wer sich gut genug mit MySQL auskennt und Bedenken hat dem MySQL Root User zu verwenden, legt im nächsten Schritt noch zusätzlich einen Benutzer und Passwort für Observium fest und verteilt die benötigten Rechte.

Tragt noch folgende Zeile in die config.php mit ein:

Darauf wechseln wir nun zu MySQL und legen die Datenbank an:

Optionaler Schritt: Benutzername und Passwort für die Observium Datenbank anlegen und Rechte geben.

Nun sind wir wieder im /opt/observium Verzeichnis und können die Datenbank mit den Basisdaten befüllen.

Jetzt legen wir noch die benötigten Verzeichnisse für die Logs und die RRD Daten an und setzen die Ordnerrechte.

Jetzt müssen noch in Apache einen Host anlegen, wir gehen hier von Port 80 aus, aber Ihr könnt auch jeden anderen Port benutzen. Hierzu editiert ihr die Datei /etc/apache2/sites-available/000-default.conf. Kommentiert oder löscht die vorhandenen Einträge aus und fügt folgenden Inhalt ein.

Nun noch testen ob folgende Einstellungen für PHP und Apache2 schon durchgeführt wurden (In meinem Fall waren sie es, aber sicher ist sicher.).

Jetzt legen wir unseren ersten Benutzer mit Level 10 (Administrator) an, geht sicher das ihr immer noch in /opt/observium seid.

Anschließend brauchen wir noch einen Cronjob, damit der Pooler auch die Daten regelmäßig abfragt. Hierzu legen wir die Datei /etc/cron.d/observium an. Die Zahl 2 in der letzten Zeile gibt die Anzahl der Pooler Threads an, hier kann man bei Bedarf (Nicht auf einem Raspberry Pi 1, dafür ist das System zu schwach.) auch 4 Threads daraus machen. 2 Threads sind aber in kleineren bis mittleren Netzwerken ausreichend.

Kommen wir nun bevor wir Anfangen Geräte hinzuzufügen erst einmal zum installieren und einrichten des UNIX Agents und einiger brauchbaren Scripte, die mit Observium mitgeliefert werden. Außerdem passen wir SNMPD an, das wir  per SNMP v3 verbinden können (SNMP v1 oder v2 würde zwar reichen, aber ich bevorzuge v3.).

Hierzu brauchen wir aber ein paar grundlegende Vorbedingungen auf allen Hosts, die gemonitort werden sollen, und die über ein *nix/Linux OS verfügen. Wir reden hier von einfachen Servern und Workstations. Extras wie ein NAS oder Switches werden später nochmal erwähnt, hier wird meistens keine Sonderbehandlung nötig.

Wenn ihr außerdem noch andere Raspberry Pis mit Mediacenter monitoren wollt, müsst ihr leider auf OpenElec verzichten, da es hier aktuell keine Möglichkeit gibt einfach benötigte Pakete nach zu installieren, als Alternative bietet sich hier aber OSMC an, bei dem man alles nachinstallieren kann und auch den UNIX Agent zum laufen bringt. Sonderfälle wie RetroPie oder auch RecalBox habe ich noch nicht ausprobiert, werde ich aber eventuell noch machen. Raspberrys mit normalen Distros sollten kein Thema sein.

Weiter geht es, erst mal die Vorbedingungen installieren auf den zu monitorenden Systemen.

Öffnet die /etc/snmp/snmp.conf  auf dem Raspberry Pi (Und jedem *nix/Linux Host den Ihr später monitoren wollt.) und kommentiert folgende Zeile mit # aus.

Nun widmen wir uns der /etc/snmp/snmpd.conf und machen einige Änderungen. Erstmal im ersten Teil der snmpd.conf folgende Änderungen vornehmen.

Danach legen wir einen User an namens “public” und einem Kennwort eurer Wahl, das mindestens 10 Zeichen lang sein sollte. Dazu legen wir fest, das dieser User ein Read-Only User ist, wer sich nicht scheut, kann anstelle von rouser auch rwuser nehmen falls er später den Raspberry auch für SNMP Verwaltungsaufgaben nutzen möchte.

Nun sucht ihr folgenden Bereich und editiert ihn, wie Ihr ihn braucht. Wer sich die man-Pages ansieht, kann auch hier weitere Felder hinzufügen. Zeile 8 und 9 sind Beispiele was noch geht und so nicht in der snmpd.conf drin steht.

Danach starten wir den snmpd Service neu.

Nun kommen wir zum UNIX Agent von Observium, der relativ einfach einzurichten ist. Das ganze machen wir wieder auf dem Raspberry Pi, auf dem Observium läuft, zumindest die Kopiererei des Agents und der Xinetd Konfiguration, sowie die zu kopierenden Module.

Fangen wir an und kopieren erst mal den Agent und die Konfiguration vom Server auf die Hosts.

Auf dem Server könnt ihr die Dateien ebenfalls kopieren, lasst einfach user@your_server: weg und anstatt scp nutzt Ihr cp. Danach setzt ihr noch den Agent auf Ausführbar mit:

Nun legen wir noch zwei wichtige Verzeichnisse für den Agent an, in dem auch später die Scripte kopiert werden. Dieses müsst ihr auf allen Hosts machen, die den Agent nutzen sollen.

Anschliessend bearbeitet ihr auf allen Hosts, auf die Ihr die observium_agent_xinetd kopiert hab eben diese Datei und kommentiert die Zeile only_from aus. Damit erlaubt ihr allen Observium Installationen im Netzwerk Zugriff auf den Agent. Wer hier wieder Bedenken hat, kann auch folgende Eintragung machen für die Hosts.

Auf dem Observium Server müsst ihr die Datei nicht ändern, hier steht schon die richtige IP, also Localhost bzw. 127.0.0.1 drin. Danach startet ihr den xinetd Service neu.

Nun können wir anfangen die Scripte zu kopieren, die wir haben wollen. Schaut euch im /opt/observium/scripts/agent_local Verzeichnis um, welche Scripte es gibt für den Agent und welche Ihr haben wollt. Teilweise brauchen die Scripte auch Anpassungen wie das Script temperature oder kleine Besonderheiten wie das hddtemp Script (Bei mir führte es zu Problemen auf den Hosts, weswegen ich zur Zeit auf HDDtemp verzichte.). Beim MySQL Script müsst ihr auf jeden Fall auch die mysql.cnf mit kopieren.

Kopiert einfach die Scripte in den /local Ordner, den Ihr vorher angelegt habt, zum Beispiel wie folgt.

Vergesst nicht den die Scripte wieder mit chmod +x ausführbar zu machen, sonst funktionieren sie nicht.

Nun könnt Ihr auf den Observium Server verbinden und meldet euch mit Benutzername und Kennwort, die Ihr vorher festgelegt habt an. Dann geht ihr auf Devices und Add Device. Dort gebt ihr den Hostnamen an, stellt auf Protocollversion v3 ein und stellt dann auf der rechten Seite den Benutzernamen und das Kennwort ein.

Auswahl_005In diesem Beispielscreenshot habe ich die Beispieldaten eingetragen, damit Ihr seht welche Einstellungen Anhand unserer vorgenommenen Einstellungen in der snmpd.conf gemacht werden müssen. Nach dem Hinzufügen dauert es noch ca. 5-10 Minuten, bis der Host vollständig erfasst und gepollt wurde.

 

Bedenkt, das nur Hosts mit Hostnamen hinzugefügt werden können, Observium kann nicht mit IP Adressen umgehen. Aber auch hierfür gibt es eine Einfache Lösung, in Form der hosts Datei des Betriebssystems. Solltet ihr ein Gerät haben, das keinen Hostnamen hat, sondern nur eine IP, editiert ihr die /etc/hosts und fügt euren Host hinzu, zum Beispiel:

Nun könnt ihr den Host anhand des von euch vergebenen Hostnamens in der hosts Datei hinzufügen. Geräte, auf denen Ihr nicht wisst, welche SNMP Version zu nutzen ist, solltet ihr immer erst mit v2c probieren, wenn es gar nicht anders geht mit v1. Wenn ein Gerät sich überhaupt nicht hinzufügen lässt, da kein SNMP vorhanden, dann geht es leider nicht.

Kommen wir noch zum Thema NAS, Drucker und Switches (Managed, Smart Managed), diese werden meistens von Observium direkt erkannt und stellen eine Vielzahl von Informationen zur Verfügung. Ich habe hier noch 3 Screenshots meiner Synology DS1812+ angehängt. Diese hab ich einfach mit v1 hinzugefügt und musste auf der Synology nur noch SNMP aktivieren, schon waren alle Werte und Graphen da.

Auswahl_002Auswahl_003Auswahl_004

Somit habt ihr nun einen Observium Server im Netzwerk, der euch hoffentlich hilft und viele nützliche Infos bringt.

Technikfreak seit den frühen 90ern, ein Ruhrpottjung auf Abwegen im Schwarzwald. Generation Nintendo lässt stark grüßen, auch mit Mitte 30 noch immer frisch im Kopf und bei allen Schandtaten dabei.

Related Posts

Schreibe einen Kommentar