Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Planet-Libre

Et si on parlait Fédiverse ?

Rédigé par dada / 14 juillet 2018 / 9 commentaires


De mon point de vue, ces derniers mois est apparue une dynamique incroyable dans le monde libriste. Le point de départ de cette dynamique ? Mastodon, le Twitter dont on peut se servir les yeux fermés. Le détail qui fait que ça tient dans la durée ? La langue utilisée : ActivityPub.

Au départ, nous n'avions que Mastodon, rejoint ensuite par Peertube, puis PixelfFed, puis Plume et enfin Prismo. Ces noms ne vous disent rien ? C'est normal, tout est encore en cours de développement et seuls les courageux font tourner ces applications. Patience.

Pourquoi je trouve que c'est une dynamique incroyable ? Quand Facebook parle le Facebook et Twitter le Twitter, les applications dont je vous parle se sont mises d'accord pour parler l'ActivityPub. Elles ont ceci de génial qu'elles parlent le même langage.

Une vidéo vous plaît ? Remerciez son créateur depuis votre Mastodon. Le résultat ?

Sur Framatube :


Sur Mindpalace :


Ce qu'il faut comprendre ?

- Les deux captures d'écran proviennent de deux instances Peertube différentes (Framatube / Mindepalace)
- Les commentaires proviennent de 3 instances Mastodon différentes ( Framapiaf / Mamot / Diaspodon )
- Ces commentaires sont visibles sur ces 5 bouts d'internet différents !

Et ça, c'est tout simplement incroyable. Le pire, c'est qu'il s'agit d'un exemple limité. Seulement 5 bouts d'Internet entrent en jeu. Seulement.

D'ici quelques jours, Pixelfed sortira de son autarcie pour rejoindre la Fédiverse. Même s'il est actuellement possible de s'en servir (depuis mon instance, par exemple, ou celle de Valère), l'application n'est pas bavarde sur la Fédiverse.
Lorsqu'un de vos amis postera une photo sur cet Instagram honnête, vous en serez averti sur Mastodon et vous pourrez interagir avec, toujours parce que ces deux choses parlent l'ActivityPub.

Que dire de Plume ? Ce moteur de blog vous permettra de partagez vos écrits sur la Fédiverse, de citer directement des gens dans vos billets et de laisser les gens publier des commentaires depuis Mastodon. Le tout en toute transparence.

Prismo devrait aussi entrer dans ce grand capharnaüm : un Reddit dans la Fédiverse ! Vous voulez partager mon article (parce qu'il est franchement génial, n'est-ce pas ?) sur Prismo, les utilisateurs de Mastodon seront au courant et pourrons interagir !

Ce qui se profile devant nous est tout simplement génial.

Bloquer les pubs : j'ai installé Pi-Hole derrière une Freebox

Rédigé par dada / 05 juin 2018 / 8 commentaires




Étant coincé pendant encore quelques temps dans la maison familiale, j'ai du trouver des occupations. Première idée : installer un Pi-Hole.

L'idée derrière tout ça ? Trouver une utilité à l'une de mes 3 Raspberry Pi.
L'utilité derrière tout ça ? Mettre en place un système simple permettant aux membres de ma famille, qui passent souvent par cette baraque, de ne plus être emmerdés par les pubs et autres.

Je suis le "toi qui t'y connais en informatique" local. Ça m'ouvre des droits et des devoirs. Avec des géniteurs frôlant les 70 ans, je me dois de prendre en main certaines choses. J'ai déjà réussi à passer un ordinateur portable sous Debian pour l'une mais l'autre doit continuer à se servir d'un Windows. Ils sont bien au courant des histoires de pubs, de flicages et de contenus sponsorisés, mais bon, autant prendre le temps de mettre en place une petite bête qui va s'occuper de tout ça pour eux. Et je ne parle pas d'une branche qui ne jure que par Apple et dont certaines notions citées juste avant n'allument aucune lanterne.

Installer Pi-Hole

Si vous passez par Raspbian, prenez le temps de flasher sa carte SD avec la version Stretch de l'OS sans quoi vous ne pourrez pas vous servir de l'outil. Une sombre configuration de dnsmask plante la chose si vous n'êtes pas à jour.
Pensez aussi à faire un "apt update" avant de lancer l'installeur : j'avais des soucis avec les dépôts et Pi-Hole, sans rien m'expliquer, refusait de s'installer.

