Pydash : la supervision de site web sur Debian

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.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Philippe PIERRE

A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.

    philippe-pierre a publié 17 articles sur IT-Connect.See all posts by philippe-pierre

    8 réactions sur “Pydash : la supervision de site web sur Debian

    • 24/10/2017 à 10:15
      Permalink

      Hello,

      le « sudo firefox » me choque ! 🙂

      Répondre
      • 24/10/2017 à 21:55
        Permalink

        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

        Répondre
    • 24/10/2017 à 17:25
      Permalink

      $ sudo python manage.py runserver

      Aie la tuile ! Mettre en place un serveur apache et utiliser le serveur de développement Django, quelle affaire !!

      Répondre
      • 24/10/2017 à 21:58
        Permalink

        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…

        Répondre
    • 25/10/2017 à 15:57
      Permalink

      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 !

      Répondre
      • 30/10/2017 à 12:52
        Permalink

        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 !

        Répondre
    • 09/11/2017 à 15:50
      Permalink

      ouch la clé « aléatoire » faite à partir d’un hash de date. J’espère que ça ne doit pas être trop aléatoire…

      Répondre
      • 10/11/2017 à 19:25
        Permalink

        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.

        Répondre

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *