ntop : Eigene Anwendung zu Port zuordnen

Erstmal was ist ntop eigentlich.
ntop (network top) ist eine quelloffene und freie Software, mit der Netzwerkverkehr mitgeschnitten und analysiert werden kann.
Quelle : https://de.wikipedia.org/wiki/Ntop

Diese Software kann schön genutzt werden um z.B. auf einem Gateway oder einer Firewall zu monitoren wo der Traffic so hin läuft. Es werden schon ein ganzer Pack Plugins mitgeliefert aber eigene Anwendungen werden nicht erkannt. Ich habe hier eine kleine Anwendung geschrieben die über udp Port 5404 Daten versendet. Jetzt möchte ich natürlich das auch in meinem Gateway angezeigt bekommen um zu beurteilen wieviel Traffic darüber läuft. Das kann man relativ einfach realisieren jedoch hat es mir auch etwas Arbeit gekostet diesen einfachen Weg zu finden ;-)

Erstellt eine Datei in der später die Protokolle hinzugefügt werden.
touch /usr/share/ntopng/httpdocs/protocol-app.txt
Jetzt füge ich meine Anwendung hinzu, das diese auch im Webfrontend nicht mehr unter UNKNOWN läuft.
echo "udp:5404 @MyApp" > /usr/share/ntopng/httpdocs/protocol-app.txt 
dann müssen wir noch dafür sorgen das diese Datei auch beim Start von ntopng gelesen wird dazu editieren wir das configfile unter /etc/ntopng mit dem Befehl.
echo "-p /usr/share/ntopng/httpdocs/protocol-app.txt" >> /etc/ntopng/ntopng.conf
Dann starten wir den Server neu mit dem Befehl
service ntopng restart
Wenn dann bei den Protokollen MyApp steht wurde alles richtig gemacht ;-) ntop beispiel

Mehr Infos :
http://www.ntop.org/ndpi/configuring-ndpi-for-custom-protocol-detection/

Raspberry Pi3 & OMD - Open Monitoring Distribution

Servermonitorring wird immer wichtiger je größer die zu überwachende Umgebung wird. Es gibt verschiedene Ansätze um dies zu realisieren. Die Jungs von Check_MK haben eine freie Alternative zu ihrem Produkt (CEE) geschaffen das für kleinere Umgebungen durchaus genügt.
Allerdings ist in der freien Version CRE oder OMD etwas mehr Handarbeit nötig, vor allem bei den Agents.

Da ich einen Raspberry Pi3 verwende habe ich mich für OMD entschieden da es hier schon fertige Packete für armv8 gibt.

Erstmal besorgt man sich ein aktuelles raspbian-lite und schreibt das Image auf eine Micro-SD, ich würde hier mind. 8 GB empfehlen.
Da dieser Schritt zu genüge im Internet erklärt ist gehe ich hier nicht weiter darauf ein.

Sobald das System läuft kann man sich über die IP anmelden. Ich habe dafür einfach auf meinem DHCP Server nachgeschaut.

1.) Anmelden über SSH auf dem RaspBerry Pi3
ssh pi@IP-Adresse
oder, für die Windows Benutzer, über Putty / Kitty. Default Zugangsdaten sind Benutzer : pi Passwort : raspberry

2.) Ändern der Passwörter
Bleibt nicht auf den Defaults das ist ein unnötiges Risiko.

Einmal das user Passwort ändern mit passwd und dann das root Passwort mit sudo passwd

3.) Mit root anmelden
su - root
man könnte auch alle Schritte mit sudo erledigen aber gerade für die Grundkonfiguration geht mir pers. das auf die Nerven

4.) Nachdem man mit root angemeldet ist das System auf den aktuellsten Stand bringen
apt-get update && apt-get -y upgrade


5.) ändern des Computernamen
raspi-config

Hostname Konfiguration raspbianHostname Konfiguration raspbian

6.) Einstellen der Länderspezifischen Sachen & Expand Filesystem

