Protokoll über Erreichbarkeit einer lokalen IP

TWIN013

Ensign
Registriert
Jan. 2006
Beiträge
138
Hallo zusammen!

Ich suche eine Möglichkeit die Erreichbarkeit einer internen IP-Adresse zu protokollieren, um einen Muster bei sporadischen Ausfällen auf die Spur zu kommen. Mir schwebt hierzu ein Docker-Container oder ähnliches vor, damit der PC nicht Tag und Nacht laufen muss, sondern z.B. ein Raspi diesen Job ausführen kann. Hätte hierzu evtl. jemand eine Idee für mich? :)
Um mein Netzwerk und die vorhandene Hardware kurz zu umreißen:
Synology RS2421+ NAS
Unifi Dream Machine Pro
Unifi Switch und APs
Raspberry Pi
Vielen Dank schon mal!
 
Du suchst einen Heartbeat-Server und Client. Gibt es in jeder "Geschmacksrichtung".
 
  • Gefällt mir
Reaktionen: PHuV
Wenn ein ping reicht, kannst du den ping-Befehl einfach kontinuierlich laufen lassen und in eine Text-Datei ausgeben lassen. Dafür wäre ein Docker-Container aber eigentlich schon Overkill
 
  • Gefällt mir
Reaktionen: guzzisti
SaxnPaule schrieb:
ping IP-Adresse -t > output.txt
Warum -t und dann keine ttl?

Wenn du es quick & dirty plotten willst, kannst du das Skript hier nehmen
Oder halt mit kleinem checkmk, icinga oder einfach was mit grafana + Prometheus

https://gist.github.com/fortitudepub/d881740ba9c35143d348c5fe00df53b9
Bash:
rrdtool create latency_db.rrd \
--step 180 \
DS:pl:GAUGE:540:0:100 \
DS:rtt:GAUGE:540:0:10000000 \
RRA:MAX:0.5:1:500\

#!/bin/bash
#
### set the paths
command="/bin/ping -q -n -c 3"
gawk="/usr/bin/gawk"
rrdtool="/usr/bin/rrdtool"
hosttoping="45.76.102.155"
 
### data collection routine
get_data() {
    local output=$($command $1 2>&1)
    local method=$(echo "$output" | $gawk '
        BEGIN {pl=100; rtt=0.1}
        /packets transmitted/ {
            match($0, /([0-9]+)% packet loss/, datapl)
            pl=datapl[1]
        }
        /min\/avg\/max/ {
            match($4, /(.*)\/(.*)\/(.*)\/(.*)/, datartt)
            rtt=datartt[2]
        }
        END {print pl ":" rtt}
        ')
    RETURN_DATA=$method
}
 
### change to the script directory
cd /root/latency
 
### collect the data
get_data $hosttoping
 
### update the database
$rrdtool update latency_db.rrd --template pl:rtt N:$RETURN_DATA

#!/bin/bash
#
## change directory to the rrdtool script dir
cd /root/latency/
 
## Graph for last 24 hours
/usr/bin/rrdtool graph latency_graph.png \
-w 785 -h 120 -a PNG \
--slope-mode \
--start -86400 --end now \
--font DEFAULT:7: \
--title "ping aliyun ap" \
--watermark "`date`" \
--vertical-label "latency(ms)" \
--right-axis-label "latency(ms)" \
--lower-limit 0 \
--right-axis 1:0 \
--x-grid MINUTE:10:HOUR:1:MINUTE:120:0:%R \
--alt-y-grid --rigid \
DEF:roundtrip=latency_db.rrd:rtt:MAX \
DEF:packetloss=latency_db.rrd:pl:MAX \
CDEF:PLNone=packetloss,0,0,LIMIT,UN,UNKN,INF,IF \
CDEF:PL10=packetloss,1,10,LIMIT,UN,UNKN,INF,IF \
CDEF:PL25=packetloss,10,25,LIMIT,UN,UNKN,INF,IF \
CDEF:PL50=packetloss,25,50,LIMIT,UN,UNKN,INF,IF \
CDEF:PL100=packetloss,50,100,LIMIT,UN,UNKN,INF,IF \
LINE1:roundtrip#0000FF:"latency(ms)" \
GPRINT:roundtrip:LAST:"Cur\: %5.2lf" \
GPRINT:roundtrip:AVERAGE:"Avg\: %5.2lf" \
GPRINT:roundtrip:MAX:"Max\: %5.2lf" \
GPRINT:roundtrip:MIN:"Min\: %5.2lf\t\t\t" \
COMMENT:"pkt loss\:" \
AREA:PLNone#FFFFFF:"0%":STACK \
AREA:PL10#FFFF00:"1-10%":STACK \
AREA:PL25#FFCC00:"10-25%":STACK \
AREA:PL50#FF8000:"25-50%":STACK \
AREA:PL100#FF0000:"50-100%":STACK


*/3    *     *    *   *   /root/latency/update.sh
*/15   *     *    *   *   /root/latency/graph.sh >> /dev/null 2>&1

Achtung: oben die rrdtool config, darunter das Update.sh, darunter graph.sh und darunter der cronjob.
Pfade und IPS nach Bedarf anpassen :)
Wenn du nicht weißt was zu tun ist sag. Ich habe noch 4h zugfahrt, bin aber auf dem Handy tippfaul. Ein kleines how to bei Bedarf aber gern
 
  • Gefällt mir
