Hallo zusammen,
ich würde gerne div. IP Adressen überwachen.
Dafür habe ich das ping modul installiert:
Internals:
DEF 192.168.1.10 ICMP 5
FAILCOUNT 0
FUUID 5defca6b-f33f-b6d9-eb17-22e6ca40ef1f9739
HOST 192.168.1.10
MODE icmp
NAME Check_IP_Test
NR 621
STATE Initialized
TIMEOUT 5
TYPE ping
READINGS:
2019-12-10 18:37:30 state Initialized
helper:
Attributes:
alias Check IP Test
checkInterval 30
event-on-change-reading state
icon it_network
minFailCount 3
room Router
verbose 0
Das funktioniert aber nicht, stattdessen bekomme ich diese Fehlermeldung:
icmp ping requires root privilege at ./FHEM/98_ping.pm line 167
Ein List auf /bin/ping ergibt: (rpi wheezy)
klaus@Raspberry ~ $ sudo ls -l /bin/ping
-rwsrwsrwx 1 root root 33220 Mar 30 2012 /bin/ping
klaus@Raspberry ~ $
Ein ID fhem liefert:
klaus@Raspberry ~ $ sudo id fhem
uid=999(fhem) gid=20(dialout) groups=20(dialout),5(tty),27(sudo),100(users),105(netdev),999(input)
klaus@Raspberry ~ $
FHEM läuft unter:
klaus@Raspberry ~ $ sudo ps u -e | grep fhem
fhem 2410 5.5 5.1 53764 51716 ? R 18:37 2:09 perl fhem.pl fhem.cfg
klaus 2894 0.0 0.1 3584 1844 pts/0 S+ 19:16 0:00 grep --color=auto fhem
Mit TCP bekomme ich leider immer wieder Fehlalarme.
Weiß jemand Rat, wie ich ICMP zum laufen bekomme ?
VG Klaus
wheezy ist eine Uralte Version die 5 Jahre und mehr auf dem Buckel hat. Bitte mache ein update.
Zitat von: CoolTux am 10 Dezember 2019, 19:25:35
wheezy ist eine Uralte Version die 5 Jahre und mehr auf dem Buckel hat. Bitte mache ein update.
Klar ist wheezy alt, sollte aber dennoch laufen...
Bevor ich update, lasse ich es lieber, ist mir zuviel Aufwand ..
Du solltest aber auch bedenken das neue Entwicklungen bei FHEM eventuell bei alten Systemen wie Deines nicht korrekt oder gar nicht laufen.
Ich würde darauf jeden Fall keinen Support geben (ist aber mein persönliches Ding)
Die richtige Berechtigungen für ping sind:
-rwsr-xr-x 1 root root /bin/ping
Sonst auf tcp statt icmp gehen
Native unter Linux funktionierts jedenfalls:
klaus@Raspberry ~ $ sudo -u fhem ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_req=1 ttl=254 time=3.28 ms
64 bytes from 192.168.1.10: icmp_req=2 ttl=254 time=2.78 ms
64 bytes from 192.168.1.10: icmp_req=3 ttl=254 time=2.81 ms
64 bytes from 192.168.1.10: icmp_req=4 ttl=254 time=3.24 ms
64 bytes from 192.168.1.10: icmp_req=5 ttl=254 time=2.56 ms
64 bytes from 192.168.1.10: icmp_req=6 ttl=254 time=3.42 ms
64 bytes from 192.168.1.10: icmp_req=7 ttl=254 time=2.41 ms
64 bytes from 192.168.1.10: icmp_req=8 ttl=254 time=3.88 ms
64 bytes from 192.168.1.10: icmp_req=9 ttl=254 time=9.08 ms
Zitat von: amenomade am 10 Dezember 2019, 20:10:49
Die richtige Berechtigungen für ping sind:
-rwsr-xr-x 1 root root /bin/ping
Sonst auf tcp statt icmp gehen
Mit tcp bekomme ich immer wieder mal diesen Fehler:
Timeout for ping_DoPing reached, terminated process 2656
Zitat von: Rampler am 10 Dezember 2019, 20:30:15
Native unter Linux funktionierts jedenfalls:
klaus@Raspberry ~ $ sudo -u fhem ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_req=1 ttl=254 time=3.28 ms
Und
sudo -g dialout ping 192.168.1.10
?
ZitatMit tcp bekomme ich immer wieder mal diesen Fehler:
Timeout for ping_DoPing reached, terminated process 2656
Und wenn Du den Timeout erhöst?
Was sagt die Log mit verbose 5?
Und
sudo -g dialout ping 192.168.1.10
klaus@Raspberry ~ $ sudo -g dialout ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_req=1 ttl=254 time=3.58 ms
64 bytes from 192.168.1.10: icmp_req=2 ttl=254 time=2.87 ms
64 bytes from 192.168.1.10: icmp_req=3 ttl=254 time=5.36 ms
64 bytes from 192.168.1.10: icmp_req=4 ttl=254 time=8.09 ms
ZitatUnd wenn Du den Timeout erhöst?
Habe ich bereits auf 5 Sekunden ..
ZitatWas sagt die Log mit verbose 5?
icmp ping requires root privilege at ./FHEM/98_ping.pm line 167
2019.12.10 20:53:26 3: BlockingCall for Check_IP_Heizoeltank was aborted
2019.12.10 20:53:56 5: Check_IP_Heizoeltank_DoPing: Executing ping
icmp ping requires root privilege at ./FHEM/98_ping.pm line 167
Das Problem ist, ein icmp ping braucht root Berechtigungen, um ein raw Socket zu öffnen.
Mit "sudo ... ping" rufst Du /bin/ping, das den setuid (und auch bei dir guid) gesetzt hat: somit läuft es mit root Berechtigungen
Das Fhem ping Modul nutzt aber nicht das ping Kommando des systems, sondern Net::Ping.
So lange dein perl Prozess nicht mit root Berechtigungen läuft, kann es nicht gehen
was spricht gegen PRESENCE statt ping modul?
da kannst du über attribute konfigurieren wie bei einem oder mehreren verlorenen ping reagiert wird. und du kannst dir auch das system kommando das zum pingen verwendet wird konfigurieren. (d.h. auch das setuid binary) und auch mehr als ein paket. und das ganze asynchron im hintergrund.
Zitat von: justme1968 am 10 Dezember 2019, 22:17:32
was spricht gegen PRESENCE statt ping modul?
da kannst du über attribute konfigurieren wie bei einem oder mehreren verlorenen ping reagiert wird. und du kannst dir auch das system kommando das zum pingen verwendet wird konfigurieren. (d.h. auch das setuid binary) und auch mehr als ein paket. und das ganze asynchron im hintergrund.
EINWANDFREI !!!
AbsenceThresHold gesetzt und alles läuft super ..
DANKE