Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Technologie

Si on regardait les bots des moteurs de recherche

Rédigé par dada / 08 février 2021 / 2 commentaires


Il y a un peu plus d'un an, je me suis amusé à comparer les moteurs de recherche en analysant leur capacité d'indexation sur mon blog. À l'époque, l'affaire de l'index de Qwant battait son plein : on se demandait qui étaient ces moteurs de recherche à l'indépendance douteuse.

Parler de moteur de recherche, qu'il soit éthique, écologique ou encore respectueux de la vie privée, c'est un foutoir sans nom. Notez que Lord s'est lancé dans la bataille et je vous invite à lire son billet. Il a pris le temps de vous expliquer en quoi on se fait toutes et tous avoir, plus ou moins.

Bref, ici, j'ai envie de vous partager le fruit d'une partie de mon travail en vous montrant la fréquence de passage des robots des différents moteurs de recherche. Oui, je mets en place des machins qui dépiautent les logs dans tous les sens possibles. Mais jamais pour un usage commercial !

Méthode : J'ai lancé une requête simple dans Grafana/Loki qui remonte les occurrences des différents bots dans les logs d'accès à mon blog tout le long du mois de janvier, avec un maximum de 5 000 requêtes*.
Note : L'intégration des images dans PluXml n'est pas parfaite, du coup, pensez à les clic droit Afficher l'image.
Note 2 : Les échelles sont différentes en fonction des graphiques. Oui, je sais, c'est pas top !

Duckduckgo


Ce moteur de recherche** n'est passé que deux fois me faire des coucous. Deux fois assez terribles puisqu'on remarque 2 pics d'un peu plus de 250 requêtes en quelques secondes.
En regardant ce qu'il a récupéré, je peux vous dire que ce n'est pas jojo : ça ne concerne que le thème de ce site.

Qwant



Avec le champion européen, on se rend compte qu'il bosse un peu plus que DDG. J'ai 2154 requêtes (avec un pic à 542 !) espacées de plusieurs jours. C'est un peu mieux au niveau de la diversité des infos relevées : Qwantify s'est promené un peu partout dans les articles, les images et même les flux RSS des commentaires.

Bing



Avec Bing, on arrive à ce que j'imagine être la quantité de travail d'un moteur de recherche. On est entre 30 et 100 requêtes par jour, tous les jours. C'est clairement trop pour mon petit site qui n'est pas mis à jour aussi souvent. Pour un site professionnel, ou un machin à buzz type Ouest-France ou 20Minutes, ça doit être important.

Mojeek



Je dois avouer que je ne pensais pas le trouver, ce nouveau moteur de recherche britannique. Il passe de temps en temps, principalement pour analyser mon robots.txt ! Bon, il se veut écolo, respectueux de la vie privée et surtout très jeune. En poussant un peu mes recherches, j'ai découvert qu'il était passé chez moi pour la première fois le 22 août 2020.

Google


Le Patron : le GoogleBot. Je suis surpris de ne pas le voir plus tranchant que le robot de Bing. C'est pas flagrant : les deux touchent les limites de mon test : 5000 requêtes. Comme pour Bing, quel est l'intérêt de passer si souvent ? Mystère.

Comparaison

En plus du graphique ci-dessous, je vous offre un instantané plus joli pour mettre tout ça en perceptive.

Conclusion

Non, pas de conclusion. Ce que je vous montre n'est qu'un coup d’œil à un instant donné. Comme il est impossible de savoir vraiment ce qui peut déclencher le retour d'un bot sur tel ou tel site, il est impossible de comprendre la fréquence de passage d'un bot. Ici, je me fends d'un billet une ou deux fois par mois : autant dire qu'un passage par mois est largement suffisant pour indexer tout le contenu. Rien ne justifie 30 ou 200 requêtes par jour.

Enfin voilà, des bisous



* Pourquoi un maximum de 5 000 ? Parce que Googlebot.
** Pas vraiment, mais bon.

De l'alerting à base de logs v2

Rédigé par dada / 06 novembre 2020 / Aucun commentaire



À l'époque, mi-février 2020, je découvrais les pipelines de Promtail, une façon rudimentaire de parcourir des logs, d'y chercher ce qu'on veut et de déclencher une alerte si besoin. C'était ma v1 de l'alerting à base de logs.
Dans les faits, ça marche bien, mais ce n'est pas vraiment simple à mettre en place et ça demande des bidouilles pas possible quand on commence à vouloir trifouiller dans des choses plus complexes, comme Docker.

Il y a quelques semaines, j'ai découvert qu'il y avait un moyen encore plus simple et mieux intégré pour faire de l'alerting avec Grafana / Loki / Promtail : Loki lui-même.

Configurer Loki comme Datasource de type Prometheus

Si vous avez l'habitude de jongler avec toute cette stack, le titre de cette partie devrait vous faire tilter. C'est pourtant ce qu'il faut faire : pour Grafana, Loki va se la jouer Prometheus.


En version texte :
  • Name : ce que vous voulez
  • URL : http://localhost:3100/loki
Dans la partie Explore de Grafana, vous deviez maintenant avec PromLoki comme Datasource :


Et c'est à partir de maintenant qu'on peut commencer à jouer !

Créer un panel lié à une alerte

On va s'amuser à créer un panel pour analyser les logs qui nous intéressent.

Notez qu'on a bien choisi PromLoki comme datasource.


Dans mon exemple, ce sont les logs de Pixelfed que je veux parcourir pour pouvoir agir en cas de production.ERROR :
count_over_time(({hostname="pixelfed"} |= "production.ERROR")[1m])
Maintenant qu'on sait ce qu'on cherche, on va configurer les règles qui déclencheront les alertes.


Dans les Rules :
- Choisissez un nom.
- On évalue toute le 10s

Dans les conditions :
- When : on fait la moyenne en choisissant avg()
- Of : cliquez sur les variables entre les virgules pour préciser vos réglages
- Above : ici, j'attends plus de 3 occurrences pour déclencher une alerte

Si vous avez le coup d’œil, vous avez remarquez que les deux captures d'écran présentées ci-dessus ont une ligne rouge : c'est la limite de tolérance de l'alerte. En dessous, tout va bien, au dessus, c'est la fin du monde.

Recevoir les alertes

Maintenant que vous avez la possibilité de déclencher alertes, il faut les recevoir d'une façon ou d'une autre. Grafana peut se brancher à un paquet d'outil, de Telegram à Elements en passant par Discord et l'Alert Manager de Prometheus voire Grafana llui-même: faites votre choix !


Perso, je me sers de mon AlertManager, il me noie sous les mails en cas de souci et c'est très bien comme ça !


Contrôler son GPU avec radeon-profile

Rédigé par dada / 05 octobre 2020 / 4 commentaires


Contexte

Parmi mes dernières mésaventures, il y a l'incapacité de mon Ubuntu 20.04 à correctement gérer la ventilation de ma RX 590 XFX.  Il s'agit d'une carte graphique plus ou moins récente de chez AMD.

J'avais jeté mon dévolu dessus lors d'une promotion quelconque après la lecture d'un papier racontant que, maintenant, sous GNU/Linux, c'est AMD/ATI qui fonctionne le mieux avec - en bonus - des pilotes libres.

Enfin, c'était avant qu'elle achève ma vieille alimentation sous-dimensionnée et que je précipite la fin de vie de mon ancien CPU avec un coup de tournevis fort mal placé lors de l'installation du système de refroidissement sensé lui permettre de survivre encore quelques années au poids des applications modernes.

Bref, des mésaventures, je vous dis.

Radeon-profile, c'est quoi ?

Déjà, il s'agit d'une application libre que vous pouvez trouver par ici.

Elle permet :
  • de monitorer sa carte graphique (fréquence, voltage, température, vitesse des ventilateurs, etc).
  • de contrôler les ventilateurs.
  • d'overclocker son matériel.
  • de définir des profiles en fonction des éléments cités précédemment.
En gros, ça fait le café.

Installation

Si vous êtes sous Ubuntu, vous allez être contents, il y un PPA :
sudo add-apt-repository ppa:radeon-profile/stable
sudo apt update
sudo apt install radeon-profile

Si vous utilisez une autre distrib', je vous redirige vers la doc pour compiler la chose.

Mon usage

Mon Ubuntu n'étant pas foutu de correctement contrôler les ventilo de la chose, j'utilse radeon-profile pour définir une vitesse de rotation en fonction de la température de la bête. Ça donne ça :


On peut voir que j'ai créé 9 paliers qui me permettent de garder la carte au « frais » en fonction de la température. Joli, non ? Je ne vous cache pas que je n'ai pas encore trouvé de cas dans lequel ces paliers sont pertinents.
En fait, je passe souvent du « elle ne fout rien » à « elle est utilisée à fond ». Y'a pas vraiment d'étape entre les deux, ou rarement.

En vrai, vous pouvez simplement vous servir de la configuration par défaut de l'appli et ça roulera tout seul. Vous passerez juste d'un bureau silencieux aux environs de la BA 113, sans profiter de la « douce » augmentation du volume.

Bref

Cet utilitaire m'a clairement sauvé la mise. Avant de tomber dessus, je commençais à tristement me dire que le sort s'acharnait et que j'allais devoir ravaler les velléités de joueur occasionnel.

Sortir d'un /boot débordant