Pas de blabla autour de l'installation. Si vous avez une Raspberry et que vous passez par ce blog, vous devriez réussir à faire un curl et appuyer 6 fois sur la touche entrée.

Ajouter la blacklist manquante

J'ai ajouté une blacklist orientée francophones en plus de celles activées par défaut : Liste_fr + Easylist

Ça ne fait pas de mal.

Configuration de la Freebox

Pour que la Freebox utilise Pi-Hole, il faut aller faire un tour dans l'interface de gestion de la bestiole de Free. La capture d'écran qui va bien :



Voyez l'adresse sur serveur DNS 1 : il s'agit de l'IP de la Rasbperry.

Éviter les emmerdes

Alors, quand on commence à faire ce genre de bêtise, il faut garder à l'esprit qu'une coupure de courant, ça arrive. Que ce passera-t-il si la Raspberry ne redémarre pas ? Plus "d'internet" pour les utilisateurs, le téléphone qui sonne, les "tu es responsable !".

- Configurer la réservation de l'adresse IP de la Raspberry pour ne pas perdre le Pi-Hole

Pour que l'IP de la Rasbperry ne change pas, vous devez impérativement la réserver. Ça se fait dans l'interface de la Freebox, dans la gestion de baux statiques.

- Activer la connexion SSH vers la Raspberry en cas de besoin

Cette configuration ne se fait pas depuis l'interface de la Freebox mais depuis le site Free.fr. Dans la rubrique de configuration du routeur, redirigez l'accès SSH depuis l'extérieur vers l'IP de la Rasbperry Pi et le port SSH que vous utilisez (22 par défaut).

- Préparer un mail avec des captures d'écran en cas de crash du Pi-Hole alors que vous faites le tour de la Jamaïque

Pour ce dernier point, je vous laisse aller à vote imagination pour trouver la solution la plus simple pour expliquer à des proches en colères comment corriger la situation en votre absence. C'est sportif, j'en suis conscient.

Notes étonnantes

  • L'utilisation d'une Raspberry Pi de vieille génération ne ralentie pas la navigation des 10 appareils branchés sur le réseau.
  • Si vous êtes utilisateurs de uBlock, sachez que ce dernier bloque directement depuis le navigateur les requêtes qui devraient être élimées par le Pi-Hole (cf ici).

Et voilà, fin du billet. Vous pouvez vous lancer dans l'aventure si ça vous chante et que vous êtes prêt à prendre des responsabilités dans le digital familiale. Moi, je vais jouer avec Funkwhale maintenant.

Des bisous

Installer mysqld_export pour Prometheus et Grafana

Rédigé par dada / 12 février 2018 / Aucun commentaire


Grafana, c'est mon dada (!) du moment. Après l'avoir installé pour avoir une vision d'ensemble de l'état de mes serveurs, voici l'heure de se pencher sur l'état d'un service en particulier : MariaDB

Je vous redirige vers l'article pour installer Grafana, Prometheus et node_exporter si ça vous intéresse.

Installer mysqld_exporter

On va commencer par récupérer l'exporter :
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz 
Et on va le placer au chaud dans l’arborescence :
mkdir /opt/prometheus_exporters
tar zxf mysqld_exporter-0.10.0.linux-amd64.tar.gz -C /opt/prometheus_exporters
L'exporter est en place. Ce n'est pas plus compliqué que ça. Passons à la configuration.

Configuration du mysqld_exporter

Il a besoin d'une seule chose : un utilisateur dédié avec les bons droits.
GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'userdelexporter'@'localhost' identified by 'pwddelexporter';
GRANT SELECT ON performance_schema.* TO 'userdelexporter'@'localhost';
FLUSH PRIVILEGES;
On va ajouter ces informations dans un .my.cnf que l'on va passer en paramètre à l'exporter :
[client]
user=userdelexporter
password=pwddelexporter
J'ai choisi de placer ce .my.cnf dans /opt/prometheus_exporters pour ne pas le perdre, mais vous pouvez le mettre ou vous voulez.

Lancer l'exporter

On va déjà le tester :
root@diaspote /opt/prometheus_exporters/ # ./mysqld_exporter -config.my-cnf=".my.cnf"
INFO[0000] Starting mysqld_exporter (version=0.10.0, branch=master, revision=80680068f15474f87847c8ee8f18a2939a26196a)  source="mysqld_exporter.go:460"
INFO[0000] Build context (go=go1.8.1, user=root@3b0154cd9e8e, date=20170425-11:24:12)  source="mysqld_exporter.go:461"
INFO[0000] Listening on :9104                            source="mysqld_exporter.go:479"
Si vous avez ce retour, sans erreur, vous avez réussi l'installation de la bête.

