pfSense Services

pfSense Monitoring mit Check_MK

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.

pfSense WATO

Nun hat man alle wichtigen Infos immer auf einem Blick verfügbar. Hier ein Ausschnitt:

pfSense Services

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?

2 Comments:

Leave a Reply:

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert