Für die Überwachung / Monitoring unserer Netzwerkinfrastruktur nutzen wir Check_MK. Check_MK unterstützt eine Vielzahl an Diensten und Agenten. Daten können mit dem Check_MK-Agenten, per SNMP oder einfach nur per ping überwacht werden. In der Vergangenheit haben wir unsere Firewall per SNMP überwacht, welches bereits in pfSense integriert ist (SNMP kann unter Services → SNMP aktiviert werden). Damit deckt man bereits den Großteil der Dienste, wie z.B. alle Netzwerkinterfaces, ab. Aber es fehlen auch einige wichtige Infos. Dazu gehören die aktuelle CPU Auslastung oder die Belegung der Festplatte(n). Um an diese Informationen zu kommen, braucht man den Check_MK-Agenten auf der Firewall.
Installation des Check_Mk-Agenten in pfSense
Ich beschreibe hier die Installation per SSH-Verbindung zu Firewall. Alternativ kann man aber auch alle Befehle unter Diagnostics → Command Prompt eingeben.
Der Check_MK-Agent ist ein Bash-Skript. Deshalb muss als erstes bash installiert werden:
pkg install -y bash
Danach noch zwei Verzeichnisse erstellen:
mkdir -p /opt/bin
mkdir -p /opt/etc/xinetd.d
Als nächsten wird der Check_MK-Agent in das eben angelegte Verzeichnis heruntergeladen und ausführbar gemacht:
curl --output /opt/bin/check_mk_agent
'https://git.mathias-kettner.de/git/?p=check_mk.git;a=blob_plain;f=agents/check_mk_agent.freebsd;hb=HEAD'
chmod +x /opt/bin/check_mk_agent
Die Daten des Check_MK-Agenten werden per telnet abgerufen. Deshalb braucht man dazu noch eine Konfigurationsdatei. Dazu kopiert man folgenden Inhalt (am besten über Diagnostics → Edit file in die Datei
/opt/etc/xinetd.d/check_mk
# +------------------------------------------------------------------+ # | ____ _ _ __ __ _ __ | # | / ___| |__ ___ ___| | __ | \/ | |/ / | # | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / | # | | |___| | | | __/ (__| < | | | | . \ | # | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ | # | | # | Copyright Mathias Kettner 2014 mk@mathias-kettner.de | # +------------------------------------------------------------------+ # # This file is part of Check_MK. # The official homepage is at http://mathias-kettner.de/check_mk. # # check_mk is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation in version 2. check_mk is distributed # in the hope that it will be useful, but WITHOUT ANY WARRANTY; with- # out even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. See the GNU General Public License for more de- # ails. You should have received a copy of the GNU General Public # License along with GNU Make; see the file COPYING. If not, write # to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, # Boston, MA 02110-1301 USA. service check_mk { type = UNLISTED port = 6556 socket_type = stream protocol = tcp wait = no user = root server = /opt/bin/check_mk_agent # If you use fully redundant monitoring and poll the client # from more then one monitoring servers in parallel you might # want to use the agent cache wrapper:<br /> #server = /usr/bin/check_mk_caching_agent # configure the IP address(es) of your Nagios server here: #only_from = 127.0.0.1 10.0.20.1 10.0.20.2 # Don't be too verbose. Don't log every check. This might be # commented out for debugging. If this option is commented out # the default options will be used for this service. log_on_success = disable = no }
Nun müssen noch einige Filtereinstellungen vorgenommen werden. Das folgende Skript nimmt die notwendigen Änderungen in der Datei
/etc/inc/filter.inc
automatisch vor. Dazu wird (wieder über Diagnostics → Edit file) die Datei /opt/filter_check_mk_cron angelegt.
#!/bin/sh grep includedir /etc/inc/filter.inc if [ $? -eq 0 ] then exit 0 else awk '/fclose\(\$xinetd_fd\)\;/{print "fwrite($xinetd_fd, \"includedir /opt/etc/xinetd.d\");"}1' /etc/inc/filter.inc > /etc/inc/filter.inc.temp mv /etc/inc/filter.inc.temp /etc/inc/filter.inc fi exit 0
Auch dieses Skript muss wieder ausführbar gemacht und letztendlich ausgeführt werden:
chmod +x /opt/filter_check_mk_cron
./opt/filter_check_mk_cron
Als letztes noch die Filter neu laden (über Status → Filter Reload) und nun kann man prüfen, ob der Check_MK-Agent funktioniert (IP der Firewall entsprechend anpassen):
telnet 192.168.1.1 6556
Wenn alles richtig konfiguriert ist, sollte man die Ausgabe des Check_MK-Agenten sehen.
(Quelle)
pfSense auf Check_MK Server einrichten
Nun muss die Firewall als Host in Check_MK hinzugefügt bzw. den evtl. schon vorhanden Host im WATO editiert werden. Neben der IP, der SNMP Community und dem Hostnamen kann als Agent type Dual Check: Check_MK Agent + SNMP ausgewählt werden. Mit einem Klick auf Save & go to Services können nun die gewünschten Dienste aktiviert werden.
Nun hat man alle wichtigen Infos immer auf einem Blick verfügbar. Hier ein Ausschnitt:
Fazit
Check_MK ist eine sehr flexible tolle Monitoring-Software. Wir nutzen sie schon einige Zeit in unserer Schule und die Anpassungsmöglichkeiten sind schier unendlich, was die Benachrichtigungen und zu überwachende Geräte angeht.
Welche Software habt ihr für das Monitoring im Einsatz?
[…] SNMP / check_mk Integration für unser Monitoring […]
[…] Monitoring → ein gutes Monitoring kann in manchen Fälle Fehler früh erkennen bzw. gibt einen Überblick, wo es im Netzwerk gerade Probleme gibt. So kann man schneller reagieren und ist nicht auf die Hinweise der Benutzer im Netzwerk angewiesen („Das Internet geht nicht mehr“, „Der Drucker ist kaputt“, …) […]