Préparation CCF E5.2 : Supervision de salles

Ce système sera utilisé dans le cadre de l’épreuve de CCF E5.2.

Présentation

Le système « Supervision de salles » permet un affichage de l’état de salles équipées de sonde ESP32-Weather.

Ce système est composé :

  • de sondes ESP32-Weather communicant en WiFi ;
  • d’un serveur Web Apache intégrant l’application PHP monitoring ;
  • d’un réseau cablé Ethernet 100BASET ;
  • d’un switch Ethernet et d’un routeur WiFi ;
  • de postes clients Web (PC, tablette, …).

La sonde ESP32-Weather est une carte construite autour d’un ESP32 et équipée d’un capteur d’éclairement lumineux TSL 2591, d’un capteur DHT22 de température et d’humidité et d’une Led bicolore. Les mesures sont affichées périodiquement sur l’écran OLED de la carte.

Le carte embarque aussi un serveur TCP multi-clients via un réseau WiFi. Les clients connectés reçevront périodiquement les mesures de la sonde ainsi que l’état de la Led bicolore. Ils peuvent aussi envoyer une requête pour commander la Led.

La configuration du WiFi se fait par une interface Web :

En utilisant un navigateur Web, on accède à l’application à partir de l’URL : Lien : http://<serveur>/monitoring/.

On sélectionne la salle à superviser :

L’état de la salle est ensuite affichée dans le navigateur :

Contraintes d’environnement

Ressource Version
OS GNU Linux (Ubuntu 16.04 LTS minimum)
API HTML5/CSS, jQuery, >= PHP 5

Manuel d’installation sur le serveur (PC)

Télécharger et installer le paquet monitoring.deb :

$ wget -c http://tvaira.free.fr/bts-sn/activites/preparation-ccf-e52/installateurs/monitoring/monitoring.deb
$ sudo dpkg -i ./monitoring.deb

# Si besoin :
$ sudo apt -f install

Remarque : Il vous faudra redémarrer le serveur Web. Les bases de données MySQL et SQLite n’ont pas été installés. Vous pouvez le faire manuellement en suivant cette activité.

Vérifications post-installation :

$ cd /var/www/html
$ ls -l
drwxrwxr-x 7 www-data   www-data  4096 oct.  25 13:51 monitoring

$ cd /var/www/html/monitoring
$ ls -l
drwxrwxr-x 2 www-data www-data 4,0K oct.  23 17:38 fonts/
drwxrwxr-x 2 www-data www-data 4,0K oct.  25 14:06 include/
-rw-r--r-- 1 www-data www-data  22K oct.  25 13:43 index.php
drwxr-xr-x 4 www-data www-data 4,0K oct.  24 18:21 jquery-ui/
drwxrwxr-x 2 www-data www-data 4,0K oct.  24 10:11 js/
-rw-r--r-- 1 www-data www-data  20K oct.  24 11:51 monitoring
-rw-r--r-- 1 www-data www-data    0 oct.  25 14:40 monitoring.log
-rw-r--r-- 1 www-data www-data 6,0K oct.  25 10:50 monitoring.php
-rw-r--r-- 1 www-data www-data 2,6K oct.  25 13:51 salles.php
drwxrwxr-x 2 www-data www-data 4,0K oct.  24 10:11 sql/

$ cat include/config.inc.php 
...

$ apache2 -v
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2019-08-26T13:41:23

$ systemctl status apache2
apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           apache2-systemd.conf
   Active: active (running) since Thu 2019-10-24 09:09:02 CEST; 1 day 5h ago
 Main PID: 24291 (apache2)

$ systemctl status ufw

$ sudo ufw status verbose
État : inactif

$ sudo ufw app list
Applications disponibles :
  Apache
  Apache Full
  Apache Secure

Les paquets nécessaires sont :

$ sudo apt-get install apache2 libapache2-mod-php7.2
$ sudo apt-get install mysql-server php7.2-mysql
$ sudo apt-get install sqlite3 php7.2-sqlite3

L’application gère ses paramètres de configuration à partir d’un fichier config.inc.php :

<?php

define("HOME_PATH", "/var/www/html/monitoring/");

$config['nom'] = 'MONITORING';
$config['description'] = 'Surpervision de salles';
$config['signature'] = '©&nbsp;2019&nbsp;v0.1&nbsp;La Salle Avignon';
$config['charset'] = 'utf-8';
$config['refresh'] = 10000; // en ms
$config['logfile'] = HOME_PATH."monitoring.log";
$config['bd'] = "array"; // Choix possible : "sqlite" ou "mysql" ou "array"
$config['dbname'] = "monitoring"; // pour "sqlite" ou "mysql"
$config['host'] = "localhost"; // seulement pour "mysql"
$config['username'] = "root"; // seulement pour "mysql"
$config['passwd'] = "password"; // seulement pour "mysql"

// Si $config['bd'] == "array"
$config['salles'] = array (
        0 => array('idSalle' => 1,'nom' => "B20",'description' => "salle BTS SN",'ip' => "192.168.52.30",'port' => 5000, 'etat' => 1),
        1 => array('idSalle' => 2,'nom' => "B22",'description' => "salle BTS SN",'ip' => "192.168.52.31",'port' => 5000,'etat' => 1),
        2 => array('idSalle' => 3,'nom' => "C12",'description' => "salle",'ip' => "192.168.52.34",'port' => 5000,'etat' => 1)
);

?>

Le fichier config.inc.php est stocké dans /var/www/html/monotoring/include.

Pour désinstaller le paquet, il suffit de faire :

$ sudo dpkg -P monitoring

Serveurs Apache et MySQL

Un pare-feu est installé en configuration close-config. L’administration du serveur se fait via ssh.

Une tâche cron archive les logs d’une semaine chaque dimanche à 23h59.

Manuel d’utilisation

Utiliser un client web (navigateur) et accéder au site web du système Supervision de salles.

Diagnostic

Les procédures de diagnostic sont décrites dans ce document. Le fichier de journalisation (log) de l’application se situe dans le répertoire /var/www/html/monotoring/.

$ sudo tail -f /var/www/html/monotoring/monitoring.log

Il est possible d’effectuer des tests de communications avec les sondes installées : http://<serveur>/monitoring/maintenance.php

Configuration

La configuration du système installé est décrite dans ce document.

Activités

Retour au sommaire