Reaktionen: PHuV
Vielen Dank für eure zahlreichen Antworten! :love:

Die Sache mit der grafischen Übersicht klingt natürlich sehr verlockend - ich muss aber gestehen damit bin ich wohl vollkommen überfordert, was meine kaum vorhandenen Linux-Kenntnisse angeht. Von daher wäre ich für eine idiotensichere Anleitung wirklich sehr, sehr dankbar. Macht euch aber bitte nicht zu viel Mühe, das hat Zeit und ist nicht lebenswichtig...
 
TWIN013 schrieb:
Ich suche eine Möglichkeit die Erreichbarkeit einer internen IP-Adresse zu protokollieren, um einen Muster bei sporadischen Ausfällen auf die Spur zu kommen.
Ein Ping oder ähnliche externe Monitoring-Tools bestätigen aber dann nur das, was du in der Praxis eh bemerkst - der Server ist plötzlich nicht erreichbar. Dem lässt sich abgesehen von einem etwaigen zeitlichen Muster kaum eine Information abgewinnen.

Darüber hinaus ist ein Ping etwas komplett anderes als zB ein Webserver (tcp 443), o.ä. und daher nur bedingt aussagekräftig. Stürzt die Server-Anwendung ab, heißt das noch lange nicht, dass das ganze System nicht mehr reagiert. Heißt: Der Ping funktioniert womöglich 24/7 1A, aber der Webserver kackt alle xx Stunden ab und ist nicht mehr erreichbar.

Für halbwegs belastbare Ergebnisse müsstest du daher explizit den Port der Serveranwendung überwachen. Mindestens ebenso wichtig ist jedoch die Überwachung des eigentlichen Servers durch interne Logs. Nur weil du durch externes Monitoring - egal wie - siehst, dass der Server plötzlich nicht mehr erreichbar ist, hilft dir das bei der Diagnose des zugrundeliegenden Problems nur mäßig weiter.

Daher eine entscheidende Frage: Was genau willst du überwachen?
 
  • Gefällt mir
Reaktionen: PHuV
@Raijin Ok, dann hole ich mal etwas weiter aus: ich habe hier im Haus eine PV-Anlage mit Wallbox, beides von E3DC. Nun hat die Wallbox von Beginn an ein leider sehr eigentümliches Verhalten an den Tag gelegt: sie verabschiedet sich hin und wieder ohne Anlass aus dem Netzwerk. Das ist insofern sehr ärgerlich, als dass die genaue Ermittlung des Stromverbrauchs der Wallbox einen Einfluss auf mein Privatvermögen hat (Stichwort: Firmenwagen). Sobald die Wallbox "weg" ist, wird der Stromverbrauch dem Hausstrom zugerechnet.
Da der Service von E3DC mein Anliegen über nun mehr als zwei Jahre schlichtweg ignoriert bzw anscheinend auch unfähig ist in einer Umgebung zurecht zu kommen, die über mehr als eine FritzBox verfügt, würde ich mich gerne selbst auf Spurensuche begeben...
 
Ah, ok. Bei so einem Gerät hat man natürlich nur sehr eingeschränkte bis gar keine Möglichkeiten, lokal irgendetwas zu protokollieren.

Bezieht die Wallbox ihre IP-Adresse via DHCP oder hast du im Gerät eine statische IP hinterlegt?

Wie genau erfolgt die Abfrage des Stromverbrauchs? Braucht die Wallbox eine Netzwerk- oder gar Internetverbindung, um selbsttätig die Verbrauchswerte auf einem irgendwie gearteten Server bzw. in einer Cloud abzulegen? Oder greifst du vom PC aus regelmäßig auf die Wallbox zu, um aktiv die Verbrauchswerte abzurufen?

Ist die Wallbox direkt mit einem Kabel mit dem Router verbunden?
Wenn nein, ist da ein Switch dazwischen? Dosen?

Oder ist die Wallbox via WLAN im Netzwerk?
Wenn ja, wie ist die Qualität des WLANs an dieser Stelle?
 
Wallbox hängt per RJ45 Kabel am Switch, der wiederum an der UDMP hängt. IP habe ich sowohl statisch als auch per DHCP gestestet, der Hersteller hat die 192.168.0.8 statisch empfohlen, so mache ich es jetzt auch. Seit ich Wallbox und Wechselrichter in einem eigenen VLAN habe scheint es zwar besser geworden zu sein, aber eben nicht weg.
Kabel wurde natürlich ebenfalls schon getauscht.
Ich logge mich auf einer Website ein und sehe dort die Daten der beiden Geräte in einer Oberfläche. Wie das genau abläuft…?
 
TWIN013 schrieb:
der Hersteller hat die 192.168.0.8 statisch empfohlen
Das ist natürlich absoluter BS vom Hersteller und zeigt, dass dort kein nennenswertes IT-KnowHow vorhanden ist. Vermutlich ist der komplette Netzwerkpart der Wallbox inkl. Cloud aus einem Baukastensystem aus China zugekauft, wie bei vielen vermeintlich "smarten" Geräten heutzutage. Der Rat zur Standard-IP ist daher eine Antwort aus reinem Schulterzucken :-/


TWIN013 schrieb:
Ich logge mich auf einer Website ein
Eine lokale Webseite im Sinne von Browser öffnen und 192.168.0.8 eingeben oder tatsächlich auf einer öffentlichen Webseite im www (zB beim Hersteller)?
 
  • Gefällt mir
Reaktionen: snaxilian und SaxnPaule
Webseite des Herstellers, es gibt auch eine entsprechende App fürs Handy. Ich schätze auch, dass das zugekauft ist.
 
Ok, dann ist ein Test für die Erreichbarkeit der Wallbox nur sehr begrenzt sinnvoll. Simpel ausgedrückt: Es könnte sogar sein, dass die Wallbox überhaupt nicht auf Pings reagiert und trotzdem einwandfrei funktioniert.

Offenbar stellt die Wallbox also eine Verbindung ins Internet her und lädt ihre Daten in die Cloud des Herstellers hoch. Das eigentliche Problem mit der Wallbox ist also nicht die Erreichbarkeit der Wallbox selbst, sondern ihre Verbindung ins Internet. Ohne zu sehr ins Detail zu gehen, könnte es einen Versuch wert sein, in der Wallbox die IP-Adresse statisch einzustellen und als DNS nicht den Router, sondern direkt zB 8.8.8.8 zu nehmen, um DNS-Probleme weitestgehend auszuschließen.

Ansonsten muss man schauen welche Möglichkeiten die UDM bietet, um den Traffic der Wallbox zu protokollieren, um beispielsweise die Adresse des Upload-Servers für die Cloud - muss nicht zwingend derselbe Server sein, von dem du die Daten abrufst - zu sehen oder ggfs auch Logs aus der Firewall, die unter Umständen Verbindungen der Wallbox blockiert.
Da muss man allerdings schon etwas tiefer einsteigen und ich würde zunächst den Versuch mit 8.8.8.8 als DNS vorschlagen.
 
  • Gefällt mir
Reaktionen: bender_ und snaxilian
Zurück
Oben