Monitoring Netzwerk/Websites via Ping

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich bin aktuell noch auf der Suche nach einer smarten Überwachung...
    Nagios scheidet aus einfach zu komplex und kompliziert....

    Ich habe schon etwas gefunden was in die Richtung geht:
    http://kopfkino.irosaurus.com/tutorial-monit…-debian-wheezy/

    Einsatzgebeit soll sein:
    Netzwerküberwachung via Ping also ein Host Up und Host down geschichte...

    So das es aber auch automatisch grafisch "schön" dargestellt wird...

    Hat da jemand etwas ?

    Danke!

  • Ich bin etwas ähnliches am Coden.

    Ich habe ein PHP-Script (wird gerade auf Python3 umgestellt) welches eine Liste
    (MySQL DB) von IP's anpingt und überprüft ob diese im Netzwerk sind.

    Was ich vorhab:
    Am ende eine Website mit grafischer Übersicht zu haben wer wann im Netzwerk war.

  • Hi all,
    ich weiß nciht ob ich hier richtig bin aber ich bin auf der Suche nach einer Netzwerküberwachung, die eine IP anpingt und bei Antwort einen WOL-Befehl an einen Server sendet.
    Hintergrund ist dass ich von der Frtzbox DSL auf Kabel umgestellt habe, ich hatte in der alten Fritzbox ein Skript laufen das jede Sekunde einen Ping an die die Ip meines Samsung Tv's geschickt hat, bei Antwort des TV'S (einschalten) hat sie dann ein WOL an den Homeserver geschickt, der dann aufgewacht ist. Ich habe als HTPC eine Openelec-Box laufen. mit der könnte ich auch ein WOL- Signal ausgeben, allerdings erst nachdem das Bios gebootet ist, bis der Homeserver dann die Platten angedreht hat hängt mein XBMC Mediacenter fest, machmal geht auch gar nichts mehr.

    Meine Frage daher, gibt es so ein Skript oder ein kleines Progrämmchen das den Ping erledigt und das WOL- Signal absenden kann?

    Bin echt schon lange am suchen, jetzt muss ich doch mal die Experten fragen! :thumbs1:
    Gruß

  • Hi!

    kurz mal das Terminal bemüht aber nicht getestet:

    Installation von etherwake mittels "sudo apt-get -y install etherwake"

    kleines Schell-Script

    Code
    [size=12]#!/bin/bash[/size]
    while :
     do
      pingresult=`ping -c 1 127.0.0.1 | grep "1 received` #1 Ping-Paket an den TV senden
       if [ "$pingresult" = "1 packets transmitted, 1 received, 0% packet loss, time 0ms" ]; #Paket angekommen?
        then #TV ist eingeschaltet
         etherwake <mac address>
       fi
      sleep 2s #2 Sekunden Pause
     done

    Nur noch die MAC-Adresse eintragen, die IP des TV ebenfalls.
    Das Script abspeichern und mit "chmod +r" ausführbar machen und ausprobieren.

    Hoffe, dass es klappt...

    Sven

  • Mein lieber Schorli,
    das geht aber fix! werd ich gleich ausprobieren! ich werde berichten wie es klappt! ;)
    Danke im vorraus!

    Eine Frage aber gleich vorweg, so wie ich das interpretiere fährt das skrpt an, wartet auf den ping vom TV und sendet dann das WOL. Dann wars das. wird das Programm da beeendet? dann müsste man es ja jeden Morgen starten. Oder läuft das so lange durch so lange die Pi am Netz ist (24/7) ?
    Hab hier mal mein altes Skript reingehängt, vielleihct hilft das weiter

    #!/bin/sh
    sleep 20
    cat <<EOF >> /var/mcewakeup
    i="0"
    while [ "1" -eq "1" ]
    do
    ping -c 1 1.1.1.1 > /dev/null
    if [ \$? -eq "0" ]; then
    # ping successful
    if [ \$i -ne "1" ]; then
    i="1"
    echo `date` "Waking up PC"
    /usr/bin/ether-wake -i eth0 AA:BB:CC:DD:EE:FF
    fi
    else
    i="0"
    fi
    sleep 1
    done


    Gruß

    Einmal editiert, zuletzt von sharp76 (12. Oktober 2013 um 23:53)

  • Die While-Schleife läuft bis zum Reboot oder Ctrl-C :)
    Das ist aber noch Raum für Verbesserung. Wenn der PC bereits an ist braucht ja kein WOL gesendet zu werden...

    Sven


  • Ich habe ein PHP-Script (wird gerade auf Python3 umgestellt) welches eine Liste
    (MySQL DB) von IP's anpingt und überprüft ob diese im Netzwerk sind.

    Was ich vorhab:
    Am ende eine Website mit grafischer Übersicht zu haben wer wann im Netzwerk war.

    Warum stellst du das auf python um?

    Es spielt keine Rolle in welcher Programmiersprache das geschrieben wird ob in php, bash, python, c oder was auch immer.. Ich bevorzuge aber php oder bash ;)


    Anstatt MySQL würd ich lieber SQLite nutzen, das ist wesendlich Resourcen schonender und verbraucht kein CPU+RAM wenn es nicht gebraucht wird...

    SQLite + PHP5 für die Konsole installieren:

    Code
    apt-get install sqlite3 php5-cli php5-sqlite

    bash Script um IPs in die Datenbank einzutragen oder zu löschen / anzuzeigen:
    nano /usr/bin/MonitorIP


    bash Script ausführbar machen:

    Code
    chmod +x /usr/bin/MonitorIP

    Aufrufen mit: MonitorIP <add/del/list> <IP> also zum Beispiel: MonitorIP add 8.8.8.8 oder MonitorIP list

    Dann brauch man noch ein Script um regelmässig die IPs aus der Datenbank auszulesen, anzupingen und den Status in der Datenbank zu ändern (online = 1 oder 0 sowie datetime wenn online = 1 um den letzten Zeitpunkt wo die IP online war festzuhalten)..


    Nachteil in nativem PHP wäre das man einen Port angeben muss um zu prüfen ob eine IP online ist - oder zumindest ist mir kein anderer Weg bekannt - wer es anders haben möchte müsste dann eben exec(); nutzen aber büst dadurch dann eben auch Geschwindigkeit ein...

    /usr/local/check_ips.php

    Standardmässig wird Port 80 genutzt um zu prüfen ob die IP online ist, es kann aber auch ein anderer Port angegeben werden: MonitorIP add 8.8.8.8:22


    Oder alternativ das ganze ebenfals als bash Script:
    nano /usr/local/check_ips.sh


    Da muss man dann keinen extra Port angeben da einfach "ping" genutzt wird...

    bash Script ausführbar machen:

    Code
    chmod +x /usr/local/check_ips.sh


    Das könnte man dann jede Minute über crontab ausführen lassen..


    Und um davon eine grafische Darstellung erstellen zu lassen gäbe es auch hier mehrere Möglichkeiten, eine davon hab ich zB > hier < beschrieben
    Aber das kriegt ihr selber hin, oder? :cool:


  • Hi Sven,
    Du bist aber schon früh auf am Sonntag! ;)

    Also ich hab mal Dein Skript auf meinen Rechner angepasst, sieht dann aus wie oben (die Mac-adresse natürlich im Reinen geschrieben! )
    das ganze mcewakeup.sh genannt, gepseichert in /etc/init.d
    chmod +r
    dann versucht das Skript auszuführen ./mcewakeup.sh

    und dann gehts los...folgenden Fehlermeldung wiederholt sich immer wieder :

    ./mcewakepup.sh: command substitution: Zeile 4: Dateiende beim Suchen nach `"' erreicht.
    ./mcewakepup.sh: command substitution: Zeile 5: Syntax Fehler: Unerwartetes Dateiende.
    ./mcewakepup.sh: command substitution: Zeile 4: Dateiende beim Suchen nach `"' erreicht.
    ./mcewakepup.sh: command substitution: Zeile 5: Syntax Fehler: Unerwartetes Dateiende.
    ./mcewakepup.sh: command substitution: Zeile 4: Dateiende beim Suchen nach `"' erreicht.
    ./mcewakepup.sh: command substitution: Zeile 5: Syntax Fehler: Unerwartetes Dateiende.
    ./mcewakepup.sh: command substitution: Zeile 4: Dateiende beim Suchen nach `"' erreicht.
    ./mcewakepup.sh: command substitution: Zeile 5: Syntax Fehler: Unerwartetes Dateiende.

    spätestens jetzt steig ich aus.
    Kannst Du mir helfen?

    Gruß
    Thomas

  • Was 2 kleine Striche so alles ausmachen können... :)

    [font="Tahoma, Verdana, Arial, sans-serif"]pingresult=`ping -c 1 192.168.0.51 | grep "1 received"`[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]PS: Das war schon lang geschlafen heute :)[/font]

  • chmod +r

    +r ? richtiger wäre +x

    Ich würd das Script lieber so gestalten:

    Bash
    #!/bin/bash
    while :; do
       if [ -n "$(ping -q -W 1 -c 1 192.168.0.51 | grep '1 received')" ]; then
         #TV ist eingeschaltet
         etherwake xx:xx:xx:xx:xx
       fi
      sleep 2s #2 Sekunden Pause
    done

    wär ein bischen kürzer und hat auch ein Timeout von einer Sekunde (-W 1) im Ping Befehl
    " -n " in der if Abfrage ist gleich zu setzen mit " ! -z " und bedeutet soviel wie: nicht leer
    Wenn also die Rückgabe vom Befehl in $() nicht leer ist, trifft die if Abfrage zu und das nach "then" wird ausgeführt
    $(ls -la /) ist quasi das selbe wie `ls -la /` allerdings finde ich ersteres besser

    Aber die Abfrage alle 2 Sekunden auszuführen ist imho etwas übertrieben

  • Danke Leute!
    Hat alles wunderbar geklappt, das skript startet jetzt automatisch und läuft im Hintergrund. Ich hab den Raspberry sowieso nur als Wol Proxy laufen wenn ich mal aus dem Internet meinen Homeserver wecken will und einen Film im Hotel schauen will, er wird mit der Abfrage alle 2 sec also nicht überfordert sein, ich werd die Intervalle aber versuchen zu dehnen, wobei jetzt ein idealer Workflow gegeben ist, ich mache den Fernseher und den HTPC an, der Homeserver auf dem Dach wacht auf, bis ich die XBMC Oberfläche sehe sind alle Freigaben da, das EPG aktualisiert und ich kann sofort loslegen mit TV-schauen, das ganze in gemessenen 7 Sekunden, da ist der normale Fernseher auch nicht viel schneller und ich hab alles unter einer einheitlichen Oberfläche!

    Gruß an eBiBy und meigrafd
    Thomas:danke_ATDE:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!