Le blog du petit geek malin ;-)

vendredi 2 janvier 2015

Suivre sa conso électrique dans Cacti via TeleInfo

Le teleinfostick se branche sur l'interface TeleInfo des compteurs ERDF les plus courants (chez moi Actaris A14C5) et permet de récupérer via USB les données TeleInfo en connexion série.



NB1 : J'ai eu des problèmes de stabilité de la liaison sur un port USB 3, mais pas de soucis sur un port USB 2.
NB2 : Je suis en option "heures creuses / heures pleines". Le script et le template sont conçus pour cette option.

En utilisant un script approprié capturant et filtrant la sortie série brute, il est possible de récupérer les données utiles :

ADCO 031328337123 ;

OPTARIF HC.. <

ISOUSC 45 ?

HCHC 0025 ?TeleinfoStick V3



HCHC 002891343 $

HCHP 003652012 &

PTEC HP..

IINST 003 Z

IMAX 037 I

PAPP 00770 /

HHPHC E 0

MOTDETAT 000000 B






Et finalement de les grapher dans Cacti :






cacti_template_teleinfo.zip

Mode d'emploi :

- Copier le script teleinfo.sh dans le répertoire /usr/local/bin de la machine Linux à laquelle est connecté le teleinfostick

# /usr/local/bin/teleinfo.sh
hchp:3651979 hchc:2891343 iinst:7 imax:37 papp:370 ptec:1

- Pour pouvoir lire le device ttyACM0 depuis le démon SNMP (donc sans droits root), je fais appel dans le script à une copie de cat avec les droits suid que je place dans /usr/local/bin/snmp/.

chmod +s /usr/local/bin/snmp/cat

- Je pars du principe que Cacti n'est pas hébergé sur la même machine. Les données seront donc récupérées en SNMP par Cacti. Ajouter dans snmpd.conf :

extend teleinfo /usr/local/bin/teleinfo.sh

dimanche 17 novembre 2013

Cacti graph template : NSD query stats

Les stats de requêtes NSD sont récupérées par polling SNMP des NS distants. Ceux-ci exécutent alors le script python nsd_stats.py (version modifiée du munin nsd3 plugin) :

# cat /etc/snmp/snmpd.conf | grep nsd
extend nsd_stats /etc/snmp/bin/python /usr/local/bin/nsd_stats.py

Puisque le script doit être exécuté avec les droits root, j'ai choisi d'utiliser une copie du binaire python auquel je donne les droits suid :

# chmod +s /etc/snmp/bin/python
# ls -l /etc/snmp/bin/python
-rwsr-sr-x 1 root root 2288272 Oct 27 21:17 /etc/snmp/bin/python

NSD est configuré pour émettre des stats toutes les 5 minutes (300 sec.) :

# cat /etc/nsd3/nsd.conf | grep statistics
        # statistics are produced every number of seconds.
        statistics: 300

Voici le graphe résultant :

(s'agissant d'une petite installation domestique traitant peu de trafic, les stats sont données pour l'intervalle de polling de 5 minutes, mais le template peut être très simplement remodifié pour donner les stats moyennes par secondes, il suffit d'enlever le CDEF "Make per 5 minutes" des graph items)

cacti_graph_template_nsd_query_stats.zip

samedi 12 octobre 2013

Freebox 5 ADSL stats Cacti templates

Suite à la mise à disposition via une page web locale des stats ADSL de la Freebox v5 dans la récente mise à jour de firmware, il est désormais possible de grapher ces stats dans Cacti de la même façon qu'avec la Freebox v6 (et même encore plus simplement).

Graphes disponibles :
Freebox - ADSL ATM bandwidth
Freebox - ADSL attenuation
Freebox - ADSL noise margin
Freebox - ADSL errors
Ces graphes sont sensiblement identiques à ceux obtenus avec la Freebox v6.

Une fois encore, comme toutes les stats sont stockées dans un unique fichier RRA (ou datasource), pour ne pas le dupliquer et réaliser plusieurs pollings des mêmes données à chaque cycle, il est préférable de d'abord créer le datasource manuellement (en se basant bien entendu sur le template) puis de créer de même les graphes manuellement à partir de leurs templates respectifs et en y associant les bons datasource items.

Script, Cacti templates et Data Input Method : cacti_freebox_5.zip

Merci à Jérémy pour les tests et suggestions d'améliorations !

dimanche 8 septembre 2013

Freebox OS v2 ADSL stats Cacti templates

Suite au déploiement de la version 2 de firmware Freebox v6 (désormais appelé Freebox OS), l'ancienne (laborieuse) méthode d'interrogation de la Freebox en HTTP ne fonctionne plus, mais la nouvelle API peut être utilisée pour accéder aux statistiques (presque brutes) de connexion/ADSL.
D'avantages de données sont en outre disponibles ; et qui dit nouvelles stats, dit nouveaux graphes ! ;-)

Graphes disponibles :
Freebox API - ADSL bandwidth
Freebox API - ADSL attenuation
Freebox API - ADSL noise margin
Freebox API - ADSL errors
Freebox API - ADSL errored seconds
Freebox API - ADSL traffic
Freebox API - ADSL uptime
Freebox API - ADSL ATM max rate (je ne suis pas encore tout à fait clair sur ce que cela représente exactement)

La nouvelle version du script bash est quelque peu "quick and dirty" ou tout au moins peu élégante, mais elle a le mérite de fonctionner simplement (et je ne suis pas développeur).
A noter qu'il appelle le script freeboxos-bash-api.sh.

Il faut avant tout autoriser l'application (ici le script) à accéder à la Freebox. Pour cela lancer un script d'autorisation depuis le serveur Cacti : fbx-api-authorize.sh ou freebox-api-authorize.sh et valider physiquement l'autorisation sur la Freebox.
Récupérer ensuite l'app_token (variable MY_APP_TOKEN) et le modifier dans le script principal freebox-api.sh.
Penser également à modifier dans ce même script le chemin de Cacti (variable CACTI_PATH) si nécessaire.

Une fois encore, un seul datasource/fichier RRA contenant toutes les stats, afin de ne pas le dupliquer et réaliser plusieurs pollings des mêmes données à chaque cycle, la bonne méthode de création des graphes est de créer le datasource manuellement (en se basant bien entendu sur le template) puis de créer de même les graphes manuellement à partir de leurs templates respectifs et en y associant les bons datasource items.

Scripts, Cacti templates et Data Input Method : cacti_freebox_os_v2.zip

Place à présent aux images avec les graphes des stats actuelles de ma pauvre ligne récemment resynchronisée en ReADSL2 (rendez-moi mon ADSL2+ !!!) :










Remerciements :
Un grande merci à JrCs pour sa freeboxos-bash-api qui m'a permis de faire finalement très simplement fonctionner l'authentification à l'API Freebox après avoir galéré pendant des heures à ne pas comprendre pourquoi mon script n'arrivait pas à s'authentifier...
Merci aussi à Gilbert Marin pour son développement antérieur au mien. Celui-ci m'a bien inspiré (et motivé !) mais nous avons ensuite choisi des méthodes sensiblement différentes...

Références :
Freebox OS developer API documentation
Freebox OS bash API
Exemple de script d'autorisation et d'authentification d'une appli à l'API Freebox

jeudi 6 octobre 2011

StoneSoft firewall Cacti host template

Here is the StoneGate 5.3 Cacti host template.

It includes :
- CPU usage details, global and per core
- Physical memory usage
- Current connections
- Allowed packets
- Discarded packets
- Refused packets
- Logged packets
- Accounted packets
- Disk space usage per partition
- Standard interfaces traffic (including 64 bits counters support)
- Management uptime

Special thanks to noname at Cacti forums for his great help ;-)

samedi 17 septembre 2011

Freebox v6 stats Cacti templates

Voici un script sh/awk et un host template Cacti permettant de collecter en HTTP et grapher les stats ADSL de la Freebox v6 (aka Revolution) (en firmware server version 1).
cacti_host_template_freebox_v6.zip






La bonne méthode de création des graphes est de créer le datasource manuellement en se basant sur le template puis de créer de même les graphes manuellement à partir de leurs templates respectifs, ceci afin de ne pas dupliquer le datasource qui contient toutes les stats et de n'interroger la Freebox qu'une fois à chaque polling.

/!\ Ne pas oublier de modifier le mot de passe d'accès à la Freebox (server) dans le script.

Ce qui serait bien, ce serait bien évidemment de pouvoir accéder à ces stats en SNMP. Et plus encore, d'accéder aux compteurs des interfaces. Ce n'est vraiment pas lourd à mettre en place : Il s'agit juste d'intégrer Net-SNMP au firmware. (@Free dev : please...)

Pour la version 2 de Freebox OS, voir ce nouveau billet.

vendredi 20 mars 2009

BSD Pfilter Cacti graph templates

Voici la version définitive de mes graph templates pour Pfilter : pfilter-cacti-templates

dimanche 30 novembre 2008

djbdns Cacti graphs

Voici des modèles de graphes Cacti pour djbdns (tinydns, dnscache, axfrdns) basés sur une version modifiée de djbdns-stats supportant axfrdns :

djbdns_cacti_graphs.zip (updated on 03/02/2010)

Les graphes affichent le nombre de requêtes DNS de chaque type reçues par intervalles de 5 minutes :


samedi 30 août 2008

Network Weathermap

Network Weathermap est un outil de visualisation de réseau, utilisant des données (généralement de trafic) recueillies par des outils tels que MRTG ou Cacti (via RRDTool) pour afficher une carte dynamique d'un réseau. La version PHP Weathermap Cacti plugin est le complément parfait de Cacti permettant d'avoir une vue globale du réseau et non plus des pages de graphiques juxtaposés les uns après les autres. Weathermap est ainsi utilisé par quantité d'opérateurs, hébergeurs, grandes et moins grandes sociétés, administrations...

J'ai ainsi récemment créé la carte de mon réseau domestique supervisé par Cacti. Pour cela, j'ai choisi de créer une vue purement logique à la manière des cartes publiées par Free et OVH (toutes proportions gardées bien sûr !) et voici un aperçu de ce que cela donne :

Il s'agit d'un réseau local (LAN & DMZ) relié à deux sites distants par VPN via internet.

Les liens changent de couleur en fonction du pourcentage de la bande passante utilisée et le passage du pointeur de souris dessus fait apparaitre le graphe de trafic correspondant. Les noeuds (ou hôtes) sont colorés en fonction de leur état (généralement up/down = vert/rouge) et le passage du pointeur dessus fait également apparaitre un graphe d'une mesure correspondante ou un commentaire.

PHP Weathermap Cacti plugin contient en outre un éditeur graphique de cartes (encore en cours de développement) faisant gagner pas mal de temps dans la création/modification des cartes.

En conlusion, il s'agit là d'un petite bijou développé et maintenu par Howie, certainement le meilleur plugin Cacti existant à ce jour !

Pour référence, mon ami Jéremy a pas mal travaillé sur WeatherMap et a écrit un très bon tutoriel pour démarrer sur le plugin pour Cacti. Voir aussi bien sûr, comme référence absolue : la doc officielle (always RTFM !).