Voici un petit outil de supervision, créé par Nicolargo dont voici le lien du blog : blog de nicolargo. Cet outil s'appelle Glances, et permet surveiller son système en mode console depuis un terminal. Cet outil est développé en python et utilise différentes librairies python, notamment psutil qui récupère les informations systèmes de la raspberry pi.
Les différentes statistiques sont classées et visibles grâce à différentes couleurs :
- VERT : la statistique est OK
- BLEU : la statistique est à surveiller
- VIOLET : la statistique est en alerte
- ROUGE : la statistique est critique
De nombreux raccourci clavier permettent d'activer ou désactiver différentes fonctions, de trier certaines statistiques, etc ...
Voici un petit screenshot de cet utilitaire :
Deux nouveaux paquets sont à installer dans le dossier package de buildroot :
# mkdir -p BUILDROOT_PATH/package/python-psutil # mkdir -p BUILDROOT_PATH/package/glances
Python-psutil
Le dossier python-psutil contient le fichier de configuration et son makefile :
# ls -al BUILDROOT_PATH/package/python-psutil total 108 drwxr-xr-x 2 sinseman44 sinseman44 4096 2013-01-05 23:23 ./ drwxr-xr-x 553 sinseman44 sinseman44 77824 2013-01-06 18:45 ../ -rw-r--r-- 1 sinseman44 sinseman44 469 2013-01-05 11:09 Config.in -rw-r--r-- 1 sinseman44 sinseman44 1136 2013-01-05 23:23 python-psutil.mk
Config.in :
config BR2_PACKAGE_PYTHON_PSUTIL bool "python-psutil" depends on BR2_PACKAGE_PYTHON help psutil is a module providing an interface for retrieving information on all running processes and system utilization (CPU, memory, disks, network, users) in a portable way by using Python, implementing many functionalities offered by command line tools such as (ps, top, df, kill, free, lsof, netstat, ifconfig, nice, etc ...) http://code.google.com/p/psutil
python-psutil.mk :
############################################################# # # python-psutil # ############################################################# PYTHON_PSUTIL_VERSION = 0.6.1 PYTHON_PSUTIL_SOURCE = psutil-$(PYTHON_PSUTIL_VERSION).tar.gz PYTHON_PSUTIL_SITE = http://psutil.googlecode.com/files PYTHON_PSUTIL_DEPENDENCIES = python define PYTHON_PSUTIL_BUILD_CMDS (cd $(@D); $(HOST_DIR)/usr/bin/python setup.py build_py) (cd $(@D); \ PYTHONXCPREFIX="$(STAGING_DIR)/usr/" \ CC="$(TARGET_CC) -pthread" \ LDSHARED="$(TARGET_CC) -pthread -shared -Wl,-O1,--sort-common,--as-needed" \ CFLAGS="-fno-strict-aliasing -I$(STAGING_DIR)/usr/include/python2.7 $(CFLAGS)" \ LDFLAGS="-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib $(LDFLAGS)" \ "$(HOST_DIR)"/usr/bin/python setup.py build_ext \ --include-dirs="$(STAGING_DIR)"/usr/include \ --library-dirs="$(STAGING_DIR)"/usr/lib) endef define PYTHON_PSUTIL_INSTALL_TARGET_CMDS (cd $(@D); PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \ $(HOST_DIR)/usr/bin/python setup.py install --prefix=$(TARGET_DIR)/usr) endef $(eval $(generic-package))
Glances
Le dossier glances contient le fichier de configuration et son makefile :
# ls -al BUILDROOT_PATH/package/glances total 108 drwxr-xr-x 2 sinseman44 sinseman44 4096 2013-01-06 18:43 ./ drwxr-xr-x 553 sinseman44 sinseman44 77824 2013-01-06 18:45 ../ -rw-r--r-- 1 sinseman44 sinseman44 244 2013-01-06 18:38 Config.in -rw-r--r-- 1 sinseman44 sinseman44 1101 2013-01-06 18:43 glances.mk
Config.in :
config BR2_PACKAGE_GLANCES bool "glances" depends on BR2_PACKAGE_PYTHON_PSUTIL depends on BR2_PACKAGE_PYTHON_SETUPTOOLS help Glances is a CLI curses based monitoring tool for GNU/Linux and BSD OS http://nicolargo.github.com/glances
glances.mk :
############################################################# # # glances # ############################################################# GLANCES_VERSION = ebf8cf92d2520b2d5f815e6531b1a628f1e0dd6f GLANCES_SITE_METHOD = git GLANCES_SITE = https://github.com/nicolargo/glances.git GLANCES_DEPENDENCIES = python define GLANCES_BUILD_CMDS (cd $(@D); $(HOST_DIR)/usr/bin/python setup.py build_py) (cd $(@D); \ PYTHONXCPREFIX="$(STAGING_DIR)/usr/" \ CC="$(TARGET_CC) -pthread" \ LDSHARED="$(TARGET_CC) -pthread -shared -Wl,-O1,--sort-common,--as-needed" \ CFLAGS="-fno-strict-aliasing -I$(STAGING_DIR)/usr/include/python2.7 $(CFLAGS)" \ LDFLAGS="-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib $(LDFLAGS)" \ "$(HOST_DIR)"/usr/bin/python setup.py build_ext \ --include-dirs="$(STAGING_DIR)"/usr/include \ --library-dirs="$(STAGING_DIR)"/usr/lib) endef define GLANCES_INSTALL_TARGET_CMDS (cd $(@D); PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \ $(HOST_DIR)/usr/bin/python setup.py install --prefix=$(TARGET_DIR)/usr) endef $(eval $(generic-package))
Il faut ensuite modifier le fichier de configuration général pour l'intégrer à buildroot :
# vim BUILDROOT_PATH/package/Config.in 270 if BR2_PACKAGE_PYTHON 271 menu "external python modules" 272 source "package/python-dpkt/Config.in" 273 source "package/python-id3/Config.in" 274 source "package/python-mad/Config.in" 275 source "package/python-netifaces/Config.in" 276 source "package/python-nfc/Config.in" 277 source "package/python-pygame/Config.in" 278 source "package/python-serial/Config.in" 279 source "package/python-setuptools/Config.in" 280 source "package/python-cheetah/Config.in" 281 source "package/python-openssl/Config.in" 282 source "package/python-sqlite/Config.in" 283 source "package/python-yenc/Config.in" 284 source "package/python-cherrypy/Config.in" 285 source "package/python-psutil/Config.in" 286 source "package/glances/Config.in" 287 endmenu 288 endif 289 source "package/ruby/Config.in" 290 source "package/tcl/Config.in" 291 endmenu
Une fois les modifications effectuées, selectionner l'utilitaire dans la section Interpreter languages and scripting -> external python modules, à l'aide de la commande :
# make menuconfig
Compilation de l'utilitaire et intégration de celui-ci au système de fichiers :
# make
Utilisation
l'option "-t" permet de choisir le temps de rafraîchissement (en seconde) qui est par défaut de 1 seconde.
# python /usr/bin/glances -t 5
Aucun commentaire:
Enregistrer un commentaire