Pydash : la supervision de site web sur Debian
Sommaire
I. Présentation
Comme pour les autres catégories d’applications, il est également possible d’activer un logiciel de surveillance d’un site Web (qu’il s’agisse d’un projet Wiki ou d’un blog en WordPress), en utilisant, par exemple pydash qui permet d’effectuer du monitoring Web, en temps réel. Les métriques sont stockées en base de données et peuvent alors être analysés à postériori, au besoin. Cet outil est développé, comme on peut le deviner, en Python et permet d’avoir un aperçu global de la machine et du site à superviser.
Pour se faire, pydash s’appuie sur Python d’un côté et WSGI de l’autre (ou du moins : un Framework équivalent, comme Django, offrant une interface via un module mod_wsgi (si l’on utilise Apache). Ce module d’Apache peut héberger n’importe quelle application WSGI Python, y compris le Framework Django. Ce dernier tourne sur n’importe quelle version d’Apache supportant le module mod_wsgi.
Pour ce tutoriel, on installera pydash sur un serveur Debian 8. Mais, l’outil est compatible avec les systèmes d’exploitation suivants et dans les versions récentes :
- Centos/Fedora
- Ubuntu/Debian
- Raspbian
- Arch Linux
II. Installation des prérequis
On doit installer un certain nombre de packages prérequis avant de pouvoir installer pydash. A cet effet, on doit notamment installer les programmes suivants :
# apt-get update # apt-get install sudo # adduser pydash (exécuter passwd pydash pour initialiser le mot de passe) # adduser pydash sudo (pour ajouter pydash en tant que sudo) # su - pydash $ sudo apt-get install git python-pip apache2 libapache2-mod-wsgi
III. Installation de pydash
Une fois que c’est fait, on peut alors rapatrier les sources officielles du projet depuis le dépôt git suivant :
$ cd /var/www $ sudo git clone https://github.com/k3oni/pydash $ cd /var/www/pydash/pydash
On peut alors se placer dans le répertoire pydash et modifier la valeur SECRET_KEY contenue dans le fichier de configuration setting.py.
Pour cela, on va exécuter la commande suivante afin de générer une clé aléatoire dans le fichier de configuration de l’outil avant d’éditer le fichier en question :
On doit installer l’application Pydash et son Framework Django via la commande ci-dessous :
$ cd pydash; sudo pip install –r requirements.txt
IV. Installation et configuration de la base de données
L’étape suivante préconise alors d’initialiser la base de données interne, propre au stockage des métriques récoltées durant la phase d’analyse de l’outil :
$ sudo ./manage.py syncdb
Cela permet d’initialiser le script d’installation de la base interne et de renseigner les champs suivants :
On doit alors répondre aux différentes questions devant permettre ainsi de générer le compte d’administration admin et son mot de passe associé. On doit alors remonter d’un cran dans l’arborescence et modifier les droits :
$ cd .. ; su # chown –R www-data:www-data pydash
V. Configuration du serveur Web
Enfin, on peut créer le fichier /etc/apache2/sites-enabled/pydash.conf et y ajouter les lignes suivantes :
Il ne faut pas oublier d’activer ce nouveau service web et de recharger la configuration, en exécutant la commande suivante (si le fichier de configuration du site a été généré dans le sous-répertoire sites-available):
# a2ensite pydash.conf # chown –R www-data:www-data /etc/apache2
On peut alors régler le port pour lequel on souhaite établir l’écoute du site PyDash, en éditant le fichier /etc/apache2/ports.conf et dans lequel on peut positionner le port d’écoute:
Listen 80 Listen 8080
REMARQUE: il faut également modifier le port d’écoute du VirtualHost au niveau de la déclaration du site pydash.conf:
On doit alors arrêter et redémarrer le service Apache pour prendre en compte ce nouveau paramétrage:
$ sudo systemctl restart apache2
VI. Démarrage du serveur pydash
Lorsque c’est fait, on peut alors démarrer l’application de deux façons différentes :
- Directement par l’url au travers du navigateur
- Par l’initialisation du serveur Django
Via le serveur Web, au travers de l’url suivante : http://Debian.mydmn.org:8080 il suffit de l’exécuter via Firefox, par exemple :
Sinon, il suffit d’exécuter via le serveur, au travers du Framework Django la commande suivante :
$ sudo python manage.py runserver
Cette dernière commande va déclencher alors le processus d’initialisation de l’environnement WebUI et afficher également l’url (http://Debian.mydmn.org:8080, ou le port d’écoute précédemment déclaré, si celui-ci est différent du port 8000, par défaut, d’après l’exemple ci-dessous), sur laquelle l’utilisateur peut alors suivre l’évolution en temps réel de son environnement système et de ses sites web :
VII. Le client pydash
Le client s’affiche alors au travers du navigateur Firefox (ou autre, selon les distributions et les dispositions du serveur).On peut alors constater que l’application propose de se connecter à l’aide du compte d’administration précédemment créé:
Une fois connecté, les métriques s’affichent alors d’eux-mêmes et permettent alors de visualiser non seulement les paramètres du système : disque, partition, version, release, etc. mais également l’utilisation de la mémoire et des ressources pour l’affichage des applications Web ainsi que le trafic Internet :
Article actualisé le 29 octobre 2017.
Hello,
le « sudo firefox » me choque ! 🙂
Bonsoir, Je suis d’accord. La première fois ça surprend. Je l’interprète comme un moyen d’annoncer que les métriques que l’on va manipuler n’appartiennent pas au compte pydash mais à root (ou du moins à son framework Django).
Cordialement
$ sudo python manage.py runserver
Aie la tuile ! Mettre en place un serveur apache et utiliser le serveur de développement Django, quelle affaire !!
Bonsoir, Là aussi d’accord avec vous. Mais avec l’ère du Big Data, tous les moyens sont bons pour faire de la présentation d’information en GRAND :-). Ceci dit, à part l’attrait des métriques coloriées, je pense qu’il y a aussi plus simple pour formater des rapports concis: les outils de supervision ne manquent pas et les logiciels de présentation de tout poil non plus…
Bonjour,
Chouette post pour découvrir ce logiciel que je ne connaissais pas.
Malheureusement, il est écrit bien mal ou/et trop rapidement.
Trop de bouts de code de la doc collés bout à bout : on ne sais plus si on doit les lancer en tant que root, pydash ou www-data (par exemple). Il est indiqué comment ajouter pydash à sudo mais pas comment ajouter pydash (même si bon, on le sait à force). etc…
Enfin, il est faux : soit on lance le serveur via django soit via wsgi mais pas les 2 (enfin, on peut, mais c’est pas utile.)
Bref, autant faire une présentation du logiciel puis ajouter une traduction de la documentation officiel ou un lien y menant plutôt que de déformer les exemples du repo.
Enfin, inutile d’utiliser firefox en sudo, c’est quand même dangereux !
Bonjour,
Je tenais à vous féliciter pour vos efforts sur la refonte de votre article suite à mon commentaire.
Il est maintenant beaucoup plus précis, plus sécurisé et apporte un vrai plus par rapport à la documentation !
Encore désolé pour le ton un peu rude de mon précédent commentaire ; je ne pensais pas qu’il serait publié mais espérais qu’il fasse bouger les choses. Les 2 ont été réalisé 🙂
Merci !
ouch la clé « aléatoire » faite à partir d’un hash de date. J’espère que ça ne doit pas être trop aléatoire…
Bonsoir,
Bon j’ai pris une date pour créer une chaîne aléatoire. C’est sûr c’est pas le mieux (mais ce n’est pas le pire non plus). Cela me fait penser que je pourrais écrire un tutoriel sur les différentes manières de générer des chaînes aléatoires: du plus simple au plus complexe.