Für Deutschland empfehle ich diese Einstellungen
I1 = de_DE.UTF-8 UTF-8
I2 = Europe/Berlin
I4 = DE Germany

5 Internationalisation Options
Expand Filesystem

7.) System neu starten
Müsste von raspi-config sowieso verlangt werden, sollte dies nicht der Fall
reboot
oder
shutdown -r now


8.) Erneut am System via SSH anmelden (siehe 1. und 3.)

9.) Einbinden des OMD Repository & Cache erneuern

Erstmal installieren wir uns den GPG Key für das Repo
cd ~
wget -q "https://labs.consol.de/repo/stable/RPM-GPG-KEY" -O - | sudo apt-key add -

Jetzt fügen wir das Repository hinzu
echo "deb http://labs.consol.de/repo/stable/debian $(lsb_release -cs) main" > /etc/apt/sources.list.d/labs-consol-stable.list

Dann müssen wir den Packet Cache erneuern
apt-get update


10.) Jetzt können wir omd installieren
Das META Packet installiert die aktuellste Version incl. der Abhängigkeiten
apt-get install omd-labs-edition


11.) Während der Installation muss ein MySQL Passwort für den Benutzer root vergeben werden.

12.) Sicherstellen das das System für OMD vorbereitet ist.
omd setup

13.) eine Seite für die Überwachung in OMD anlegen
omd create demo
wobei demo euer Sitename ist

14.) Konfigurieren der Seite
omd config demo
ich zeige euch meine Konfiguration es gibt aber viele andere Möglichkeiten OMD zu konfigurieren !

CONFIG OMD

solltet ihr meine Konfiguration übernehmen müsst ihr noch eine Datei editieren. Es kann vorkommen das dieser Schritt nach jedem Update gemacht werden muss jedoch hatte ich noch keine Probleme damit.
nano /omd/sites/demo/etc/apache/conf.d/auth.conf
dort kommentiert ihr Auth* und require valid-user aus.
#  AuthName "OMD Monitoring Site demo"
#  AuthType Basic
#  AuthUserFile /omd/sites/demo/etc/htpasswd
#  require valid-user

wenn ihr das nicht macht bekommt ihr immer 2 Anmeldemasken , die 1. ist von Thruk die 2. von Check_MK/OMD

15.) Starten der OMD Seite
omd start demo


16.) Server selbst überwachen - OPTIONAL
Wenn ihr den Server selbst überwachen möchtet müsst ihr euch noch den passenden Agent installieren.
dpkg -i /omd/sites/demo/share/check_mk/agents/check-mk-agent_1.2.6p12-1_all.deb 
auch das überwachen auf neue Updates würde ich gleich mit auf dem lokalen Server nach dieser Anleitung einrichten


Weiterführende Links :
Raspberry - Temperatur in Prompt
SSH Login ohne Passwort
OMD/CHECK_MK Plugin - Quotas überwachen Windows 2008 R2
OMD/CHECK_MK Plugin - Aufgaben überwachen (inzw. incl.)
OMD/CHECK_MK Plugin - Debian auf Updates überwachen
Viele weitere Plugins für OMD/CHECK_MK

Quellen :
https://labs.consol.de/repo/stable/
http://omdistro.org/start
https://www.raspberrypi.org/downloads/raspbian/

Check_MK Plugin | LOCAL Check | Quotas überwachen Windows 2008 R2

Problem : Man möchte Quotas auf einem Windows 2008 R2 Fileserver überwachen.

Lösung : Ich hab hier ein kleines Skript geschrieben das diese Aufgabe als lokalen Check übernimmt. Leider steht unter Windows 2008 R2 nicht das Powershell CMDLet Get-FSRMQuotas zur Verfügung weswegen ich das über dirquota realisiert habe.

Das Skript kann hier heruntergeladen werden :local_check_quota.txt

Nach dem Download das Skript umbenennen nach local_check_quota.vbs und in den Ordner check_mk\local kopieren.

Der Output sieht dann so aus :



Der Intervall kann über die Variable geändert werden.
VarInterval = 4 ' Hour


Die Schwellwerte können direkt im Skript geändert werden.
If Verwendet <= 90 Then 'kleiner 90%
   CHKSTATUS = "0" ' ok !
End If
If Verwendet => 91 And Verwendet <= 95 Then  'zwischen 91% und 95%
   CHKSTATUS = "1" ' warning 
End If
If Verwendet => 96 And Verwendet <= 100 Then  'zwischen 96% und 100%
   CHKSTATUS = "2" ' critical
End If

Check_MK Plugin | LOCAL Check ! | geplante Aufgaben | scheduled Tasks

Problem : Man möchte die geplanten Tasks auf einem Windows System überwachen.

Lösung : Ich habe hier ein kleines Skript geschrieben das als lokaler Check auf einem Windows System funktioniert.

Download des Skriptes : task_watch.zip

Installation ist wie immer recht einfach , die ZIP Datei entpacken und in das check_mk\local Verzeichnis kopieren , dannach einen FULL SCAN in Check_MK ausführen.
Dannach sollte es als local Check auftauchen.

Das Ergebnis sieht dann so aus :

Alles TASK sind richtig durch gelaufen




Es gab Fehler beim TASK


Check_MK Plugin | LOCAL Check ! | Linux Updates

Ich habe hier als Server Überwachung Check_MK am laufen , die Serverüberwachung bringt die Möglichkeit mit Windows Systeme auf Updates zu überprüfen. Diese Funktion habe ich für Linux Systeme vermisst und habe einen local Check für Debian geschrieben der die selbe Aufgabe übernimmt.

eine Datei anlegen mit folgendem Inhalt z.B. debian_updates.sh


#!/bin/bash
LOGPATH=`dirname $(readlink -f ${0})`
LOGFILE=debian_updates.log
LOGFULL=$LOGPATH/logs/$LOGFILE
DEBVER=`cat /etc/debian_version`
TNOW=$(date "+%s");
STATUS=0

function Get_Updates {
         apt-get update > /dev/null 2> /dev/nul
         AVUP=`apt-get dist-upgrade -qq -y -s |  grep -c '^Inst '`
         AVPACK=`apt-get dist-upgrade -qq -y -s |  awk '/^Inst / { print $2 }' | sed ':a;N;$!ba;s/\n/ /g'`
         AVUPA=$(($AVUP + 1));
         AVUP=$(($AVUPA - 1));
         if [ $AVUP != 0 ]; then
              STATUS=1
              STATUSTXT="$AVUP Updates ( Debian Version : $DEBVER )__ $AVPACK"
         else
              STATUS=0
              STATUSTXT="System ist auf dem aktuellsten Stand ( Debian Version : $DEBVER )"
         fi

        echo "$STATUS Debian_Update - $STATUSTXT" > $LOGFULL
        echo "$STATUS Debian_Update - $STATUSTXT"
}


if [ -e $LOGFULL ];
   then
   TDATEI=$(stat -c %Z $LOGFULL);
   ALTER=$(($TNOW - $TDATEI));
   MAXALTER=86400;      # ---- Berechnet sich wie folgt 24*60*60=86400 Sekunden
                if [ $ALTER -gt $MAXALTER ];
                        then
                        Get_Updates
                        else
                        while read line; do
                                echo $line
                        done < $LOGFULL
                        exit;
                fi
   else
        Get_Updates
   fi

exit



die Datei ausführbar machen mit chmod u+x Dateiname und dann in /usr/lib/check_mk_agent/local/ kopieren. Ein Unterverzeichnis mit dem Namen logs anlegen und einen Full Scan auf die Maschine ausführen. Ab dann werden die Updates auch in der Serverüberwachung angezeigt.

z.B. keine Updates



z.B. Updates stehen zur Installation

“Das Alzheimer-Gesetz der Programmierung: Wenn du einen von dir vor zwei Wochen geschriebenen Code ansiehst, kommt es dir vor als hättest du ihn noch nie gesehen.”
Dan Hurvitz – Software-Entwickler