Rédigé par dada / 11 septembre 2020 / 2 commentaires



Vous avez déjà souffert devant un /boot plein ? Oui, je le sais. C'est arrivé à tout le monde. Pas la peine de se cacher.

Fallait passer LVM ou Btfrs, vous me direz. J'entends bien. Des fois, les planètes s'alignent mal et faut faire avec. Je vous propose d'utiliser une solution radicale pour vous en sortir : supprimer la partition /boot pour la remplacer par un répertoire /boot à la racine.

1. Faire une sauvegarde

On va toucher à ce qui permet à votre serveur de démarrer. Faire une sauvegarde semble être une excellente idée.

2. Sauvegarder /boot

On va commencer par mettre de côté le contenu de la partition /boot :
root@ubuntu:/ mkdir /boot_bkp && cp -R /boot/* /boot_bkp/
On s'en servira plus tard.

3. Commenter le fstab

Comme on en n'a plus besoin, on va dégager l'entrée de /boot dans le /etc/fstab. Les lignes de conf ci-dessous sont des exemples, retenez seulement que les lignes contenant /boot doivent avoir un # devant.
root@ubuntu:/home/user# cat /etc/fstab 
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda3 during installation
UUID=392d55fd-d4e5-4a67-8834-5d29c7toto42 /               ext4    noatime,errors=remount-ro 0       1
# /boot was on /dev/sda2 during installation
#UUID=1b7533ec-96c2-4eef-9eac-b117c0toto42 /boot           ext4    noatime         0       2
# /home was on /dev/sda5 during installation
UUID=7545673f-5c08-4201-9e30-f56d32toto42 /home           ext4    noatime         0       2
# swap was on /dev/sda4 during installation
UUID=9ad39928-283d-43d6-8ee5-98e296toto42 none            swap    sw              0      
De cette façon, la partition ne sera plus montée en cas de redémarrage.

4. Démonter la partition

On va maintenant umount /boot :
root@ubuntu:/home/user# umount /boot
On peut vérifier la disparition de l'ancienne partition avec un simple grep :
root@ubuntu:/home/user# mount | grep boot
Si quelque chose apparaît, c'est que vous n'avez pas démonté la partition. Pensez à sortir de /boot sous peine de vous voir lire un truc du genre « blabla is too busy ! ».

5. Refaire un /boot à la racine

On va maintenant se servir du /boot_bkp créé plus tôt :
root@ubuntu:/home/user# mkdir /boot && cp -R /boot_bkp/* /boot
Ainsi, on se retrouve avec un /boot inutile mais à sa place.

6. Réinstallation de grub

On va lancer la procédure d'installation de grub sur votre disque comme s'il n’était plus là :
root@ubuntu:/home/user# grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
L'installation de grub prend quelques secondes et n'est pas très bavarde. Vous pouvez ajouter l'option -v si vous êtes curieux.

À ce moment précis, tout est en ordre. Vous devriez pouvoir relancer votre machine et mamailler vos kernels comme bon vous semble. J'ajoute tout de même une dernière étape, sait-on jamais ?

7. Mettre à jour grub

On n'est jamais assez prudent, on va donc mettre à jour grub :
root@ubuntu:/home/user# update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.0-47-generic
Found initrd image: /boot/initrd.img-5.4.0-47-generic
Found linux image: /boot/vmlinuz-5.4.0-45-generic
Found initrd image: /boot/initrd.img-5.4.0-45-generic
done

Et voilà ! On se retrouve avec un /boot placé à la racine, avec les répertoire grub/ contenant le grub.cfg qui va bien et tout le reste.

Vous n'avez plus qu'à redémarrer, après avoir fait des backups.

Je me suis mis à l'impression 3D

Rédigé par dada / 11 août 2020 / 13 commentaires


Celles et ceux qui me suivent sur Mastodon ou Pixelfed savent que j'ai franchi le pas : j'ai enfin ma bête à la maison. Je vais vous raconter des trucs, parce que voilà, c'est un monde qu'il est quand-même chouette et qui se rapproche de celui des libristes.

Le choix de la bête

Quand je ne sais pas quoi choisir, je demande de l'aide. Je n'avais pas beaucoup de contraintes : une machine produite en France, avec une entreprise domiciliée en France et de quoi bidouiller sans me ruiner. Quelques toots plus tard, j'étais mis en relation avec des makers qui m'ont trouvé ce que je voulais : Dagoma 3D ! Une entreprise du Nord de la France qui fait des imprimantes 3D. Nickel.

Ne voulant pas d'un truc clé en main, exit la Magis, j'ai donc craqué pour une Disco Ultimate avec l'option écran. Quelques euros en moins (tirés de mon arrêt du tabac) et quelques jours plus tard, je me retrouve avec des petits cartons et beaucoup trop de bobines de PLA :


Je vous laisse parcourir l'album photo dédié à mes délires 3D pour comprendre qu'une imprimante 3D en kit, c'est vraiment un truc en kit. J'ai passé des heures à la monter. Dans ma mémoire, la dernière fois que j'ai autant souffert, c'était pour l'installation de ma première distribution GNU/Linux, Ubuntu 6.06, il y a plus de 14 ans !

Un univers libriste-compatible

J'ai découvert un truc assez fou : le monde de l'impression 3D est assez similaire au monde du logiciel libre.
  • On y retrouve un Github, qui s'appelle Thingiverse.
  • La plupart des imprimantes ont des plans en opensource.
  • Les pièces de rechanges sont imprimables.
  • Il existe un GNU/Linux des imprimantes : Marlin. Ce dernier est forké au bon vouloir des constructeurs.
  • Le logiciel pour préparer les impressions, Cura, est opensource et en python.
En gros, on a le droit d'utiliser, de modifier, d'améliorer et de redistribuer les modifications des outils. Ça ressemble à notre univers, non ?

Anecdote : j'ai cassé une pièce lors de l'assemblage de ma bête. J'ai tout de même réussi à finir le montage, à apprendre à gérer la machine et à imprimer la pièce cassée en allant sur le Github du constructeur. Rien que ça, je trouve que c'est génial.

On en fait quoi, de son imprimante ?

J'ai commencé par imprimer de quoi me servir sereinement d'elle. Une bobine, ça doit bien se dérouler, j'ai donc commencé par imprimer des supports de bobines. C'est simple et ça donne rapidement un résultat. Quoi de plus agréable que de commencer par un truc qui vous allez immédiatement utiliser ?

Ensuite, j'ai commencé par faire des choses pratiques comme un support pour mon téléphone, celui de mon père, de mon frangin, etc.... J'ai ensuite commencé à mêler le geek traditionnel du numérique et mes envies d'impression en sortant un boîtier pour Raspberry Pi :



Franchement, c'est comme une distribution GNU/Linux : vous en faites ce que vous voulez ! Amusez-vous à faire des recherches dans les sites qui regorgent de modèles pour vous rendre compte à quel point c'est fou.

L'autre jour, j'ai fait une recherche avec un modèle précis de plafonnier LED. Il manquait des attaches... Quelques minutes m'ont suffi pour trouver ces attaches modélisées gentiment par un illustre bienfaiteur. J'ai imprimé ça et le souci était réglé.
Dans le genre, j'ai deux disques durs externes en RAID1 branchés au module F de mon Turris Mox pour avoir mon Nextcloud en local. Une recherche rapide et je tombe sur de quoi ne plus les laisser traîner. J'adore.

La prise en main

Se mettre à l'impression 3D n'est pas une chose si facile que ça. C'est un environnement qui a ses codes et ses repères : on parle de slicer, de gauchissement (warping), de STL, de PLA, de Z Offset, skirt, etc. Le vocabulaire est dense.

Une chose que je n'avais pas comprise au départ : c'est le temps d'impression. Bordel que c'est lent ! Compter 30min pour un truc rikiki et une dizaine d'heure pour une pièce élaborée.

C'est aussi un univers riche en modèles : de l'imprimante à 150€ au monstre à 8 000€, il y a des différences. En trouvant la pièce que vous cherchiez sur, disons, cult3d, rien ne dit que vous allez pouvoir l'imprimer avec l'outil que vous avez à la maison. Il faut faire attention !

Comme toute nouvelle activité, il faut se mettre dedans, prendre le temps de se planter, de tester et de garder son calme.

La modélisation

Pour le moment, je continue à beaucoup m'appuyer sur ce que les gens partagent. Je me mets doucement à la modélisation mais c'est épuisant. C'est un monde que je ne connais pas du tout. Tout est à apprendre.

D'abord, il faut choisir son logiciel :
FreeCAD et OpenCAD sont les seuls logiciels libres de la liste. SketchUp ne me plaît pas. J'ai réussi à faire des pieds pour mon Mox avec ThinkerCAD. Ma première pièce conçue, imprimée et utilisée :


 
Ceci-dit, c'est Fusion360 que je vais approfondir. Pourquoi Fusion360 ? Ça semble être l'outil le plus poussé et le plus utilisé. De plus, ils ont pondu une version web qui permet de s'en servir sous Linux.

Des ressources ?

Après les liens fournis tout au long de ce billet, je vous encourage à rejoindre la joyeuse équipe que j'ai découvert sur le salon Matrix Impression3D. Là-bas, vous trouverez un lien vers un superbe pad regroupant tout ce qu'on a trouvé !