Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)

Begonnen von hexenmeister, 06 Dezember 2013, 17:44:38

Vorheriges Thema - Nächstes Thema

hexenmeister

Sieht sehr sauber aus, vielen Dank!
Wollte ins Repo übernehmen, aber irgendwas stimmt da nicht. Habe im entsprechenden Thread um Rat gefragt (https://forum.fhem.de/index.php/topic,62348.60.html). Check ein, wenns wieder geht.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: PitpatV am 27 Februar 2017, 20:48:24
Vielleicht gibt es die Gelegenheit den SSH Zugriff in "besser" in die Main-Stream-Version einzupflegen.

eingecheckt, ab morgen per update. Bitte alle Interessenten fleißig testen :)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Christian Uhlmann

Hi zusammen,


Zitat von: PitpatV am 27 Februar 2017, 20:48:24
Hallo Gleichgesinnte,

hab mich mal dem Thema SYSMON und SSH gewidmet. Anbei eine erste Implementierung des SSH-Zugriffs, der zumindest bei mir wunderbar funktioniert.
Auch andere kleine Modifikationen sind enthalten, die im Falle von nicht initialisierten Variablen abbrechen anstatt in einer Fehlermeldung im Log zu enden (das soll keine Kritik am bisherigen Code sein, der ist nämlich sehr gut!).

@hexenmeister
Vielleicht gibt es die Gelegenheit den SSH Zugriff in "besser" in die Main-Stream-Version einzupflegen.
Cool, heute gedacht, das brauche ich, dann im Forum gesucht und lösung gefunden :)
Leider wird der Port nicht verwendet.

Zitat von: hexenmeister am 04 März 2017, 09:19:56
eingecheckt, ab morgen per update. Bitte alle Interessenten fleißig testen :)
Auch super, aber das mit dem Port sollte aus meiner Sicht noch rein, kann leider nicht auf die schnelle einen Patch erstellen (muss ich mich erst mal reinarbeiten).
Aber ich habe die Version aus dem SVN genutzt und mal nachgebaut.

Es fehlt eigentlich nur bei allen
sshpass
ein
-p $port

Wenn ich es richtig sehe, ist es nur diese Codestelle:

   my $user = $hash->{USER};#AttrVal( $name, "remote_user", "" );
   
   SYSMON_Log($hash, 5, "Execute '".$cmd."' by SSH");
   #{qx(""sshpass -p <pwd> ssh <user>\@<host> <cmd>"")}
   my $call = "echo $pwd \| sshpass ssh ".$user."\@".$host." ".$cmd;
   my $call_zens = "sshpass -p 'pwd' ssh ".$user."\@".$host." ".$cmd;


diese müsste durch

   my $user = $hash->{USER};#AttrVal( $name, "remote_user", "" );
   my $port = $hash->{PORT};#AttrVal( $name, "remote_port", "22" );
   
   SYSMON_Log($hash, 5, "Execute '".$cmd."' by SSH");
   #{qx(""sshpass -p <pwd> ssh -p <port> <user>\@<host> <cmd>"")}
   my $call = "echo $pwd \| sshpass ssh -p ".$port." ".$user."\@".$host." ".$cmd;
   my $call_zens = "sshpass -p 'pwd' ssh -p ".$port." ".$user."\@".$host." ".$cmd;

ersetzt werden.

Trotzdem klappt es bei mir nicht, also alles auf Anfang. Aber auch hier habe ich Probleme.
Hab nen Testserver jetzt mal auf Port 22 eingestellt, dann ein

define SYS.sysmon.NUC SYSMON ssh:root@192.168.127.92

danach ein

set SYS.sysmon.NUC password secret


geht leider nicht, folgendes gibt List aus:

Internals:
   CFGFN
   DEF        ssh:root@192.168.127.92
   HOST       192.168.127.92
   INTERVAL_BASE 60
   INTERVAL_MULTIPLIERS 1 1 1 10
   MODE       ssh
   NAME       SYS.sysmon.NUC
   NR         2918
   PORT       22
   STATE      Initialized
   TYPE       SYSMON
   USER       root
   Helper:
     Dblog:
       Cpu_core_count:
         Sys.dblog:
           TIME       1488650111.00605
           VALUE      1
       Eth0:
         Sys.dblog:
           TIME       1488650111.00605
           VALUE      not available
       Eth0_diff:
         Sys.dblog:
           TIME       1488650111.00605
           VALUE      not available
       Ram:
         Sys.dblog:
           TIME       1488650111.00605
           VALUE      n/a
       Root:
         Sys.dblog:
           TIME       1488649931.12829
           VALUE      Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at / (not available)
       Swap:
         Sys.dblog:
           TIME       1488650111.00605
           VALUE      n/a
       Wlan0:
         Sys.dblog:
           TIME       1488650111.00605
           VALUE      not available
       Wlan0_diff:
         Sys.dblog:
           TIME       1488650111.00605
           VALUE      not available
   Readings:
     2017-03-04 18:55:11   cpu_core_count  1
     2017-03-04 18:55:11   eth0            not available
     2017-03-04 18:55:11   eth0_diff       not available
     2017-03-04 18:55:11   ram             n/a
     2017-03-04 18:52:11   root            Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at / (not available)
     2017-03-04 18:55:11   swap            n/a
     2017-03-04 18:55:11   wlan0           not available
     2017-03-04 18:55:11   wlan0_diff      not available
   Helper:
     error_msg
     sys_cpu0_freq 0
     sys_cpu0_temp 0
     sys_cpu1_freq 0
     sys_cpu1_temp 0
     sys_cpu2_freq 0
     sys_cpu2_temp 0
     sys_cpu3_freq 0
     sys_cpu3_temp 0
     sys_cpu4_freq 0
     sys_cpu4_temp 0
     sys_cpu5_freq 0
     sys_cpu5_temp 0
     sys_cpu6_freq 0
     sys_cpu6_temp 0
     sys_cpu7_freq 0
     sys_cpu7_temp 0
     sys_cpu_freq_rpi_bbb 0
     sys_cpu_temp_bbb 0
     sys_cpu_temp_rpi 0
     sys_fb     0
     sys_power_ac 0
     sys_power_bat 0
     sys_power_usb 0
     u_first_mark 1
     Cur_readings_map:
       cpu0_idle_stat CPU0 min/max/avg (idle)
       cpu1_idle_stat CPU1 min/max/avg (idle)
       cpu2_idle_stat CPU2 min/max/avg (idle)
       cpu3_idle_stat CPU3 min/max/avg (idle)
       cpu4_idle_stat CPU4 min/max/avg (idle)
       cpu5_idle_stat CPU5 min/max/avg (idle)
       cpu6_idle_stat CPU6 min/max/avg (idle)
       cpu7_idle_stat CPU7 min/max/avg (idle)
       cpu_bogomips BogoMIPS
       cpu_core_count Number of CPU cores
       cpu_idle_stat CPU min/max/avg (idle)
       cpu_model_name CPU model name
       date       Date
       eth0       Network adapter eth0
       eth0_diff  Network adapter eth0 (diff)
       eth0_ip    Network adapter eth0 (IP)
       eth0_ip6   Network adapter eth0 (IP6)
       eth0_rx    Network adapter eth0 (RX)
       eth0_speed Network adapter eth0 (speed)
       eth0_tx    Network adapter eth0 (TX)
       fhemstarttime Fhem start time
       fhemstarttime_text Fhem start time
       fhemuptime System up time
       fhemuptime_text FHEM up time
       idletime   Idle time
       idletime_text Idle time
       io_sda     TEST
       io_sda_diff TEST
       io_sda_raw TEST
       loadavg    Load average
       loadavg_1  Load average 1
       loadavg_15 Load average 15
       loadavg_5  Load average 5
       ram        RAM
       ram_free   RAM free
       ram_free_percent RAM free %
       ram_total  RAM total
       ram_used   RAM used
       ram_used_stat RAM used stat
       root       Filesystem /
       starttime  System start time
       starttime_text System start time
       stat_cpu   CPU statistics
       stat_cpu0  CPU0 statistics
       stat_cpu0_diff CPU0 statistics (diff)
       stat_cpu0_percent CPU0 statistics (diff, percent)
       stat_cpu0_text CPU0 statistics (text)
       stat_cpu1  CPU1 statistics
       stat_cpu1_diff CPU1 statistics (diff)
       stat_cpu1_percent CPU1 statistics (diff, percent)
       stat_cpu1_text CPU1 statistics (text)
       stat_cpu2  CPU2 statistics
       stat_cpu2_diff CPU2 statistics (diff)
       stat_cpu2_percent CPU2 statistics (diff, percent)
       stat_cpu2_text CPU2 statistics (text)
       stat_cpu3  CPU3 statistics
       stat_cpu3_diff CPU3 statistics (diff)
       stat_cpu3_percent CPU3 statistics (diff, percent)
       stat_cpu3_text CPU3 statistics (text)
       stat_cpu4  CPU4 statistics
       stat_cpu4_diff CPU4 statistics (diff)
       stat_cpu4_percent CPU4 statistics (diff, percent)
       stat_cpu4_text CPU4 statistics (text)
       stat_cpu5  CPU5 statistics
       stat_cpu5_diff CPU5 statistics (diff)
       stat_cpu5_percent CPU5 statistics (diff, percent)
       stat_cpu5_text CPU5 statistics (text)
       stat_cpu6  CPU6 statistics
       stat_cpu6_diff CPU6 statistics (diff)
       stat_cpu6_percent CPU6 statistics (diff, percent)
       stat_cpu6_text CPU6 statistics (text)
       stat_cpu7  CPU7 statistics
       stat_cpu7_diff CPU7 statistics (diff)
       stat_cpu7_percent CPU7 statistics (diff, percent)
       stat_cpu7_text CPU7 statistics (text)
       stat_cpu_diff CPU statistics (diff)
       stat_cpu_idle_percent CPU statistics idle %
       stat_cpu_io_percent CPU statistics io %
       stat_cpu_irq_percent CPU statistics irq %
       stat_cpu_nice_percent CPU statistics nice %
       stat_cpu_percent CPU statistics (diff, percent)
       stat_cpu_sirq_percent CPU statistics sirq %
       stat_cpu_sys_percent CPU statistics sys %
       stat_cpu_text CPU statistics (text)
       stat_cpu_user_percent CPU statistics user %
       swap       swap
       swap_free  swap free
       swap_total swap total
       swap_used  swap used
       swap_used_percent swap used %
       swap_used_stat swap used stat
       uptime     System up time
       uptime_text System up time
       wlan0      Network adapter wlan0
       wlan0_diff Network adapter wlan0 (diff)
       wlan0_ip   Network adapter wlan0 (IP)
       wlan0_ip6  Network adapter wlan0 (IP6)
       wlan0_rx   Network adapter wlan0 (RX)
       wlan0_speed Network adapter wlan0 (speed)
       wlan0_tx   Network adapter wlan0 (TX)
Attributes:
   verbose    5


Das kommt im Log mit Verbose 5:

2017.03.04 18:57:20 5: SYSMON SYS.sysmon.NUC: Set.748 SYS.sysmon.NUC ?
2017.03.04 18:57:20 5: SYSMON SYS.sysmon.NUC: Set.748 SYS.sysmon.NUC ?
2017.03.04 18:57:20 5: SYSMON SYS.sysmon.NUC: Get.666 SYS.sysmon.NUC ?
2017.03.04 18:57:23 5: SYSMON SYS.sysmon.NUC: Get.666 SYS.sysmon.NUC update
2017.03.04 18:57:23 5: SYSMON SYS.sysmon.NUC: updateReadings.1060
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: blockingCall.954 SYS.sysmon.NUC, 1
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: readPassword.3764 Read password from file
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4173 Execute '[ -d /proc/ ] && echo 1 || echo 0' by SSH
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4177 Call: 'sshpass -p 'pwd' ssh root@192.168.127.92 [ -d /proc/ ] && echo 1 || echo 0'
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4189 Result '0'
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: readPassword.3764 Read password from file
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4173 Execute 'uptime' by SSH
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4177 Call: 'sshpass -p 'pwd' ssh root@192.168.127.92 uptime'
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4191 Result undef
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: readPassword.3764 Read password from file
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4173 Execute '[ -f /sys/devices/system/cpu/kernel_max ] && echo 1 || echo 0' by SSH
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4177 Call: 'sshpass -p 'pwd' ssh root@192.168.127.92 [ -f /sys/devices/system/cpu/kernel_max ] && echo 1 || echo 0'
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4189 Result '0'
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: readPassword.3764 Read password from file
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4173 Execute 'free' by SSH
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4177 Call: 'sshpass -p 'pwd' ssh root@192.168.127.92 free'
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4191 Result undef
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: getNetworkInfo.2667 get eth0
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: readPassword.3764 Read password from file
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4173 Execute '/sbin/ifconfig eth0 2>&1' by SSH
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4177 Call: 'sshpass -p 'pwd' ssh root@192.168.127.92 /sbin/ifconfig eth0 2>&1'
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4191 Result undef
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: getNetworkInfo.2679 SYSMON_getNetworkInfo>>>>>>>>>>>>>>>>undef
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: getNetworkInfo.2667 get wlan0
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: readPassword.3764 Read password from file
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4173 Execute '/sbin/ifconfig wlan0 2>&1' by SSH
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4177 Call: 'sshpass -p 'pwd' ssh root@192.168.127.92 /sbin/ifconfig wlan0 2>&1'
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4191 Result undef
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: getNetworkInfo.2679 SYSMON_getNetworkInfo>>>>>>>>>>>>>>>>undef
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: getFileSystemInfo.2567 get root:/
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: getFileSystemInfo.2578 exec df / -m 2>/dev/null
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: readPassword.3764 Read password from file
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4173 Execute 'df / -m 2>/dev/null' by SSH
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4177 Call: 'sshpass -p 'pwd' ssh root@192.168.127.92 df / -m 2>/dev/null'
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Exec_Ssh.4191 Result undef
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: getFileSystemInfo.2583 recieved 1 lines
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: getFileSystemInfo.2603 recieved empty line
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: blockingFinish.1041 name|SYS.sysmon.NUC|ram|n/a|cpu_core_count|1|eth0_diff|not available|wlan0_diff|not available|wlan0|not available|root|Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at / (not available)|eth0|not available|swap|n/a
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: updateReadings.1060
2017.03.04 18:57:24 5: SYSMON SYS.sysmon.NUC: Set.748 SYS.sysmon.NUC ?


