Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Vorlage]-Script Prozess- und Swap-HTML Tabelle für VIS (nur Linux)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Vorlage]-Script Prozess- und Swap-HTML Tabelle für VIS (nur Linux)

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky last edited by liv-in-sky

      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.
      Image 5.png

      • gelbe pfeile tabellen
      • oranger pfeil: filter eingabe für prozess-anzeige
      • blauer pfeil: schalter für sofortige ausführung
        Image 2.png

      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.txt

      widgets:
      widget-swap-tabelle.txt
      widget-mem-tabelle.txt
      diskspace-widget
      widget-disk-tabelle.txt

      für farblich orientierte kann man auch folgendes unter css eingeben;

      
      .getprocessswap {
          color: yellow;
      }
      
      .getprocessmem {
          color: orange;
      }
      
      .getprocesstime {
          color: #00BFFF;
      }
      .getprocessswap1 {
          color: green;
      }
      
      1 Reply Last reply Reply Quote 2
      • liv-in-sky
        liv-in-sky last edited by liv-in-sky

        update 1.1 - bessere tabellen übersicht

        kann man gut zum beobachten nach js-controller update gebrauchen

        1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky last edited by liv-in-sky

          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

          Image 5.png

          1 Reply Last reply Reply Quote 0
          • crunchip
            crunchip Forum Testing Most Active last edited by

            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

            liv-in-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @crunchip last edited by

              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

              crunchip 1 Reply Last reply Reply Quote 0
              • crunchip
                crunchip Forum Testing Most Active @liv-in-sky last edited by

                @liv-in-sky habs noch nicht installiert, meiner liegt generell bei rund 240MB

                liv-in-sky 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @crunchip last edited by

                  @crunchip sorry- war gestern zu spät - meiner liegt auch bei ca. 250 - hab da was verwechselt

                  1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky last edited by liv-in-sky

                    neues update 1.3: mit diskspace

                    Image 2.png

                    1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky last edited by liv-in-sky

                      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 rechte

                      iobroker 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

                      1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky last edited by

                        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.txt

                        diese 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/.$//'
                        
                        

                        Image 1.png

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        926
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        blockly fehlersuche linux memory prozesse speicher swap
                        2
                        10
                        940
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo