NEWS
[Vorlage]-Script Prozess- und Swap-HTML Tabelle für VIS (nur Linux)
-
durch eigene erfahrungen mit der suche nach memory und swap problemen habe ich ein script mit blockly entwickelt, welches u.a. tabellen ausgibt, um folgendes sichtbar zu machen
- benutzt mein system den swap speicher
- wieviel freien speicher habe ich
- welche prozesse erzeugen den swap (tabelle)
- wieviel speicher verbrauchen die einzelnen prozesse in meinem linuxsystem (tabelle)
- wieviel festplattenplatz habe ich noch
einige der werte bekommt man auch über andere adapter
beispiel für vis:
wird mit dem html widget angezeigt und html-binding.
- gelbe pfeile tabellen
- oranger pfeil: filter eingabe für prozess-anzeige
- blauer pfeil: schalter für sofortige ausführung
die datenpunkte werden unter javascript.0.GETPROCESS automatisch angelegt.
WICHTIG:
man muss mit dem terminal das programm smem installieren
sudo apt-get install smem
datenpunkte:
- Swap Size -> wieviel wird geswappt - zahl (in MB)
- SwapAlarm -> es wird geswappt - boolean
- SwapTable -> tabelle mit "swappenden prozessen - text als html (Total anzeige in kB)
- MemoryFree -> wieviel freier speicher ist noch da - zahl (in MB)
- MemoryAlarm -> kein freier speicher - boolean
- ProcessTable -> tabelle mit allen laufenden prozessen (swap,memory,pid,user,prozess) - text als html
- GetProcessFilter -> simple möglichkeit, die anzuzeigenden prozesse zu filter
- GetProcessJetzt -> Schalter für sofortige Ausführung
- DiskTable -> Anzeige der Diskbelegung/Platenplatz/mountpoints (tmpfs ist gefiltert!)
DiskSpaceAlarm -> alarm bei über 90% - boolean
DiskSpace -> der belegte DiskSpace der root-platte (in prozent)
standardmäßig wird alle 5 minuten abgefragt - kann natürlich individuell angeglichen werden (cron im script).
blockly-Script: GETPROCESS
Version 1.3
swap-process-tabelle-script.txtwidgets:
widget-swap-tabelle.txt
widget-mem-tabelle.txt
diskspace-widget
widget-disk-tabelle.txtfür farblich orientierte kann man auch folgendes unter css eingeben;
.getprocessswap { color: yellow; } .getprocessmem { color: orange; } .getprocesstime { color: #00BFFF; } .getprocessswap1 { color: green; }
-
update 1.1 - bessere tabellen übersicht
kann man gut zum beobachten nach js-controller update gebrauchen
-
neues update 1.2:
- jetzt können die farben eingestellt werden für die tabellen (css in der vis)
- es gibt einen schalter für das sofortige ausführen um die tabellen neu zu erstellen
- man kann einen filter eingeben, um nur bestimmte processe anzuzeigen
-
das sieht doch mal vielversprechend aus, bei gelegenheit werd ich das mal testen, nachdem ich festgestellt habe, das mein swap mehr oder weniger zu sehr beansprucht wird.
Gruss -
hi @crunchip
testen wäre gut - kann feedback gebrauchen- falls dir noch eine tabelle einfallen würde, lass hören
weisst du zufällig, warum der speicher verbrauch vom javascript adapter immer höher wird - heute morgen 60MB und jetzt ist er bei 215
-
@liv-in-sky habs noch nicht installiert, meiner liegt generell bei rund 240MB
-
@crunchip sorry- war gestern zu spät - meiner liegt auch bei ca. 250 - hab da was verwechselt
-
neues update 1.3: mit diskspace
-
probleme mit fixer.sh script:
wurde das fixer.sh script angewendet funktioniert dieses script nicht - nach dem fixer-script-durchlauf, wird der benutzte exec() befehl mit dem user "iobroker" ausgeführt. dieser user hat aber nicht genügend rechte . damit dieses script hier funktioniert, müssen folgende einstellungen vorgenommen werden.
- a) es muss unter /etc/sudoers.h eine datei angelegt werden
- b) es muss ein bash-script angelegt werden
- c) es muss eine andere version des scripts verwendet werden
**zu a **
terminal: unter dem ordner /etc/sudoers.d eine dateianlegen z.b. getswap - damit bekommt der user iobroker genügend rechteiobroker ALL=(iobroker) NOPASSWD: /usr/bin/smem iobroker ALL=(iobroker) NOPASSWD: /usr/local/bin/swapfind
zu b
terminal: ein script anlegen unter /usr/local/bin mit dem namen "swapfind" - sichern und ausführbar machen (chmod +x swapfind)#!/bin/bash for proc in /proc/*; do cat $proc/smaps 2>/dev/null | awk '/Swap/{swap+=$2}END{print swap"\t'`readl$ exit
**zu c **
swap-process-tabelle-script-fixer.txt
sorry - ist etwas kompliziert
-
habe noch zusätzlich zwei blockly's für interessierte - bei mir gab es probleme mit zu großen system-logs - platte war plötzlich voll. im script wird der mail-adapter für den alarm genutzt - kann man auch ändern (z.b. telegram, alexa).
nummer eins:
- ermittelt die größe des iobroker log files - der datenpunkt wird javascript.0.GETPROCESS.LOGSizeIOBroker angelegt
nummer zwei:
- ermittelt die größe des /var/log ordners - der datenpunkt wird javascript.0.GETPROCESS.LOGSizeVAR
auch hier muss mit sudo -u root gearbeitet werden, da der iobroker user (fixer script) nicht genügend rechte besitzt - daher folgendes in das iobroker-user-sudoers.d - file schreiben bzw hinzufügen
iobroker ALL=(ALL) NOPASSWD: /usr/bin/du
zum import:
log-groesse-blockly.txtdiese befehle können auch im terminal aufgerufen werden - zur überprüfung - falls man kein script möchte
die größe - wann alarm ausgelöst wird- sollte angeglichen werden
es wird nur ein mail-alarm gesendet
findet aktuelles logfile vom iobroker und gibt die größe aus (kB): ls -l $(find /opt/iobroker/log -type f -cmin -5 ) | awk '{ print $5 }' findet aktuelle größe des /var/log ordners und gibt die größe aus (MB): du -h /var/log | tac | awk 'NR==1 {print $1}' | sed 's/.$//'