System ist ein Debian Stretch (Testing) ansonsten ziemlich Standard ...

Hat jemand ne Idee, was das sein könnte?

Grüße Christian
Host: Debian Buster als VM / XCP-NG
Gateways: DuoFern Stick, CUL433 Revolt, CUL MAX, HMLan, HM-USB 2, LaCrosseGateway
Devices: 12x Rademacher Rollos, 6x TX 29 DT-HT, 10x HM-CC-RT-DN, 14x MAX Fensterkontakte, Diverse HM Aktoren für Licht, Klingel, Gong, Eingangstür, ESPEasy, Sonoff mit Tasmota

volschin

Bei ssh-Zugriff mit sshpass stellen sich bei mir immer die Nackenhaare auf. [emoji1304]
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Christian Uhlmann

Zitat von: volschin am 04 März 2017, 19:28:28
Bei ssh-Zugriff mit sshpass stellen sich bei mir immer die Nackenhaare auf. [emoji1304]

Aha,
darf ich die Frage stellen, was du uns damit sagen möchtest?

Zum zum anderen wäre es nett, wenn du sagen würdest warum, bzw. was bessere Alternativen sind.

Dieses sinnlose "seinen Senf dazu geben" hat sich leider zu einer Foren Krankheit hier entwickelt.

Grüße Christian
Host: Debian Buster als VM / XCP-NG
Gateways: DuoFern Stick, CUL433 Revolt, CUL MAX, HMLan, HM-USB 2, LaCrosseGateway
Devices: 12x Rademacher Rollos, 6x TX 29 DT-HT, 10x HM-CC-RT-DN, 14x MAX Fensterkontakte, Diverse HM Aktoren für Licht, Klingel, Gong, Eingangstür, ESPEasy, Sonoff mit Tasmota

hexenmeister

Naja, was damit gemeint ist, ist schon klar. Ist ist eine potentielle Risiko, da Passwort offen gespeichert wird. Für ein passwortloses Login existiert Public-Key-Verfahren. Entsprechende Unterstützung in Sysmon dürfte jetzt nicht schwer sein einzubauen, setzt aber eine entsprechende Einrichtung an den beiden Linux-Rechner durch den Benutzer voraus.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

volschin

Weil man technisch zwischen Systemen mit Trusted Keys auf die notwendigen Systeme zugreift. Das ist gängiger Standard, ein Login mit Passwort ist dabei nicht gewünscht.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Wernieman

Wenn man im Netz nach ssh-Login suchst (auch hier im Forum, wurde es schon mehrfach durchgesprochen, das ssh keypass "böse" ist, wo es doch es doch die viel sicherer und praktisch verwendete ssh-key-Verfahren gibt.

Insofern kann ich es verstehen, daas der CVorredner etwas kurz war, dagegen fand ich folgenden Kommentar "etwas daneben":
ZitatDieses sinnlose "seinen Senf dazu geben" hat sich leider zu einer Foren Krankheit hier entwickelt.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

hexenmeister

Kein Grund zum Streiten, jeder soll wissen, was er tut ;)
Ab jetzt soll SYSMON beides unterstützen: per public key und mit sshpass. Das letztere nur für begründete Ausnahmefälle und Tests ;)
Auch ein abweichender Port soll möglich sein. Ggf. muss da remite system erstmal bekannt gemacht werden. Am einfachsten probiert man in Namen des Users (mit dessen Rechten FHEM läuft) eine SSH-Verbindung zu der entfernten Machine aufzubauen und bstätigt den Fingerprint. Dann klappt auch mit SYSMON :)

Noch TODO:
- Problem mit negativen Speicher auf manchen Maschinen
- Unterstützung für Armbian Jessie
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

devil77

Seit dem letzen Update erhalte ich im log folgenden Eintrag
cat: /sys/class/net/wlan1/speed: Das Argument ist ungültig
Vorher war er nicht vorhanden und erscheint nun aller x Minuten, so wie die Abfrage eingestellt ist.
Wie kann ich verhindern das der Eintrag das log zumüllt?

Christian Uhlmann

Zitat von: hexenmeister am 05 März 2017, 20:29:53
Kein Grund zum Streiten, jeder soll wissen, was er tut ;)
Ab jetzt soll SYSMON beides unterstützen: per public key und mit sshpass. Das letztere nur für begründete Ausnahmefälle und Tests ;)
Auch ein abweichender Port soll möglich sein. Ggf. muss da remite system erstmal bekannt gemacht werden. Am einfachsten probiert man in Namen des Users (mit dessen Rechten FHEM läuft) eine SSH-Verbindung zu der entfernten Machine aufzubauen und bstätigt den Fingerprint. Dann klappt auch mit SYSMON :)

Noch TODO:
- Problem mit negativen Speicher auf manchen Maschinen
- Unterstützung für Armbian Jessie

Hallo Alexander,

vielen Dank für die Umsetzung.
Ich habe bei mir ein Problem mit dem Port, bin mir aber nicht sicher ob mein Define richtig ist.

Raw definition:

defmod SYS.sysmon.PALADIN SYSMON ssh:fhem@192.168.127.10:222
attr SYS.sysmon.PALADIN verbose 5

setstate SYS.sysmon.PALADIN 2017-03-08 16:51:45 cpu_core_count 1
setstate SYS.sysmon.PALADIN 2017-03-08 16:51:45 eth0 unexpected format
setstate SYS.sysmon.PALADIN 2017-03-08 16:51:45 eth0_diff unexpected format
setstate SYS.sysmon.PALADIN 2017-03-08 16:51:45 ram n/a
setstate SYS.sysmon.PALADIN 2017-03-08 16:50:45 root Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at / (not available)
setstate SYS.sysmon.PALADIN 2017-03-08 16:51:45 swap n/a
setstate SYS.sysmon.PALADIN 2017-03-08 16:51:45 wlan0 unexpected format
setstate SYS.sysmon.PALADIN 2017-03-08 16:51:45 wlan0_diff unexpected format


