NEWS
Nextcloud Monitoring Überwachung
-
Hallo,
ich habe ein Nextclouddienst laufen. Leider gibt es bei der Nextcloud kein vernünftiges Plugin um interne Informationen zu sehen. Z.B: wer wann online ist Downloads usw.Jetzt habe ich was entdeckt bei: Administrationseinstellungen -> System. Ganz unten auf der Seite steht "Externes Überwachungsprogramm"
Hier kann man ein Link kopieren. Wenn ich diesen in die Adresszeile eingebe bekomme ich ziemlich viele Informationen aber leider nicht leserlich angezeigt.Jetzt ist die Frage an euch, ist es möglich, mir das irgendwie in eine Tabelle zu übersetzen und durch Telegramm zu verschicken wenn ich was nachsehen möchte?
Loggen z.B. in Grafana und co möchte ich nicht. Möchte quasi nur wenn ich es brauche darauf zugreifen.
Die Logig in Blockly mir das Schicken zu lassen bekomm ich irgendwie hin. Aber das davor übersteigt leider meine Grenzen.
Hat einer von euch eine Idee wie ich das machen könnte?
Ausserdem ist auch eine json ausgabe möglich, kann man anhaken (siehe Screenshot)
Bin für jede Hilfe sehr dankbar!
Beste Grüße
-
also weniger aufwand macht json. für xml benötigt man noch zusätzliche bibliotheken.
json kann man auch mit blockly verarbeiten, werte extrahieren und in eine datenbank oder datenpunkt mit historisierung schreiben
der screenshot ist allerdings kein json, sondern wieder xml
-
Hier ist die json Version.
oder so?
{ "ocs": { "meta": { "status": "ok", "statuscode": 200, "message": "OK" }, "data": { "nextcloud": { "system": { "version": "30.0.6.2", "theme": "", "enable_avatars": "yes", "enable_previews": "yes", "memcache.local": "\\OC\\Memcache\\APCu", "memcache.distributed": "none", "filelocking.enabled": "yes", "memcache.locking": "\\OC\\Memcache\\Redis", "debug": "no", "freespace": 219993133056, "cpuload": [1.99755859375, 1.8046875, 1.72509765625], "cpunum": 8, "mem_total": 12582912, "mem_free": 10222592, "swap_total": 2097152, "swap_free": 2097152 }, "storage": { "num_users": 8, "num_files": 1323221, "num_storages": 23, "num_storages_local": 1, "num_storages_home": 10, "num_storages_other": 12 }, "shares": { "num_shares": 1213, "num_shares_user": 1, "num_shares_groups": 0, "num_shares_link": 0, "num_shares_mail": 0, "num_shares_room": 179, "num_shares_link_no_password": 0, "num_fed_shares_sent": 0, "num_fed_shares_received": 0, "permissions_10_19": 179, "permissions_11_19": 1033, "permissions_0_31": 1 } }, "server": { "webserver": "nginx/1.25.5", "php": { "version": "8.2.25", "memory_limit": 4294967296, "max_execution_time": 3600, "upload_max_filesize": 128849018880, "opcache_revalidate_freq": 0, "opcache": { "opcache_enabled": true, "cache_full": false, "restart_pending": false, "restart_in_progress": false, "memory_usage": { "used_memory": 144235800, "free_memory": 124199656, "wasted_memory": 0, "current_wasted_percentage": 0 }, "interned_strings_usage": { "buffer_size": 67108864, "used_memory": 23600128, "free_memory": 43508736, "number_of_strings": 107218 }, "opcache_statistics": { "num_cached_scripts": 2810, "num_cached_keys": 5415, "max_cached_keys": 130987, "hits": 19205148, "start_time": 1740150750, "last_restart_time": 0, "oom_restarts": 0, "hash_restarts": 0, "manual_restarts": 0, "misses": 2887, "blacklist_misses": 0, "blacklist_miss_ratio": 0, "opcache_hit_rate": 99.9849698316356 }, "jit": { "enabled": true, "on": true, "kind": 5, "opt_level": 5, "opt_flags": 6, "buffer_size": 268435440, "buffer_free": 267374688 } }, "apcu": { "cache": { "num_slots": 4099, "ttl": 0, "num_hits": 1672705, "num_misses": 46394, "num_inserts": 53699, "num_entries": 1914, "expunges": 0, "start_time": 1740150749, "mem_size": 872584, "memory_type": "mmap" }, "sma": { "num_seg": 1, "seg_size": 33554312, "avail_mem": 32579192 } }, "extensions": [ "Core", "date", "libxml", "openssl", "pcre", "zlib", "filter", "hash", "json", "random", "Reflection", "SPL", "session", "standard", "sodium", "cgi-fcgi", "mysqlnd", "PDO", "xml", "apcu", "bcmath", "bz2", "calendar", "ctype", "curl", "dom", "mbstring", "FFI", "fileinfo", "ftp", "gd", "gettext", "gmp", "iconv", "igbinary", "imagick", "intl", "ldap", "exif", "mysqli", "pdo_mysql", "Phar", "posix", "readline", "redis", "shmop", "SimpleXML", "smbclient", "sockets", "sysvmsg", "sysvsem", "sysvshm", "tokenizer", "xmlreader", "xmlwriter", "xsl", "zip", "libsmbclient", "Zend OPcache" ] }, "database": { "type": "mysql", "version": "10.11.6", "size": "1228603392" } }, "activeUsers": { "last5minutes": 1, "last1hour": 1, "last24hours": 4, "last7days": 6, "last1month": 6, "last3months": 6, "last6months": 6, "lastyear": 7 } } } }
Da steht noch das man ein Token erstellen muss!? Verstehe aber nicht für was genau.
Und wie kann ich das jetzt bewerkstelligen? Vielleicht hat jemand ein Blockly Beispiel für mich?
-
@elektroniker86 sagte in Nextcloud Monitoring Überwachung:
Da steht noch das man ein Token erstellen muss!? Verstehe aber nicht für was genau.
Das wäre ein Zugriffstoken, sonst könnte ja jeder ohne Anmeldung die Daten abrufen.
Erklärung und Beispiel mit Curl findet man z.B. hier (weiter unten auch auf Deutsch):
https://help.nextcloud.com/t/howto-use-serverinfo-with-curl/173360Und mit Blockly wird es nicht gehen weil - man darf mich gerne korrigieren ( @haus-automatisierung ) man im Blockly-Baustein keinen Header mit übergeben kann.
Da müsste man sich in Blockly eine JavaScript-Funktion für erstellen denke ich. -
ich denke er braucht kein token.
er hat den ja auch beim browserabruf nicht eingegeben.token ist optional um ggfs den zugriff abzusichern.
um mit blockly die werte abzurufen kannst du mal hier schauen,
da ist es ein ähnlicher fall. mit httpget die daten abrufen und dann
aus irgendeiner unterstruktur mittels blockly/jsonata dann drauf zugreifen und in einen datenpunkt schreibenhttps://forum.iobroker.net/topic/49666/json-in-objekt-datenpunkt-umwandeln
im zweifel würde sich aber auch bei httpget
ein header mitgeben lassen. aber wie gesagt, braucht er nicht
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httpget -
@oliverio sagte in Nextcloud Monitoring Überwachung:
ich denke er braucht kein token.
er hat den ja auch beim browserabruf nicht eingegeben.Aber natürlich braucht es ein Token:
Er war/ist schlicht angemeldet.
-
ja stimmt wahrscheinlich
dann kann er blockly nicht nutzen, sondern muss httpget in der
javascriptversion nutzenanhand des beispiels in der verlinkten doku müsste der befehl dann so aussehen
link und token muss natürlich individuell angepasst werdenresponse.data sollte dann das json enthalten
httpGet('https://your.nextcloud.com/ocs/v2.php/apps/serverinfo/api/v1/info', {headers: {'NC-Token': 'f65578a77feb8ba2ce584f15f50718fa2a4a94465748fb433a4f1b475a11acc8'}},(err, response) => { if (!err) { console.log(response.statusCode); console.log(response.data); } else { console.error(err); } });
-
Ja stimmt, ich war angemeldet, habe ja den Link aus der Weboberfläche rauskopiert.
Puh, das ist ja doof, das ich kein Blockly nutzen kann....
Javascript übersteigt leider meine Kenntnisse. Bin nur Elektroniker.Meine Idee war es, ein Datenpunkt anzulegen womit ich ein Blockly triggere, wo mir dann per Telegramm die ganzen Infos als Tabelle oder zumindest gut leserlich schickt, wenn ich was nachschauen möchte.
Wäre dann vielleicht was, für ein neuen ioB Adapter ?
Naja, wenn jemand Lust und Zeit hat kann jemand eventuell mal ein Script zusammentippen. Vielleicht bin ich ja nicht der einzige, der dafür Interesse hat?
Nun trotzdem Danke für die Infos
-
@elektroniker86
Also ich würde das - wie mittlerweile mein komplettes Monitoring - mit Zabbix machen.
Da gibt's sogar gleich das passende Template: -
Danke für den Tipp! Werde ich mir mal anschauen.