Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Facette

Des jolis graphes à Facette 0.4.0 et RRD

Rédigé par dada / 15 août 2017 / 9 commentaires


En 2015, j'étais tombé sur Facette, un outil plutôt bien foutu pour afficher l'état de mon serveur sans avoir à m'y connecter. En 2015, après quelques mésaventures, j'avais passé mon système de monitoring sous Monitorix. Eh bien, en 2017, avec la sortie de Facette 0.4rc1 (puis rc2 le temps de rédiger le billet), je retourne à mon premier amour !

Pourquoi ? Parce que cette version 0.4 est totalement retravaillée de l'intérieur, que ses jolis graphiques me manquent et que Monitorix, aussi simple soit-il, n'est pas vraiment une solution flexible. Je vous propose ici de quoi bien commencer, vu que la doc m'a filé mal au crâne.

Installer Facette

Pour les utilisateurs de Debian Jessie en amd64, voici le wget qui va bien. Pour les autres, faites un tour par ici.
wget https://github.com/facette/facette/releases/download/0.4.0rc2/facette_0.4.0rc2_jessie-amd64.deb
Pour installer le paquet :
dpkg -i facette_0.4.0rc2_jessie-amd64.deb 

Installer les dépendances RRD

Il est possible de remplir Facette avec Graphite, Influxdb, Kairosdb, ou encore Facette lui-même. J'ai choisi RDD, parce que.
apt-get install rrdtool rrdcached collectd 

Configurer Nginx

Facette a besoin d'un ReverseProxy pour fonctionner : en voici un exemple.

Configurer RRD

Installer les dépendances de RRD ne suffit pas, voici les quelques étapes supplémentaires pour faire fonctionner le bousin :

Créez les répertoires rrdcached :
mkdir /var/run/rrdcached/
On donne les bons droits à l'utilisateur facette :
chown facette: /var/run/rrdcached
Ajoutez ces lignes dans /etc/default/rrdcached :
OPTS="-s facette"
OPTS="$OPTS -l unix:/var/run/rrdcached/rrdcached.sock"
OPTS="$OPTS -j /var/lib/rrdcached/journal/ -F"
OPTS="$OPTS -w 1800 -z 1800 -f 3600 -t 4"
Cela permet, en gros, à Facette d'utiliser RRD.

Relancez RRDcached.
/etc/init.d/rrdcached restart 
Avec un ps, on vérifie que tout est comme on veut :
root@serveur:~# ps faux | grep rrd
root     14476  0.0  0.0  12736  2204 pts/0    S+   20:33   0:00                      \_ grep rrd
root     14465  0.0  0.0 138288  2632 ?        Ssl  20:33   0:00 /usr/bin/rrdcached -s facette -l unix:/var/run/rrdcached/rrdcached.sock -j /var/lib/rrdcached/journal/ -F -w 1800 -z 1800 -f 3600 -t 4 -p /var/run/rrdcached.pid

Configurer RRD comme fournisseur / provider

Allez dans le panneau d'administration de Facette et configurez RRD avec les informations que vous venez de mettre en place :

- Dossier de base
/var/lib/collectd/rrd

- Socket du démon rrdcached
/var/run/rrdcached/rrdcached.sock

- Motif de correspondance
(?P<source>[^/]+)/(?P<metric>.+).rrd

Voilà ! Vous devriez maintenant pouvoir commencer à faire vos propres graphiques :


Vous arriverez sans doutes à mettre en place vos graphiques comme des grands et à les afficher dans des collections, pas besoin d'expliquer comment faire.

Je reviens rapidement sur les fournisseurs de données. J'ai dit que Facette pouvait être de la partie, en plus de RRD et des autres. Cela veut dire que plusieurs instances bien configurées peuvent être agrégées sur un même serveur. C'était déjà une option bien chouette à l'époque, ça l'est toujours aujourd'hui : avoir une unique page pour, par exemple, surveiller tout le trafic réseau ! 

Facette 0.4rc1 disponible

Rédigé par dada / 19 juillet 2017 / Aucun commentaire




Mon bon vieux Facette s'est offert une nouvelle version et je suis complètement passé à côté...! Je me souviens l'avoir abandonné après avoir souffert de pas mal d'instabilité en sa version 0.3. Espérons que cette 0.4 corrigera le tir, et ça semble être le cas quand je parcours les notes de version. Monitorix ne me satisfaisant pas vraiment, je retourne lorgner sur Facette.

Au programme :
  • Réécriture du Front-end
  • Réécriture du Back-end
  • Ajout de stockage en BDD (MySQL, PostgreSQL, SQLite)
  • Configuration gérée par un .yaml
  • Ajout de templates de collection
  • Ajout d'alias de graphiques et de collection
  • Ajout d'une API
  • Disponible en français et en anglais
  • Etc
Bon, si avec tout ça, je ne retrouve pas mon bonheur perdu, je balancerai un paquet de #Tristitude sur Mastodon ! Je sors ce billet alors que je suis déjà en train de m'amuser avec. J'ai un peu souffert pour le faire tourner, rien de méchant mais je sortirai un tuto pour expliquer comment s'en servir assez rapidement.

Monitorix, du bon monitoring léger

Rédigé par dada / 20 juin 2016 / 8 commentaires




Toujours à la recherche de solutions simples et légères de monitoring, j'entreprends régulièrement des recherches sur le grand Internet pour trouver mon bonheur. Et je crois que je viens de le trouver : Monitorix !

Facette, le système que j'utilisais avant, avait une fâcheuse tendance à disjoncter pour des raisons inconnues : les graphiques disparaissaient sans que je ne comprenne pourquoi. C'est quand même dommage. Avec Monitorix, j'espère ne plus rencontrer ce genre de problèmes et, en plus, son développement est toujours actif.

L'installation de cette solution est hyper simple : on installe le paquet disponible sur le site officiel et c'est parti. Les graphiques commencent à se remplir tout seuls. Ils demandent quelques dépendances mais rien de bien méchant.

De base, il pond des graphiques sur ce qui est vital : le load de la machine, le réseau, l'utilisation du disque dur mais aussi Apache2, les mails (sendmail/postfix), MySQL etc. Autant dire que je découvre pas mal de choses sur le comportement de mon pod diaspora : diaspote.org.

Si vous voulez avoir une idée de l'utilisation de la mémoire du pod, par exemple :



Et ouais, 2 GB, c'est limite. La bizarrerie du graphique vient du redémarrage journalier du pod, dans la nuit. On évite le crash avec ça ;-)

La configuration de Monitorix est assez simple. Il faut juste créer un utilisateur spécifique pour le monitoring de MySQL et bien faire attention d'avoir les fichiers sm-client.st et sendmail.st pour récupérer les statistiques de Sendmail. Mis à part ça, tout se configure dans le fichier de configuration de l'utilitaire.

Il ne lui manque que la possibilité d'avoir des graphiques un peu plus précis. Contrairement à Facette, il n'est pas possible de zoomer sur une période précise pour analyser l'évolution de la situation seconde par seconde. Après, c'est un peu gadget : les différentes courbes sont suffisamment claires pour tirer les bonnes conclusions.

En bonus, il est possible de configurer des alertes et des scripts à lancer en cas de souci. C'est franchement chouette !

Des jolis graphiques avec Facette 0.3.0

Rédigé par dada / 28 août 2015 / 9 commentaires




Ça m'étonne, je n'ai jamais parlé de Facette avant ce billet alors que je m'en sers depuis des mois. A l'époque, je cherchais de quoi regarder l'état de mes serveurs via des graphiques jolis, simples et efficaces. Le tout en libre/open source et personnalisable.

Voici donc Facette, une interface qu'elle est belle pour comprendre comment son serveur se comporte, et confirmer les anomalies. Je parle d'anomalie parce que hier, Augier m'a prévenu que mon hébergeur était dans les choux alors que je n'avais rien vu. Un petit tour sur Facette et hop :



Si on regarde le deuxième graphique, on voit bien que la charge CPU est passée d'une situation classique à du néant pendant 10min, de 18h35 à 19h45. Il avait raison, le bougre. Si les VM ne font rien, c'est bien que personne ne traine dessus, et que donc, il y a un problème.

Voici donc un cas simple permettant d'illustrer l'intérêt de ce genre d'outil : confirmer que le grincheux avec qui on gère un pod diaspora* n'affabule pas ! :o)

Revenons à Facette. C'est donc un logiciel Open Source sous licence BSD. Il est encore en développement, en bêta, mais mon expérience me fait dire que c'est un des indispensables outils de monitoring qu'il faut surveiller.

Il permet :
  • de suivre l'état du serveur (CPU, RAM, Réseau, etc) via des jolis dessins. Sur ma capture d'écran, vous voyez le CPU et la mémoire en cache.
  • de regrouper ces graphiques en collections, pour les afficher sur une seule et même page et avoir une vue globale de la situation.
  • de faire tout ça simplement, via une interface graphique.
  • de regrouper les informations de plusieurs instances de Facette en une seule. Pour le moment, je ne surveille que le serveur hébergeant ce blog et diaspote.

Et c'est ce dernier point qui est super : installez Facette sur vos serveurs, regroupez les flux dans une instance posée sur un serveur dédié au monitoring et vous avez un outil super, son API s'occupe de tout.

Pour parler technologies, Facette n'est qu'un générateur de graphiques. Il prend les informations d'un collectd, Graphit, Munin ou encore d'un influxDB et en ressort un truc bien plus agréable. Côté configuration, c'est du json tout simple. La documentation officielle vous en apprendra bien plus que moi.

L'installation est triviale pour Debian et Ubuntu, le dépôt Github propose des paquets 32 ou 64 bits pour Debian Jessie, Debian Wheezie et Ubuntu 14.04 LTS.

C'est l'heure de tester maintenant, à votre terminal ! Les motivés peuvent trouver des bugs, les rapportés et proposer des corrections ;)