Christophe Nowicki

January 13, 2011

Suivi de la consommation d’eau et du bon fonctionnement la climatisation

Voici un exemple d’installation permettant de suivre sa consommation d’eau et recevoir des notifications lors d’un problème avec le circuit de climatisation.

Problématique

Lorsque le système de climatisation d’une salle serveur s’arrête alors la température monte dangereusement, et après avoir perdu quelques routeurs coûtants plusieurs milliers d’euros ;-), nous avons décidé d’agir et mettre en place un système de surveillance.

N’ayant pas trouvé de système / solution comparable dans le commerce.
Nous avons donc décidé de suivre les conseils de mon cousin Piotr Adamski. ;-)

Solution

Nous avons donc mis en place la solution suivante :

Composants

Les composants matériels suivants sont nécessaire :

L’ensemble des composants sont disponibles en France, chez Planet Domotique et sont produits par Embedded DATA Systems.

Pour la partie logiciel vous avez plusieurs choix possibles pour :

  • Faire des graphiques de la consommation d’eau à l’aide du protocole SNMP avec Munin ou Cacti ;
  • Surveiller l’écoulement de l’eau à l’aide de Nagios ou Monit ;

Budget

  • 40 euros TTC pour le compteur d’eau ;
  • 56 euros TTC pour le compteur d’impulsion ;
  • 130 euros TTC pour le serveur Ethernet / 1-wire ;
  • 100-200 euros TTC pour l’installation du compteur par un plombier ;

Total : de 326 à 426 euros TTC

Photos du montage

Voici quelques photos du montage en action :

Surveillance avec Monit

Le script de surveillance pour Monit est disponible sur github :

Simple water watchdog script for OW-SERVER / DS2423 and Monit

Il se lance via monit de la manière suivante :

check process water_watchdog with pidfile water_watchdog.pid
    	start program  = water_watchdog

check file water_watchdog.status with path water_watchdog.status
	ignore match OK
	if match ^KO then alert

Il faut ajouter le chemin absolut aux noms de fichiers.

Le script de surveillance fonctionne sur le principe suivant :

Un lanceur de deamon water_watchdog, lance le script water_watchdog.pl et le surveille en permanence.

Celui-ci interroge toutes les 60 secondes la compteur d’eau et vérifie que la quantité d’eau consommée a bien augmentée dans l’intervalle.

Écrit le résultat dans le fichier water_watchdog.status qui est surveillé par monit.

En cas de coupure d’eau, le nombre de litres d’eau consommée n’évolue pas et une alerte monit est lancée.

Le système est très fiable, mais il est nécessaire de le paramétrer en fonction du débit de votre installation.
Voici ma configuration pour 10 000 l/j :

  • FLOW_ALERT_LOWER_LIMIT = 1
  • RATE = 60

Conclusion

Le script fonctionne en production depuis plusieurs semaines. Il permet d’intervenir très rapidement en cas de coupure et donc de sauver la vie de quelques serveurs ;-)

Références

Filed under: Hardware,Home automation — Tags:, , , , — cscm @ 10:38

December 8, 2009

Capteur de dioxyde de carbone pour réseau 1-wire

Après la lecture de plusieurs livres de Jean-Marc Jancovici (merci Nicolas ;-) ),
je me suis intéressé à la concentration de dioxyde de carbone dans l’air.
En effet, cette concentration afflue directement sur le climat de la planète.
Je me suis donc mis à la recherche d’un capteur de CO2 abordable pour ma station météo.

La recherche du capteur

co2 sensor Mes critères pour le capteur de dioxyde de carbone de ma station météo étaient les suivants :

  • communicant avec le pc à l’aide d’un protocole standard ;
  • fonctionnant sous Debian GNU/Linux ;
  • petit budget, moins de 150 euros.

Après plusieurs jours recherche, je me suis retrouvé le bec dans l’eau.

En effet, ce genre de capteur est visiblement réservé aux équipements scientifiques et la plupart des devis que j’ai réussi à obtenir sont bien au dessus de mon budget.
Mais dernièrement, j’ai trouvé un revendeur de matériel 1-wire en Suède : m.nu.
Celui-ci propose un capteur de CO2 abordable : CO2-meter.
Ce capteur est basé sur le capteur K30 de chez SenseAir et un DS2450.
Ce capteur peut être utilisé en intérieur ou bien à l’extérieur.
Par contre dans le cas d’une utilisation extérieur, il faut le protéger des précipitations.

Matériel

Pour faire fonctionner le capteur vous avez besoin des composants suivants :

Produit Prix
CO2-meter 139,93€
5V Power injectors 19,96€
Alimentation 5V 14,95€