Log mit Verbose 5:

2017.03.08 16:53:00 5: SYSMON SYS.sysmon.PALADIN: Set.748 SYS.sysmon.PALADIN ?
2017.03.08 16:53:00 5: SYSMON SYS.sysmon.PALADIN: Set.748 SYS.sysmon.PALADIN ?
2017.03.08 16:53:00 5: SYSMON SYS.sysmon.PALADIN: Get.666 SYS.sysmon.PALADIN ?
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Get.666 SYS.sysmon.PALADIN update
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: updateReadings.1060
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: blockingCall.954 SYS.sysmon.PALADIN, 1
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: readPassword.3764 Read password from file
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4177 Execute '[ -d /proc/ ] && echo 1 || echo 0' by SSH
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4184 Call: 'ssh fhem@192.168.127.10 [ -d /proc/ ] && echo 1 || echo 0'
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4199 Result '0'
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: readPassword.3764 Read password from file
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4177 Execute 'uptime' by SSH
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4184 Call: 'ssh fhem@192.168.127.10 uptime'
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4201 Result undef
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: readPassword.3764 Read password from file
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4177 Execute '[ -f /sys/devices/system/cpu/kernel_max ] && echo 1 || echo 0' by SSH
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4184 Call: 'ssh fhem@192.168.127.10 [ -f /sys/devices/system/cpu/kernel_max ] && echo 1 || echo 0'
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4199 Result '0'
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: readPassword.3764 Read password from file
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4177 Execute 'free' by SSH
2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4184 Call: 'ssh fhem@192.168.127.10 free'
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4201 Result undef
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: getNetworkInfo.2667 get eth0
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: readPassword.3764 Read password from file
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4177 Execute '/sbin/ifconfig eth0 2>&1' by SSH
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4184 Call: 'ssh fhem@192.168.127.10 /sbin/ifconfig eth0 2>&1'
'017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4199 Result 'ssh: connect to host 192.168.127.10 port 22: Connection refused
'017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: getNetworkInfo.2679 SYSMON_getNetworkInfo>>>>>>>>>>>>>>>>'ssh: connect to host 192.168.127.10 port 22: Connection refused
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: readPassword.3764 Read password from file
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4177 Execute '[ -f /sys/class/net/eth0/statistics/rx_bytes ] && echo 1 || echo 0' by SSH
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4184 Call: 'ssh fhem@192.168.127.10 [ -f /sys/class/net/eth0/statistics/rx_bytes ] && echo 1 || echo 0'
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4199 Result '0'
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: getNetworkInfo.2667 get wlan0
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: readPassword.3764 Read password from file
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4177 Execute '/sbin/ifconfig wlan0 2>&1' by SSH
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4184 Call: 'ssh fhem@192.168.127.10 /sbin/ifconfig wlan0 2>&1'
'017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4199 Result 'ssh: connect to host 192.168.127.10 port 22: Connection refused
'017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: getNetworkInfo.2679 SYSMON_getNetworkInfo>>>>>>>>>>>>>>>>'ssh: connect to host 192.168.127.10 port 22: Connection refused
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: readPassword.3764 Read password from file
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4177 Execute '[ -f /sys/class/net/wlan0/statistics/rx_bytes ] && echo 1 || echo 0' by SSH
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4184 Call: 'ssh fhem@192.168.127.10 [ -f /sys/class/net/wlan0/statistics/rx_bytes ] && echo 1 || echo 0'
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4199 Result '0'
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: getFileSystemInfo.2567 get root:/
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: getFileSystemInfo.2578 exec df / -m 2>/dev/null
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: readPassword.3764 Read password from file
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4177 Execute 'df / -m 2>/dev/null' by SSH
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4184 Call: 'ssh fhem@192.168.127.10 df / -m 2>/dev/null'
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4201 Result undef
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: getFileSystemInfo.2583 recieved 1 lines
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: getFileSystemInfo.2603 recieved empty line
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: blockingFinish.1041 name|SYS.sysmon.PALADIN|swap|n/a|eth0|unexpected format|eth0_diff|unexpected format|wlan0|unexpected format|wlan0_diff|unexpected format|root|Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at / (not available)|ram|n/a|cpu_core_count|1
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: updateReadings.1060
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Set.748 SYS.sysmon.PALADIN ?
2017.03.08 16:53:04 5: SYSMON SYS.sysmon.PALADIN: Set.748 SYS.sysmon.PALADIN ?


