Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Aide

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 ! 

Firefox : tester la compatibilité de vos extensions avec e10s

Rédigé par dada / 01 août 2017 / 10 commentaires




Quand est arrivé e10s, la gestion du multiprocessus, on a tous voulu en profiter. Normal, on nous annonce que Firefox va devenir une bête de course, on ne va quand même pas passer à côté ! Si vous tournez avec le navigateur le plus efficace du moment, pensez à vérifier que vous en exploitez bien toute la puissance !

Comment ? Avec Add-on Compatibility Reporter ! Il s'installe tout simplement en tant que module et va vous fournir ce type d'information précieuse :



Eh oui, il va vous dire si une de vos extensions vous empêche de jouer avec les dernières avancées du butineur. J'avais peur du résultat de l'analyse de mes extensions mais seule celle gérant la suppression des cookies m'a posé problème. J'ai trouvé une alternative avec Cookie AutoDelete et le tour était joué.

Vous n'avez plus aucune raison de ne plus parcourir le web à la vitesse grand V. Et si vous êtes un utilisateur de Chromium, dommage.

UBPorts : retrouver les Desktop Apps

Rédigé par dada / 13 juin 2017 / 1 commentaire




Avec mon passage à UBPorts pour mon Aquaris M10 FDH, j'ai rapidement regretté l'absence des Desktop Apps (Firefox, LibreOffice, etc) de la liste des applications disponibles. Une recherche rapide m'a soulagé : il est possible de les retrouver, mais ça demande un peu d'effort. Voici l'astuce.

Installer le Desktop Apps Scope

Pour installer cette dépendance, il faut passer par l'OpenStore pour installer uApp Explorer. Une fois fait, il faut maintenant passer par l'uApp pour installer le scope Desktop Apps Scope. Cette première étape va vous permettre d'avoir accès aux X Apps que nous allons pouvoir bientôt installer.

Préparer l'appareil

- Il faut maintenant passer l'appareil en mode développeur. On l'active en allant dans les paramètres, puis À propos et en cliquant sur le mode développeur. Notez qu'il faut mettre en place un code de sécurité pour pouvoir le faire. Petit piège.
- Connectez-vous à la tablette depuis votre ordinateur en tapant phablet-shell depuis votre terminal. Elle va vous permettre de vous connecter à votre appareil en SSH, mais la manipulation peut se faire directement depuis un terminal lancé depuis l'appareil.
- Une fois connecté, tapez la commande suivante pour mettre en place le conteneur qui accueillera les applications tournant avec X.
libertine-container-manager create --id ubuntu --name 'ubuntu' 
L'opération va bien prendre 10 min. Allez vous en griller une ou c'que vous voulez. 'ubuntu' sera l'identifiant (id) du conteneur, il est à titre indicatif, vous pouvez mettre ce que vous voulez. Faudra penser à reporter la modif' à l'étape suivante.

Une fois que c'est terminé, il faut rendre le conteneur persistant en tapant ce qui suit :
libertine-container-manager exec --command "/bin/bash" --id ubuntu 
Vous vous prendrez un retour avec de simples warnings dans les dents mais tout va bien, vous êtes dans la matrice et vous pouvez maintenant installer vos applications !

Installer vos applications

Tout simple, un exemple pour Firefox :
apt install firefox 
Et voilà ! Bon, LibreOffice semble ne pas tourner, mais j'ai réussi à faire tourner VLC !

Vous pouvez retrouver l'origine de ce billet par ici.

Améliorer la recherche dans Nextcloud avec Nextant

Rédigé par dada / 03 juin 2017 / 3 commentaires




La recherche dans Nextcloud est bien foutue mais commence à montrer ses limites quand on s'amuse à stocker une grande quantité de fichiers. En plus, elle ne va pas analyser ce qui se passe au niveau du contenu. C'est là que l'ami Solr débarque via une extension plutôt pratique : Nextant.
J'annonce tout de suite, ce billet va parler d'un outil en Java, et même qu'il va falloir l'installer. Si vous faites partie de ceux qui s'obstinent à dire que Java, c'est de la merde, plutôt que de pester sur des développeurs d'applications, au mieux, maladroits, passez votre chemin.
C'est aussi un peu compliqué, mais bon, je vais tenter de faire de mon mieux pour vous rendre la tâche presque simple !

Installer Java

On attaque fort, j'avais prévenu ! Si vous êtes sous Debian 8, vous aurez besoin de passer par les backports puisque la version présente dans les dépôts classiques est trop ancienne. Il faut les mettre en place et taper la commande suivante :
apt-get -t jessie-backports install openjdk-8-jdk

Vérifier la version utilisée par le système

Les versions de Java cohabitent dans votre système. Si vous aviez déjà du java, il faut faire comprendre à l'OS que c'est la toute dernière qu'il faut  :
root@dadall:/var/www/# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~bpo8+1-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
Si le résultat retourné n'est pas le même que le mien, corrigez le souci en passant par l'update-alternatives :
root@dadall:/var/www/html/nc#  update-alternatives --config java
Il existe 2 choix pour l'alternative java (qui fournit /usr/bin/java).

  Sélection   Chemin                                          Priorité  État
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      mode automatique
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      mode manuel
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      mode manuel

Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :
Dans mon cas, tapez 2 et vous en aurez fini avec Java.

Installer Solr

On va passer par l'installeur automatique. C'est bien plus simple et ça permet de ne pas se prendre la tête.
D'abord, prenez le temps de créer un utilisateur solr :
adduser --disabled-login solr
su solr
cd ~
Placez-vous dans sa home et récupérez les sources :
$ wget http://mirrors.ircam.fr/pub/apache/lucene/solr/6.5.1/solr-6.5.1.tgz
$ tar -zxvf solr-6.5.1.tgz
Puis lancez la procédure :
# bash solr-6.5.1/bin/install_solr_service.sh solr-6.5.1.tgz 
Une fois terminée, on va faire un peu de configuration. On va simplement dire à Solr de ne répondre qu'aux sollicitations locales en remplaçant cette ligne :
<Set name="host"><Property name="jetty.host" /></Set>
par :
<Set name="host"><Property name="jetty.host" default="127.0.0.1" /></Set>
dans le fichier présent là-bas : /opt/solr/server/etc/jetty-http.xml. C'est une configuration simple mais importante : elle évite de rendre vos données accessibles à l'extérieur.

Vous pouvez maintenant démarrer la bête :
# /etc/init.d/solr start 
Solr est maintenant démarré mais il lui marque un dernier truc : un core. On va le créer en deux minutes en tapant ça avec le user solr créé pour l'occasion :
/opt/solr/bin/solr create -c nextant 
Et voilà pour Solr ! Place à l'extension !

Installer Nextant

Bon, là, si vous avez réussi toutes les étapes précédentes, c'est que vous pouvez aller cliquer dans la gestion des applications de votre Nextcloud pour activer le bousin. Tout est déjà rempli pour vous. C'est très clair et un bouton «tester» est là pour vous permettre de tout valider !



Solr fonctionne sur le principe des indexations : à un instant T, il va gober tout ce qu'il y a à savoir dans vos fichiers et l'organiser à sa sauce. Pour la première, il est plus que conseillé de la faire à la main en tapant la commande (avec le user de votre Nextcloud, pas le user solr) :
./occ nextant:index 
L'indexation de nouveau contenu ne se fera pas en temps réel mais via un cron Nextcloud. C'est à dire de temps en temps, alors ne vous étonnez pas si le dernier document que vous venez d'ajouter n’apparaît pas immédiatement dans les résultats de recherche.

Une section «Pour aller plus loin» est disponible dans la doc de Nextant. Elle indique, entre autre, comment exclure des répertoires de l'indexation. C'est pas mal si vous ne voulez pas voir certaines infos apparaître maladroitement.

Vous pouvez maintenant faire vos recherches dans vos fichiers !

Mastodon : Oops! An unexpected error occured

Rédigé par dada / 14 avril 2017 / 3 commentaires




Si, par curiosité, vous avez monté votre instance Mastodon pour vérifier l'intérêt du nouveau réseau social libre du moment, vous êtes peut-être tombés sur cette erreur à la relance des services. Tout semble bien se passer mais votre timeline publique et vos notifications ne marchent plus. Enfin, elles ne contiennent que les événements en cours, pas les passés.

Oops! An unexpected error occured

Comme contexte, j'ai rencontré ce souci lors du passage à la 1.1.2. N'ayant pas fait le passage à la 1.1.1, vous aurez peut-être déjà fait une partie de ce que je vais raconter ci-dessous.

Mettre à jour Ruby et réinstaller ses dépendances

Ces opérations se font avec l'utilisateur dédié à Mastodon, pas en root.

Pour ruby :
rbenv install 2.4.1 
Pour ses dépendances :
gem install bundler 
bundle install --deployment --without development test 
yarn install && yarn upgrade 
Si vous avez le regard perçant, vous avez remarqué la présence du yarn upgrade qui va vous éviter l'erreur à l'origine de l'écriture de ce billet.

Nettoyer et recompiler les assets

Le nettoyage :
RAILS_ENV=production bundle exec rails assets:clean 
La recompilation :
RAILS_ENV=production bundle exec rails assets:precompile 
Une fois tout ça fait, vous pouvez relancer votre instance Mastodon et revenir tooter parmi nous !