Exploitation du capteur

Avec OWFS

Une fois le capteur branché sur le réseau 1-wire, il est vu par owfs :

$ tree /mnt/owfs/20.C17E0D000000
/mnt/owfs/20.C17E0D000000
|-- PIO.A
|-- PIO.ALL
|-- PIO.B
|-- PIO.C
|-- PIO.D
|-- address
...
|-- type
|-- volt.A
|-- volt.ALL
|-- volt.B
|-- volt.C
|-- volt.D
|-- volt2.A
|-- volt2.ALL
|-- volt2.B
|-- volt2.C
`-- volt2.D
3 directories, 74 files
$ cat /mnt/owfs/20.C17E0D000000/type
DS2450%

Les informations intéressantes se trouvent dans les fichiers :

  • volt.A : sortie du capteur de CO^2, donne la concentration de CO2 en ppm. Il faut multiplier la valeur par 1000. Ex: 0.772277 * 1000 = 772 ppm ;
  • volt.B : statut du capteur de CO^2, le voltage doit être au alentour de 3.2V ;
  • volt.D : voltage du DS2450S, doit être aux alentours de 5V ;

Avec Munin

Pour faire un graphique de la concentration de dioxyde de carbone, j’utilise munin et un petit plugin fait maison :

$ svn co http://svn.csquad.org/owcarbondioxide
A owcarbondioxide/owcarbondioxide
...
$ chmod a+x owcarbondioxide/owcarbondioxide
# mv owcarbondioxide/owcarbondioxide /usr/share/munin/plugins/
# ln -s /usr/share/munin/plugins/owcarbondioxide /etc/munin/plugins/owcarbondioxide
$ /etc/munin/plugins/owcarbondioxide config
graph_title Carbon dioxide 1-wire sensor
graph_args --base 1000 --lower-limit 0 --upper-limit 5000
graph_vlabel Carbon dioxide in ppm
graph_category sensors
graph_info This graph shows the Carbon dioxide on the one-wire network.
Chambre.label Chambre
$ /etc/munin/plugins/owcarbondioxide get
Chambre.value 786.184

Vous devriez obtenir ce type de graphique :
meuh.csquad.lan-owcarbondioxide-day

Références

Voici quelques références intéressantes sur le sujet :

Filed under: Home automation — Tags:, , , — cscm @ 20:09

April 12, 2009

Aquaero plugins for Munin

Aquaero My home servers are water cooled, I use the Aquaero device for monitoring the status of the cooling system. (fan speed, temperature and water flow).

The Aquaero is a monitoring system made by Aquacomputer, an German watercooling hardware manufacturer.

This monitoring system is working on Debian GNU/Linux and the source code of the monitoring program is available under the terms of the LGPL License.

You can find the command ligne monitoring system here : aquaero downloads.

I’ve wrote an C++ plugin for Munin, in order to get the watercooling status monitored.

Fan speed Water flow Temperature

Setup

Fallow thoses instructions in order to build and setup the plugin :

$ su
# cd /usr/src
# wget http://www.aqua-computer.de/download/aquaero_software/aeinfo-2.1-src.tar.gz
# tar xzf aeinfo-2.1-src.tar.gz
# cd aeinfo-2.1-src/
# wget http://svn.csquad.org/aquaero_munin/munin.cpp
# g++ -Wno-deprecated munin.cpp -lusb -o munin
# mv munin /usr/share/munin/plugins/aquaero
# cd /etc/munin/plugins
# ln -s /usr/share/munin/plugins/aquaero aquaero_fan
# ln -s /usr/share/munin/plugins/aquaero aquaero_temp
# ln -s /usr/share/munin/plugins/aquaero aquaero_flow
# echo < > /etc/munin/plugin-conf.d/munin-node
[aquaero_*]
user root
EOF
# /etc/init.d/munin-node restart

Enjoy and feel free to report bugs.

Filed under: Hardware — Tags:, , — cscm @ 08:10

July 6, 2008

Zoneminder plugins for Munin

I use ZoneMinder for my CCTV system and Munin for network monitoring.
But there is no ZoneMinder plugins for Munin, so I’ve decided to wrote theses plugins :

  • zm_events : get the number of events catched by monitors ;
  • zm_fps : get the number of frames per seconds ;
  • zm_hourly_events : get the number of events per hours.

You can download theses plugins from the subversion repository :

svn co http://svn.csquad.org/zoneminder_munin/

Enjoy and feel free to report bugs and suggest new graphs.

Filed under: ZoneMinder — Tags:, — cscm @ 08:30

March 4, 2006

Munin, une alternative simple à Cacti?

Cela fait près d’un an et demi que j’utilise le logiciel Cacti pour monitorer l’activité réseau. Aussi bien dans le cadre de mon activité professionnelle que pour mon usage personnel. Mais j’ai récement découvert une alternative sérieuse : Munin. Celui-ci présente de nombreux avantages par rapport à Cacti et mérite d’être plus connue.

Les faiblesses de Cacti

A première vue, Cacti semble être le logiciel de monitoring réseau parfait, le rendu graphique est vendeur, l’installation et la prise en main est simple. Mes principales reproches concernnent la configuration des graphiques personnalisers, que je trouve beaucoup trop complexe. Effectiffment après avoir configuré les graphiques basiques ( utilisation processeur, mémoire, disque etc… ), il est très difficile d’ajouter ses propres graphiques. Cette partie du logiciel est bien trop complexe, les nombres d’extensions disponibles est trop faible et il faut par conséquent passer beaucoup de temps sur la personnalisation des graphiques. C’est pour cela qu’après avoir installer Munin, je regrette de ne pas l’avoir découvert plutôt, cela m’aurait économisé quelques heures de sommeil précieuses ;0)

Présentation de Munin

munin@home Fonctionnalités:

  • Simplicité
  • Interface web de consutation
  • Architecture client/serveur
  • Support de RRDTool, pour la génération de graphiques
  • Très nombreux plugins disponible
  • Envoi d’alertes vers Nagios
  • Support du protocole SNMP
  • Détection automatique des services présents sur la machine.

Une démonstration des fonctionnalité du logiciel est disponible à l’adresse suivante : http://munin.ping.uio.no/

Installation du serveur

Le serveur est décomposé en deux paquets dans Debian :

  • munin : le serveur de monitoring
  • munin-node : l’agent de monitoring et les diffèrents plugins

Pour l’installation d’un serveur minimal vous avez besoin d’installé le paquet munin (l’installation du paquet munin-node sera nécessaire dans le cas où vous voulez monitorer une machine à l’aide du protocole SNMP).

#aptitude install munin munin-node

L’ensemble des fichiers de configuration se trouve dans le répertoire /etc/munin:

  • munin.conf : configuration du serveur
  • munin-node.conf : configuration de l’agent
  • plugin-conf.d : répertoire des fichiers de configuration des plugins
  • plugins : répertoire des plugins activé ( la liste des plugins disponible se trouve dans /usr/share/munin/plugins)
  • templates : modèles des pages web pour l’interface web

Le processus de récupèration des données est réalisé par la commande munin-cron toutes les 5 minutes :

*/5 * * * * munin if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi

Pour monitorer une machine, il suffit d’ajouter une entrée dans le fichier de configuration du serveur ( munin.conf ) :

[host.domain.name]
address 192.168.42.42 # l’adresse IP ou le nom DNS de la machine

Pour activer l’accés à l’interface web pour visionner les statistiques, il faut rendre le répertoire /var/www/munin accessible à l’aide du serveur Web Apache :

munin:/etc/apache/conf.d# cat munin.conf
<virtualhost munin>
ServerName munin.csquad.lan
ServerAlias munin.csquad.lan

ErrorLog /var/log/apache/munin/error.log
CustomLog /var/log/apache/munin/access.log common

DocumentRoot /var/www/munin
</virtualhost>

Installation des clients

Sur chaque client, il suffit d’installer le paquet munin-node :

#aptitude install munin-node

Modifier les régles d’accès dans le fichier de configuration /etc/munin/munin-node.conf :

allow ^192\.168\.42\.21$ #adresse du serveur

L’ensemble des services disponibles sur la machine sont détectés par la commande munin-node-configure :

# munin-node-configure –suggest | grep yes
cpu | no | yes
df | no | yes
df_inode | no | yes
entropy | no | yes
exim_mailqueue | no | yes
exim_mailstats | no | yes
forks | no | yes
if_ | no | yes +eth0 +eth1
if_err_ | no | yes +eth0 +eth1
interrupts | no | yes

Le paquet debian, active les plugins pour les services détectés en créant les liens dans le répertoire /etc/munin/plugins :

$ ls -l /etc/munin/plugins
lrwxrwxrwx 1 root root 28 Feb 20 18:14 cpu -> /usr/share/munin/plugins/cpu
lrwxrwxrwx 1 root root 27 Feb 20 18:14 df -> /usr/share/munin/plugins/df

Vous pouvez désactiver un plugin en supprimant son lien symbolique et l’activer en créant un lien symbolique :

# ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/

Simple, non?

Filed under: Debian — Tags: — cscm @ 21:04

Powered by WordPress