Für mich sieht das so aus, als ob der Port nicht richtig ermittelt wird.
Kannst du da noch mal schauen oder könnte ich noch etwas tun um ggf. einen Fehler zu finden?`
Sobald ich den Port 22 für ssh ebenfalls öffne, kommen die Daten wie gewünscht.


Danke und Grüße

Christian
Host: Debian Buster als VM / XCP-NG
Gateways: DuoFern Stick, CUL433 Revolt, CUL MAX, HMLan, HM-USB 2, LaCrosseGateway
Devices: 12x Rademacher Rollos, 6x TX 29 DT-HT, 10x HM-CC-RT-DN, 14x MAX Fensterkontakte, Diverse HM Aktoren für Licht, Klingel, Gong, Eingangstür, ESPEasy, Sonoff mit Tasmota

hexenmeister

Hallo Christian,

probiere mal bitte, ob das Befehl auch direkt von einem System zum anderen geht.

z.B. 
sshpass -p <passwort> ssh -p <port> <zielsystem> uptime

wenn die Anmeldung per public-key-autentication vorgenommen wird, dann eben so
ssh -p <port> <zielsystem> uptime

Grüße
Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Christian Uhlmann

Hi Alexander,

ich nutze public-key verfahren, befehl klappt:

fhem@home:~$ ssh -p 222 192.168.127.10 uptime
21:58:24 up 4 days,  5:04,  0 users,  load average: 0,15, 0,04, 0,01


Laut Log wird der Port nicht ermittelt und daher auch auf Port 22 connected:

   my $p_tmp = '';
   if(!defined($port)) {
     $p_tmp = ' -p '.$port.' ';
   }

   my $call = "ssh ".$p_tmp.$user."\@".$host." ".$cmd;
   SYSMON_Log ($hash, 5, "Call: '".$call."'");

so interpretiere ich zumindestens die SYSMOG_Log Ausgabe, .$call ist ja in meinem Log wie folgt:

2017.03.08 16:53:03 5: SYSMON SYS.sysmon.PALADIN: Exec_Ssh.4184 Call: 'ssh fhem@192.168.127.10 uptime'

da fehlt aus meiner Sicht der Port und das kann doch nur daran liegen, weil obiges Coding $p_tmp = '' stehen läßt und somit kein -p 222 hinzugefügt wird.
Warum das aber so ist kann ich leider auch nicht erkennen, zu wenig Perl Kentnisse.


Grüße

Christian
Host: Debian Buster als VM / XCP-NG
Gateways: DuoFern Stick, CUL433 Revolt, CUL MAX, HMLan, HM-USB 2, LaCrosseGateway
Devices: 12x Rademacher Rollos, 6x TX 29 DT-HT, 10x HM-CC-RT-DN, 14x MAX Fensterkontakte, Diverse HM Aktoren für Licht, Klingel, Gong, Eingangstür, ESPEasy, Sonoff mit Tasmota

volschin

Kommt mir von der Logik so vor, als ob das Ausrufezeichen dort nicht hingehört.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Christian Uhlmann

Zitat von: volschin am 09 März 2017, 05:07:54
Kommt mir von der Logik so vor, als ob das Ausrufezeichen dort nicht hingehört.

Hi,
das war es, habe das Ausrufezeichen entfernt und schon geht es :)
Grüße
Christian
Host: Debian Buster als VM / XCP-NG
Gateways: DuoFern Stick, CUL433 Revolt, CUL MAX, HMLan, HM-USB 2, LaCrosseGateway
Devices: 12x Rademacher Rollos, 6x TX 29 DT-HT, 10x HM-CC-RT-DN, 14x MAX Fensterkontakte, Diverse HM Aktoren für Licht, Klingel, Gong, Eingangstür, ESPEasy, Sonoff mit Tasmota