Configurer Prometheus

Ajoutez ces quelques lignes à votre prometheus.yml pour qu'il sache récupérer les informations :
  - job_name: 'mysql'
    # If prometheus-node-exporter is installed, grab stats about the local
    # machine by default.
    static_configs:
      - targets: ['lipdemonserveuraveclexporter:9104']
Rechargez la configuration et le tour est joué :
root@dadall:/home/dada# curl -X POST http://localhost:9090/-/reload 
 Prometheus devrait signaler que tout va bien :



Il ne reste plus qu'à lancer tout ça en tâche de fond en ajoutant une esperluette à la fin de la commande précédente :
root@diaspote /opt/prometheus_exporters/ # ./mysqld_exporter -config.my-cnf=".my.cnf" &

Configurer un dashboard pour Grafana

Pour le dashbaord, sans honte, j'ai pompé sur celui de Perconna que vous pouvez trouver ici. Il est largement suffisant. Prenez quand même bien soin de vérifier que le nom de la data source corresponde bien avec la votre. Je me suis arraché les cheveux parce que la mienne s'appelle prometheus et cette du JSON s'appelle Prometheus. La majuscule, quoi.



Et voilà, le tour est joué. Amusez-vous bien !

N'hésitez pas à me suivre sur Mastodon et/ou diaspora*  pour me lire lutter avec cette stack ! :-)

Passer à Nextcloud 13 rapidement

Rédigé par dada / 06 février 2018 / 4 commentaires




Nextcloud 13 est enfin disponible ! Cette dernière n'est cependant pas encore disponible pour tout le monde via l'application Updater. Seul 15% des utilisateurs ont la chance de pouvoir se mettre à jour en 3 clics. Pour le reste d'entre nous, il va falloir attendre un peu. En effet, les développeurs expliquent qu'ils ne la balancent pas à tout le monde dès le premier jour pour pouvoir la couper en cas de bugs et/ou de soucis découverts pendant la première salve. Ils déploient calmement, c'est bien.

Ceci dit, pour les plus pressés, il est possible de se lancer dans l'aventure avec les quelques actions suivantes :
  • Passer l'Updater sur le canal «beta»
  • Recharger la page
  • Appliquer la mise à jour proposée, qui est bien la version stable
  • Ne pas oublier de repasser sur le canal stable une fois la màj terminée


Si vous avez peur de cette manipulation, sachez qu'elle sort tout droit du billet de blog annonçant la sortie de la nouvelle version de mon cloud adoré ! Si si, tout en bas, juste avant le »Thank you».

Maintenant, la mise en garde :

Les applications officielles ne vous poseront pas de souci, contrairement aux applications terces !
Pensez à bien aller faire un tour dans le magasin d'application pour vérifier que vos outils sont biens compatibles avec cette toute nouvelle mouture !
Solution rapide : aller faire un tour dans la page Applications de votre instance et cliquez sur Afficher dans le magasin d'application dès que vous en avez l'occasion.


Si, comme dans la capture si dessus, vous ne voyez pas apparaitre Nextcloud 13, vous savez que vous devez attendre !

J'ai, personnellement, pas encore de versions compatibles avec NC 13 de Nextant et de Tasks. Cette dernière devrait arriver très vite, d'après cette issue Github.

Pour terminer : si vous le pouvez, soyez patient !

Installer Grafana, Prometheus et Node Exporter

Rédigé par dada / 31 janvier 2018 / 7 commentaires




Le monitoring, j'aime à dire que c'est ce que l'administrateur a de plus pervers : surveiller, voir et savoir tout ce qui se passe sur ses machines, sans limite, et de la façon qui lui est la plus agréable possible. Un admin, c'est un stalker, en fait.

De mon côté, après avoir testé Facette, Monitorix, Netdata et Munin, je joue en ce moment avec Grafana, Prometheus et les exporters qui vont avec. C'est l'objet de ce billet, ça tombe bien, alors voyons comment faire pour installer tout ça en quelques minutes.

Comprendre l'installation en quelques lignes

