tag:linuxfr.org,2005:/tags/loki/publicLinuxFr.org : les contenus étiquetés avec « loki »2021-04-21T22:57:20+02:00/favicon.pngtag:linuxfr.org,2005:Bookmark/29792021-04-21T09:01:08+02:002021-04-21T09:01:08+02:00Grafana passe en AGPLv3<a href="https://grafana.com/blog/2021/04/20/grafana-loki-tempo-relicensing-to-agplv3/">https://grafana.com/blog/2021/04/20/grafana-loki-tempo-relicensing-to-agplv3/</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/124039/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/glandos/liens/grafana-passe-en-agplv3#comments">ouvrir dans le navigateur</a>
</p>
Glandoshttps://linuxfr.org/nodes/124039/comments.atomtag:linuxfr.org,2005:News/393742019-11-30T17:33:12+01:002019-12-08T00:12:54+01:00Loki, centralisation de logs à la sauce PrometheusLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Cet article est une rapide introduction à Loki. Ce projet est <a href="https://grafana.com/oss/loki/">soutenu par Grafana</a> et a pour but de centraliser des journaux d’activités (serveurs ou conteneurs).</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f67726166616e612e636f6d2f7374617469632f696d672f646f63732f6c6f676f732f69636f6e5f6c6f6b692e737667/icon_loki.svg" alt="Logo de Loki" title="Source : https://grafana.com/static/img/docs/logos/icon_loki.svg"><br>
La source principale d’inspiration de Loki vient de Prometheus, avec l’idée de l’appliquer à la gestion des logs, le but étant de disposer du même mécanisme :</p>
<ul>
<li>utilisation d’étiquettes (<em>labels</em>) pour le stockage des données ;</li>
<li>réclamer très peu de ressources pour son exécution.</li>
</ul>
<p>Dans ce qui va suivre, nous allons revenir sur le principe de fonctionnement de Prometheus et donner quelques exemples d’utilisation dans le cadre d’un déploiement sous Kubernetes.</p>
</div><ul><li>lien nᵒ 1 : <a title="https://linuxfr.org/news/decouverte-de-l-outil-de-supervision-prometheus" hreflang="fr" href="https://linuxfr.org/redirect/104635">Découverte de l’outil de supervision Prometheus</a></li><li>lien nᵒ 2 : <a title="https://grafana.com/oss/loki" hreflang="en" href="https://linuxfr.org/redirect/104636">Loki: Prometheus‐inspired logging for cloud natives</a></li><li>lien nᵒ 3 : <a title="https://grafana.com/blog/2018/12/12/loki-prometheus-inspired-open-source-logging-for-cloud-natives/" hreflang="en" href="https://linuxfr.org/redirect/104649">Loki: Prometheus‐inspired, open source logging for cloud natives</a></li><li>lien nᵒ 4 : <a title="https://archive.fosdem.org/2019/schedule/event/loki_prometheus_for_logs/" hreflang="en" href="https://linuxfr.org/redirect/105316">FOSDEM 2019 — Loki: Prometheus for logs</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#toc-un-mot-sur-prometheus">Un mot sur Prometheus</a></li>
<li><a href="#toc-origine-du-besoin">Origine du besoin</a></li>
<li><a href="#toc-m%C3%A9thode-de-r%C3%A9solution-dincidents">Méthode de résolution d’incidents</a></li>
<li><a href="#toc-test-de-loki-en-local">Test de Loki en local</a></li>
<li><a href="#toc-architecture-de-loki">Architecture de Loki</a></li>
<li>
<a href="#toc-d%C3%A9ploiement-dans-kubernetes">Déploiement dans Kubernetes</a><ul>
<li><a href="#toc-installation-de-helm">Installation de Helm</a></li>
<li><a href="#toc-ajout-de-la-source-helm">Ajout de la source Helm</a></li>
<li><a href="#toc-d%C3%A9ploiement-de-loki">Déploiement de Loki</a></li>
</ul>
</li>
<li><a href="#toc-connexion-%C3%A0-grafana">Connexion à Grafana</a></li>
<li><a href="#toc-d%C3%A9finition-de-la-source-de-donn%C3%A9es-loki-depuisgrafana">Définition de la source de données Loki depuis Grafana</a></li>
<li><a href="#toc-interrogation-du-moteur-loki">Interrogation du moteur Loki</a></li>
<li><a href="#toc-inclusion-dans-un-tableau-de-bord">Inclusion dans un tableau de bord</a></li>
<li><a href="#toc-futur-de-loki">Futur de Loki</a></li>
</ul>
<h2 id="toc-un-mot-sur-prometheus">Un mot sur Prometheus</h2>
<p>Afin de bien comprendre le fonctionnement de Loki, il est important de comprendre celui de Prometheus. Le lecteur est invité à lire une publication précédente dans ces colonnes : « <a href="//linuxfr.org/news/decouverte-de-l-outil-de-supervision-prometheus">Découverte de l’outil de supervision Prometheus</a> ». Même si le produit a évolué entretemps (la version 2.0.0 venait de sortir), ce qui est écrit reste tout à fait valable avec la dernière version (2.14).</p>
<p>La caractéristique de ce produit est de récupérer des métriques en provenance de points de collecte (on parle d’exportateur) et de les stocker dans une base de données de type <a href="https://en.wikipedia.org/wiki/Time_series_database"><em>Time Series</em></a> en y ajoutant des métadonnées sous forme d’étiquettes (<em>labels</em>).</p>
<h2 id="toc-origine-du-besoin">Origine du besoin</h2>
<p>Ces derniers temps, Prometheus est devenu un standard de fait dans le monde de Kubernetes : son installation est très simple à réaliser et l’ensemble des briques d’une grappe de serveurs Kube dispose nativement d’un <em>end‑point</em> Prometheus. Le moteur Prometheus est également en mesure de récupérer des métriques en provenance des applications déployées dans ce type de grappe de serveurs tout en reprenant les étiquettes définies. La surveillance des consommations applicatives est donc très simple à mettre en œuvre.</p>
<p>Malheureusement, du côté des journaux, il n’y a pas encore de méthode clé en main et l’utilisateur doit trouver sa propre solution :</p>
<ul>
<li>un service géré de centralisation des journaux dans le <em>cloud</em> (AWS, Azure ou Google) ;</li>
<li>un service de supervision « <em>monitoring as a service</em> » (type Datadog) ;</li>
<li>la mise en place d’un service de centralisation.</li>
</ul>
<p>Au niveau de la troisième solution, votre serviteur avait traditionnellement l’habitude de mettre en place Elasticsearch, avec de nombreuses réserves à propos de ce produit, notamment sur sa lourdeur et la difficulté de sa mise en place.</p>
<p>Loki a justement été conçu dans le but de simplifier cette mise en place en répondant aux critères suivants :</p>
<ul>
<li>être un produit simple à démarrer ;</li>
<li>consommer peu de ressources ;</li>
<li>fonctionner tout seul sans intervention de maintenance particulière ;</li>
<li>servir de support à l’investigation en complément de Prometheus en cas de pépin.</li>
</ul>
<p>En revanche, cette légèreté se fait au prix de certains compromis. L’un d’eux est de ne faire aucune indexation du contenu. La recherche de texte n’est donc de ce point de vue pas très performante ni très riche et ne permet pas de faire des statistiques sur le contenu du texte. Mais comme Loki se veut être un équivalent de <code>grep</code> et doit servir de complément à Prometheus, ce défaut n’en est pas un.</p>
<h2 id="toc-méthode-de-résolution-dincidents">Méthode de résolution d’incidents</h2>
<p>Pour mieux comprendre en quoi Loki n’a pas besoin d’indexation, nous allons revenir sur la méthode utilisée par les concepteurs de Loki avec le schéma suivant : <br>
<em>1 Alert → 2 Dashboard → 3 Adhoc Query → 4 Log Aggregation → 5 Distributed Tracing → 6 Fix!</em></p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f67726166616e612e636f6d2f7374617469632f6173736574732f696d672f626c6f672f696d616765392e706e67/image9.png" alt="Méthode de résolution d’incidents" title="Source : https://grafana.com/static/assets/img/blog/image9.png"></p>
<p>L’idée est de partir d’une source d’alerte (notification Slack, SMS, etc.). La personne en charge du suivi fait alors la démarche suivante :</p>
<ul>
<li>consultation des tableaux de bord Grafana ;</li>
<li>consultation des métriques brutes (dans Prometheus, par exemple) ;</li>
<li>consultation des journaux (Elasticsearch, par exemple) ;</li>
<li>éventuellement, consultation des traces distribuées (Jaeger, Zipkin, etc.) ;</li>
<li>enfin, correction du dysfonctionnement.</li>
</ul>
<p>Ici, dans le cas d’un empilement (<em>stack</em>) Grafana + Prometheus + Elasticsearch + Zipkin, l’utilisateur devra changer quatre fois d’outils. Afin de réduire les temps d’intervention, l’idée est de tout faire avec un seul outil : Grafana. À noter que Grafana propose cette notion d’exploration depuis la version 6. Il devient ainsi possible de consulter les données brutes de Prometheus directement depuis Grafana.</p>
<p>Depuis cet écran, il est possible de consulter les journaux de Loki associés aux métriques de Prometheus, notamment en faisant appel à la notion de découpage de l’écran. On imagine très bien qu’une fois que Loki aura été correctement intégré dans Grafana, la suite des travaux se fera sûrement sur l’intégration de Grafana et des outils de traçage distribués.</p>
<h2 id="toc-test-de-loki-en-local">Test de Loki en local</h2>
<p>Le plus simple pour tester Loki en local est de passer par Docker et l’outil docker-compose. Le fichier docker-compose se trouve sur le dépôt de Loki. La récupération du contenu de ce dépôt se fait à l’aide de la commande <em>git</em> suivante :</p>
<pre><code class="sh">git clone https://github.com/grafana/loki.git</code></pre>
<p>Reste ensuite à se rendre dans le répertoire production :</p>
<pre><code class="sh"><span class="nb">cd</span> production</code></pre>
<p>De là, il est possible de récupérer la dernière version des images Docker :</p>
<pre><code class="sh">docker-compose pull</code></pre>
<p>Enfin, la pile de Loki se lance à l’aide de la commande suivante :</p>
<pre><code class="sh">docker-compose up</code></pre>
<h2 id="toc-architecture-de-loki">Architecture de Loki</h2>
<p>Un petit dessin valant toujours mieux qu’un long discours, ci‑dessous un petit schéma de principe de Loki :</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f67726166616e612e636f6d2f7374617469632f6173736574732f696d672f626c6f672f696d616765312e706e67/image1.png" alt="Architecture de Loki" title="Source : https://grafana.com/static/assets/img/blog/image1.png"> <em>Un client Web fait tourner des applications sur le serveur, Promtail en collecte les journaux qu’il envoie à Loki, le client Web envoie aussi des métadonnées à Loki. Loki agrège le tout et transmet à Grafana.</em></p>
<p>Loki est démarré. Afin de consulter les composants présents, lancez la commande suivante :</p>
<pre><code class="sh">docker ps</code></pre>
<p>Dans le cas d’un démon Docker fraîchement installé, la commande doit alors renvoyer la sortie suivante :</p>
<pre><code>... IMAGE ... PORTS NAMES
... grafana/promtail:... production_promtail_1
... grafana/grafana:m... 0.0.0.0:3000->3000/tcp production_grafana_1
... grafana/loki:late... 80/tcp, 0.0.0.0:3100->3100/tcp production_loki_1
</code></pre>
<p>On retrouve les briques suivantes :</p>
<ul>
<li>Promtail : un agent qui prend en charge la centralisation des journaux (Promtail, pour <em>Tailing logs in Prometheus format</em>) ;</li>
<li>Grafana : le célèbre outil de mise en page des données ;</li>
<li>Loki : le démon de centralisation des données.</li>
</ul>
<p>Dans le cadre d’une installation sur infrastructure classique (à base de machines virtuelles par exemple), l’agent Promtail devra être déployé sur chaque machine. Grafana et Loki pourront être éventuellement installés sur la même machine.</p>
<h2 id="toc-déploiement-dans-kubernetes">Déploiement dans Kubernetes</h2>
<p>L’installation des briques de Loki dans Kubernetes va s’appuyer sur les éléments suivants :</p>
<ul>
<li>un gestionnaire de démons (DaemonSet) pour déployer l’agent Promtail sur chacune des machines de la grappe de serveurs ;</li>
<li>un déploiement (Deployment) pour déployer la partie Loki ;</li>
<li>et un dernier déploiement pour Grafana.</li>
</ul>
<p>Par chance, Loki est disponible sous forme de paquet Helm afin de simplifier son déploiement.</p>
<h3 id="toc-installation-de-helm">Installation de Helm</h3>
<p>Pour la suite, l’utilisateur devra disposer de la commande <code>helm</code>. Cette dernière se récupère sur le <a href="https://github.com/helm/helm/releases/tag/v2.16.1">dépôt GitHub</a> du projet. Charge à l’utilisateur de décompresser l’archive correspondant à l’architecture du poste de l’utilisateur et de placer la commande <code>helm</code> dans <code>$PATH</code>.</p>
<p>N. B. : La version 3.0.0 de Helm vient juste de sortir. Étant donné qu’elle change beaucoup de choses, il est conseillé au lecteur d’attendre un peu avant de s’y mettre.</p>
<h3 id="toc-ajout-de-la-source-helm">Ajout de la source Helm</h3>
<p>La première étape va consister à ajouter le dépôt « loki » à l’aide de la commande suivante :</p>
<pre><code>helm repo add loki https://grafana.github.io/loki/charts
</code></pre>
<p>Une fois cette commande lancée, il devient possible de chercher les paquets portant le nom « loki » :</p>
<pre><code>helm search loki
</code></pre>
<p>Ci‑dessous un exemple de résultat renvoyé :</p>
<pre><code>loki/loki 0.17.2 v0.4.0 Loki: like Prometheus, but for logs.
loki/loki-stack 0.19.1 v0.4.0 Loki: like Prometheus, but for logs.
loki/fluent-bit 0.0.2 v0.0.1 Uses fluent-bit Loki go plugin for gathering logs and sen...
loki/promtail 0.13.1 v0.4.0 Responsible for gathering logs and sending them to Loki
</code></pre>
<p>Ces paquets ont différentes fonctions :</p>
<ul>
<li>le paquet <em>loki/loki</em> correspond au serveur Loki seul ;</li>
<li>le paquet <em>loki/fluent-bit</em> permet de déployer un DaemonSet s’appuyant sur <em>fluent‑bin</em> pour centraliser les journaux à la place de Promtail ;</li>
<li>le paquet <em>loki/promtail</em> contenant l’agent de centralisation des journaux d’activités ;</li>
<li>le paquet <em>loki/loki-stack</em> permettant de déployer Loki et Promtail en une seule fois.</li>
</ul>
<h3 id="toc-déploiement-de-loki">Déploiement de Loki</h3>
<p>Afin de déployer Loki dans Kubernetes, dans l’espace de noms « <em>monitoring</em> », lancez la commande suivante :</p>
<pre><code>helm upgrade --install loki loki/loki-stack --namespace monitoring
</code></pre>
<p>Pour disposer d’un espace disque persistant, ajoutez l’option <code>--set loki.persistence.enabled=true</code> :</p>
<pre><code>helm upgrade --install loki loki/loki-stack --namespace monitoring --set loki.persistence.enabled=true
</code></pre>
<p>Remarque : dans le cas où vous souhaiteriez déployer Grafana en même temps, ajouter l’option <code>--set grafana.enabled=true</code>.</p>
<p>Au lancement de cette commande, l’utilisateur devrait obtenir la sortie suivante :</p>
<pre><code>LAST DEPLOYED: Tue Nov 19 15:56:54 2019
NAMESPACE: monitoring
STATUS: DEPLOYED
RESOURCES:
==> v1/ClusterRole
NAME AGE
loki-promtail-clusterrole 189d
...
NOTES:
The Loki stack has been deployed to your cluster. Loki can now be added as a datasource in Grafana.
See http://docs.grafana.org/features/datasources/loki/ for more detail.
</code></pre>
<p>Un coup d’œil sur l’état des <em>pods</em> de l’espace de noms « <em>monitoring</em> » achèvera de nous indiquer que tout est déployé :</p>
<pre><code>kubectl -n monitoring get pods -l release=loki
</code></pre>
<p>Ci‑dessous un exemple de résultat renvoyé :</p>
<pre><code>NAME READY STATUS RESTARTS AGE
loki-0 1/1 Running 0 147m
loki-promtail-9zjvc 1/1 Running 0 3h25m
loki-promtail-f6brf 1/1 Running 0 11h
loki-promtail-hdcj7 1/1 Running 0 3h23m
loki-promtail-jbqhc 1/1 Running 0 11h
loki-promtail-mj642 1/1 Running 0 62m
loki-promtail-nm64g 1/1 Running 0 24m
</code></pre>
<p>Tous les <em>pods</em> sont démarrés. Il est maintenant temps de faire quelques tests !</p>
<h2 id="toc-connexion-à-grafana">Connexion à Grafana</h2>
<p>Sous Kubernetes, afin de pouvoir se connecter à Grafana, il est nécessaire d’ouvrir un tunnel vers son pod. Ci‑dessous la commande permettant d’ouvrir le port 3 000 vers le <em>pod</em> de Grafana :</p>
<pre><code>kubectl -n monitoring port-forward svc/loki-grafana 3000:80
</code></pre>
<p>Autre point important, la nécessité de récupérer le mot de passe de l’administrateur de Grafana. Ce dernier est stocké dans le <strong>secret</strong> <strong>loki-grafana</strong> dans le champ <code>.data.admin-user</code> au format <a href="https://fr.wikipedia.org/wiki/base64" title="Définition Wikipédia">base64</a>.</p>
<p>Afin de le récupérer, lancez la commande suivante :</p>
<pre><code>kubectl -n monitoring get secret loki-grafana --template '{{index .data "admin-password"|base64decode}}' ; echo
</code></pre>
<p>Utilisez ce mot de passe conjointement avec le compte d’administration par défaut (admin).</p>
<h2 id="toc-définition-de-la-source-de-données-loki-depuisgrafana">Définition de la source de données Loki depuis Grafana</h2>
<p>Première chose à faire, s’assurer que la source de données (<em>datasource</em>) de Loki est bien présente (se rendre à l’emplacement suivant : <em>Configuration / Datasource</em>).</p>
<p>Voici un exemple de définition valide :</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f312e62702e626c6f6773706f742e636f6d2f2d66685768784262674568512f58643145575071485447492f414141414141414151666f2f735966674e4f4d416433777a64593142514e35595a6c4c41727a436e6a49477951434c63424741735948512f73313431302f64617461736f757263652d6c6f6b692e706e67/datasource-loki.png" alt="Exemple de définition de la source de données vers Loki" title="Source : https://1.bp.blogspot.com/-fhWhxBbgEhQ/Xd1EWPqHTGI/AAAAAAAAQfo/sYfgNOMAd3wzdY1BQN5YZlLArzCnjIGyQCLcBGAsYHQ/s1410/datasource-loki.png"></p>
<p>Un clic sur le bouton Test permettra de s’assurer que la communication avec Loki se passe bien.</p>
<h2 id="toc-interrogation-du-moteur-loki">Interrogation du moteur Loki</h2>
<p>Rendez‑vous maintenant dans le champ « Explorer » de Grafana. Au moment de l’ingestion des journaux des conteneurs, Loki se charge d’ajouter les annotations en provenance de Kubernetes. Il devient ainsi possible de s’en servir pour récupérer les journaux d’un conteneur spécifique.</p>
<p>Ainsi, pour sélectionner les journaux des conteneurs promtail, la requête à rentrer sera la suivante : <code>{container_name="promtail"}</code>. Pensez également à bien sélectionner la source de données de Loki.</p>
<p>Cette requête renverra alors l’activité de ces conteneurs sous la forme suivante :</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f312e62702e626c6f6773706f742e636f6d2f2d5759324143525f6f6b37592f58643133454142446c76492f41414141414141415166302f61626a6d424650746c383832543547487645566451513955624159555f30467367434c63424741735948512f73313630302f726571752532354333253235414174652d6c6f6b692d67726166616e612e706e67/requ%25C3%25AAte-loki-grafana.png" alt="Résultat requête dans Grafana" title="Source : https://1.bp.blogspot.com/-WY2ACR_ok7Y/Xd13EABDlvI/AAAAAAAAQf0/abjmBFPtl882T5GHvEVdQQ9UbAYU_0FsgCLcBGAsYHQ/s1600/requ%25C3%25AAte-loki-grafana.png"></p>
<h2 id="toc-inclusion-dans-un-tableau-de-bord">Inclusion dans un tableau de bord</h2>
<p>Depuis la version 6.4 de Grafana, il est possible d’inclure un extrait des journaux dans un tableau de bord Grafana. L’utilisateur peut alors rapidement mettre en parallèle les courbes de fréquentation de son site avec les traces renvoyées par son application.</p>
<p>Ci‑dessous un exemple de tableau de bord réalisant ce mélange :</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f312e62702e626c6f6773706f742e636f6d2f2d6562355f4b316d34576f382f58643243304950707939492f41414141414141415167412f326361696a73704535313056794156766e76474b627335354f6864577764615951434c63424741735948512f73313630302f64617368626f6172642d67726166616e612d70726f6d6574686575732d6c6f6b692e706e67/dashboard-grafana-prometheus-loki.png" alt="Exemple de tableau de bord avec des métriques Prometheus et des journaux en provenance de Loki" title="Source : https://1.bp.blogspot.com/-eb5_K1m4Wo8/Xd2C0IPpy9I/AAAAAAAAQgA/2caijspE510VyAVvnvGKbs55OhdWwdaYQCLcBGAsYHQ/s1600/dashboard-grafana-prometheus-loki.png"></p>
<h2 id="toc-futur-de-loki">Futur de Loki</h2>
<p>Lorsque j’ai commencé à écrire cet article en août, la version 0.3 de Loki venait à peine de sortir. La sortie de la version 1.0 est en quelque sorte la raison qui m’a poussé à finir mon travail. :)</p>
<p>J’ai commencé à l’utiliser à partir de la version 0.1 et il faut bien avouer qu’à l’époque la stabilité n’était pas encore au rendez‑vous. Globalement, la version 0.3 a apporté de vrais signes de maturité et les versions suivantes (0.4, puis 1.0) n’ont fait que conforter cette impression.</p>
<p>Dorénavant, avec la version 1.0.0, plus personne ne devrait avoir d’excuse pour ne pas utiliser cet excellent outil.</p>
<p>Les travaux les plus intéressants ne devraient plus avoir lieu sur Loki mais plus sur l’intégration avec l’excellent Grafana. En effet, la version 6.4 de Grafana a apporté une bonne intégration avec les tableaux de bord.</p>
<p>La version 6.5 qui vient juste de sortir améliore encore cette intégration en permettant de convertir automatiquement le contenu de la ligne de journal lorsqu’elle est au format JSON.</p>
<p>Ci‑dessous une petite vidéo présentant ce mécanisme :</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f67726166616e612e636f6d2f646f63732f696d672f646f63732f7636352f6578706c6f72655f6c6f675f64657461696c732e676966/explore_log_details.gif" alt="Utilisation du nouvel affichage des lignes de Loki dans Grafana" title="Source : https://grafana.com/docs/img/docs/v65/explore_log_details.gif"></p>
<p>Il devient aussi possible d’utiliser un des champs de la structure JSON pour par exemple :</p>
<ul>
<li>pointer vers un outil externe ;</li>
<li>filtrer le contenu des journaux.</li>
</ul>
<p>On peut alors cliquer sur le champ <em>traceId</em> afin de pointer vers un tableau de bord de Zipkin ou Jaeger.</p>
</div><div><a href="https://linuxfr.org/news/loki-centralisation-de-logs-a-la-sauce-prometheus.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/117838/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/loki-centralisation-de-logs-a-la-sauce-prometheus#comments">ouvrir dans le navigateur</a>
</p>
yannigZeroHeureBAudpalm123Davy DefaudNils RatuszniktisaacYsabeau 🧶 🧦Benoît Sibaudhttps://linuxfr.org/nodes/117838/comments.atom