Vos serveurs vont avoir un exporter simple : le Node Exporter, qui va permettre à Prometheus de récupérer les différentes métriques qu'il partage. La bonne pratique consiste à installer Prometheus sur une serveur qui sera dédié à la collecte des informations. Si vous installez tout sur une seul et même machine, vous pourrez mettre du localhost dans presque tout ce qui suit. Grafana, quant à lui, va afficher ses données avec des jolies couleurs et dans des jolis graphiques.

Installer Prometheus

Pas de piège pour une Debian Stretch :
apt install prometheus 
C'est un peu plus compliqué pour une Jessie :
apt -t jessie-backports install prometheus 
Notez qu'essayer de lancer le service sous Jessie via systemd est foireux : il faut utiliser la bonne vieille méthode :
/etc/init.d/prometheus start 
Si vous ne faites pas ça et que vous avez des soucis, genre un service qui écoute déjà sur le 9090, vous ne verrez rien dans les logs.

A partir de là, vous devriez pouvoir accéder à Prometheus en tapant sur le port 9090 de votre serveur.



Quoi ? Jamais j'ai écrit que Prometheus était sexy ;-)

Installer Node Exporter

Prometheus ne sait pas collecter d'informations tout seul. Il lui faut des exporters. Le plus simple et le plus complet pour avoir une vision global de la situation d'une machine (CPU, RAM, Load, traffic, etc) est le bien nommé Prometheus Node Exporter. Pour l'installer :
apt install prometheus-node-exporter

Configurer le Node Exporter dans Prometheus

Maintenant que les deux premiers outils sont installés, il va falloir les faire bosser ensemble. On va simplement déclarer dans la configuration de Prometheus qu'il doit se mettre d'accord avec l'exporter :
vim /etc/prometheus/prometheus.yml
scrape_configs:
  - job_name: 'prometheus'

    scrape_interval: 5s
    scrape_timeout: 5s

    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node'
    static_configs:
      - targets: ['monserveur:9100','monserveurdeux:9100']

L'exemple de configuration ci-dessus est quasiment celle de base. Il faut noter que le job_name 'prometheus' est là pour expliquer que Prometheus est en local. Quant au job_name 'node',  il fait comprendre à Prometheus que le Node Exporter est présent sur les hosts cités entre crochets.

On sauvegarde tout ça et on recharge la configuration de Prometheus avec le curl qui va bien :
curl -X POST http://localhost:9090/-/reload
Si vous n'avez pas d'erreur, on va enfin s'attaquer à la partie artistique de l'opération : les graphiques !

Installer Grafana

L'installation est, là aussi, triviale :
apt-get install grafana 
C'est 'achement difficile, tout ça, hein ?

Configurer Nginx

Pour ne pas avoir à toujours taper le port de Grafana, voici un bout de conf pour Nginx :
server {
    listen 80;

        root /var/www/html/;

        server_name grafana.monserveur.tld;

        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                proxy_pass http://127.0.0.1:3000;
        }
}

Configurer Grafana

- Ajouter une data source

Grafana, ça marche tout seul. Une fois installé, il vit sa vie. Par contre, il va falloir le brancher à Prometheus, tout de même.
Comme blablater, c'est chiant, voici une capture d'écran de ce que vous devez faire :



En commentaire : cliquez sur le menu en haut à gauche de Grafana pour ajouter une nouvelle data source et récupérer les informations que vous voyez dans la capture.
Vous remarquerez que le port mis en place est bien celui de Prometheus et pas celui du Node Exporter : Grafana ne communique pas avec Node Exporter (sur le port 9100), mais uniquement avec Prometheus.

On arrive à la fin. Maintenant que l'exporter balance des informations, que Prometheus en est conscient et que Grafana arrive à échanger avec Prometheus, on va pouvoir mettre en place un dashboard pour profiter des graphiques !

- Installer le dashboard Node Exporter Full

Ici, c'est aussi simple (mais pourquoi est-ce que je m'emmerde à écrire ce billet si c'est si simple ?!), pour installer un dashboard, allez dans le Menu de Grafana, puis Dashboard et enfin Import. Je dis bien Import, pas New. Enfin, ajoutez le nombre 1860 dans la premier champ pour faire apparaître la fenêtre suivante :



Bon, j'ai aussi cliqué n'importe-où sur la fenêtre pour que Grafana prenne en compte la nouvelle information et, finalement, affiche la capture ci-dessus.

On a fait le tour. Tout est bon. Vous pouvez aller sur la page d'accueil de Grafana, cliquer sur le nom de votre nouveau dashboard et profiter du spectacle !