{"id":56206,"date":"2020-02-07T00:00:00","date_gmt":"2020-02-06T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/loki-sbor-logov-ispolzuya-podhod-prometheus"},"modified":"2021-02-01T11:41:00","modified_gmt":"2021-02-01T09:41:00","slug":"loki-sbor-logov-ispolzuya-podhod-prometheus","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/loki-sbor-logov-ispolzuya-podhod-prometheus","title":{"rendered":"Loki \u2014 collecte de logs utilisant l'approche Prometheus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Salut, chers Hubrovians ! \u00c0 l'approche du nouveau cycle de cours, <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/P37L\/\">\u00ab Pratiques et outils DevOps \u00bb<\/a><\/noindex> nous avons pr\u00e9par\u00e9 pour vous la traduction d'un mat\u00e9riel int\u00e9ressant.<\/i><\/p>\n<p>Cet article est une br\u00e8ve introduction \u00e0 Loki. Le projet Loki <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/oss\/loki\/\">est soutenu par Grafana<\/a><\/noindex> et vise \u00e0 centraliser la collecte de logs (depuis des serveurs ou des conteneurs).<\/p>\n<p>La principale source d'inspiration pour Loki \u00e9tait <noindex><a rel=\"nofollow\" href=\"http:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex> l'id\u00e9e d'appliquer ses approches \u00e0 la gestion des logs :<\/p>\n<ul>\n<li>utiliser des \u00e9tiquettes (labels) pour stocker des donn\u00e9es,<\/li>\n<li>consommer peu de ressources.<\/li>\n<\/ul>\n<p>Nous reviendrons sur les principes de fonctionnement de Prometheus et donnerons quelques exemples de son utilisation dans le contexte de Kubernetes.<\/p>\n<h3>Quelques mots sur Prometheus.<\/h3>\n<p>Pour comprendre pleinement comment fonctionne Loki, il est important de faire un pas en arri\u00e8re et de se souvenir un peu de Prometheus.<\/p>\n<p>Une des caract\u00e9ristiques distinctives de Prometheus est l'extraction des m\u00e9triques \u00e0 partir des points de collecte (via les exportateurs) et leur stockage dans TSDB (Time Series Data Base, base de donn\u00e9es des s\u00e9ries temporelles) avec ajout de m\u00e9tadonn\u00e9es sous forme d'\u00e9tiquettes.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Pourquoi est-ce n\u00e9cessaire<\/h3>\n<p>Derni\u00e8rement, Prometheus est devenu le standard de facto dans le monde des conteneurs et de Kubernetes : son installation est tr\u00e8s simple, et un point d'extr\u00e9mit\u00e9 pour Prometheus est pr\u00e9sent par d\u00e9faut dans un cluster Kubernetes. Prometheus peut \u00e9galement extraire des m\u00e9triques \u00e0 partir d'applications d\u00e9ploy\u00e9es dans des conteneurs, tout en pr\u00e9servant certaines \u00e9tiquettes. Par cons\u00e9quent, le suivi des applications est tr\u00e8s simple \u00e0 mettre en \u0153uvre.<\/p>\n<p>Malheureusement, il n'existe toujours pas de solution \"cl\u00e9 en main\" pour la gestion des logs, et vous devez trouver une solution pour vous :<\/p>\n<ul>\n<li>un service cloud g\u00e9r\u00e9 pour la centralisation des logs (AWS, Azure ou Google),<\/li>\n<li>un service de surveillance \u00ab monitoring as a service \u00bb (par exemple, Datadog),<\/li>\n<li>ou cr\u00e9er votre propre service de collecte des logs.<\/li>\n<\/ul>\n<p>Pour la troisi\u00e8me option, j'ai traditionnellement utilis\u00e9 Elasticsearch, bien que je ne l'aie pas toujours appr\u00e9ci\u00e9 (surtout en raison de son poids et de la complexit\u00e9 de sa configuration).<\/p>\n<p>Loki a \u00e9t\u00e9 con\u00e7u pour simplifier la mise en \u0153uvre selon les principes suivants :<\/p>\n<ul>\n<li>\u00eatre simple \u00e0 d\u00e9marrer,<\/li>\n<li>consommer peu de ressources,<\/li>\n<li>fonctionner de mani\u00e8re autonome sans aucun entretien sp\u00e9cial,<\/li>\n<li>servir de compl\u00e9ment \u00e0 Prometheus pour aider \u00e0 l'investigation des bugs.<\/li>\n<\/ul>\n<p>Cependant, cette simplicit\u00e9 se fait au prix de certains compromis. L'un d'eux est de ne pas indexer le contenu. Ainsi, la recherche textuelle n'est pas tr\u00e8s efficace ou riche, et ne permet pas de tenir des statistiques sur le contenu textuel. Mais comme Loki souhaite \u00eatre l'\u00e9quivalent de grep et un compl\u00e9ment \u00e0 Prometheus, ce n'est pas un inconv\u00e9nient.<\/p>\n<h3>Enqu\u00eate sur les incidents<\/h3>\n<p>Pour mieux comprendre pourquoi Loki n'a pas besoin d'indexation, revenons \u00e0 la m\u00e9thode d'enqu\u00eate sur les incidents utilis\u00e9e par les d\u00e9veloppeurs de Loki :<\/p>\n<p><img decoding=\"async\" alt=\"Loki \u2014 collecte de logs utilisant l&#039;approche Prometheus\" src=\"\/wp-content\/uploads\/2020\/02\/2f9ba72d68ccafbe44ab1700d08e3a33.jpg\" style=\"display:block;margin: 0 auto;\"><br \/>\n<i>1 Alerte \u2192 2 Tableau de bord \u2192 3 Requ\u00eate adhoc \u2192 4 Agr\u00e9gation des journaux \u2192 5 Tra\u00e7age distribu\u00e9 \u2192 6 Correction !<br \/>\n(1 Alerte \u2192 2 Tableau de bord \u2192 3 Requ\u00eate adhoc \u2192 4 Agr\u00e9gation des journaux \u2192 5 Tra\u00e7age distribu\u00e9 \u2192 6 Correction !)<\/i><\/p>\n<p>L'id\u00e9e est que nous recevons une alerte (notification Slack, SMS, etc.) et ensuite :<\/p>\n<ul>\n<li>nous regardons les tableaux de bord Grafana<\/li>\n<li>nous consultons les m\u00e9triques des services (par exemple, dans Prometheus)<\/li>\n<li>nous v\u00e9rifions les enregistrements des journaux (par exemple, dans Elasticsearch)<\/li>\n<li>nous jetons peut-\u00eatre un \u0153il aux trac\u00e9s distribu\u00e9s (Jaeger, Zipkin, etc.)<\/li>\n<li>et enfin, nous corrigeons le probl\u00e8me initial.<\/li>\n<\/ul>\n<p>Ici, dans le cas de la pile Grafana + Prometheus + Elasticsearch + Zipkin, il faudra utiliser quatre outils diff\u00e9rents. Pour gagner du temps, il serait int\u00e9ressant de pouvoir effectuer toutes ces \u00e9tapes avec un seul outil : Grafana. Il convient de noter que cette approche d'enqu\u00eate est mise en \u0153uvre dans Grafana \u00e0 partir de la version 6. Ainsi, il devient possible d'acc\u00e9der aux donn\u00e9es de Prometheus directement depuis Grafana.<\/p>\n<p><img decoding=\"async\" alt=\"Loki \u2014 collecte de logs utilisant l&#039;approche Prometheus\" src=\"\/wp-content\/uploads\/2020\/02\/eefc5a599a23abeb0624f4e3265a31e6.jpg\" style=\"display:block;margin: 0 auto;\"><br \/>\n<i>L'\u00e9cran Explorer est divis\u00e9 entre Prometheus et Loki<\/i><\/p>\n<p>Sur cet \u00e9cran, il est possible de consulter les journaux dans Loki li\u00e9s aux m\u00e9triques de Prometheus en utilisant le concept de partage d'\u00e9cran. \u00c0 partir de la version 6.5, Grafana permet de traiter l'identifiant de trace (trace id) dans les enregistrements des journaux Loki pour passer des liens \u00e0 vos outils de tra\u00e7age distribu\u00e9 pr\u00e9f\u00e9r\u00e9s (Jaeger).<\/p>\n<h3>Test local de Loki<\/h3>\n<p>Le moyen le plus simple de tester Loki localement est d'utiliser docker-compose. Le fichier docker-compose se trouve dans le d\u00e9p\u00f4t de Loki. Vous pouvez obtenir le d\u00e9p\u00f4t avec la commande suivante : <code>git<\/code>:<\/p>\n<pre><code class=\"go\">$ git clone https:\/\/github.com\/grafana\/loki.git<\/code><\/pre>\n<p>Ensuite, vous devez vous rendre dans le r\u00e9pertoire de production :<\/p>\n<pre><code class=\"go\">$ cd production<\/code><\/pre>\n<p>Apr\u00e8s cela, vous pouvez obtenir la derni\u00e8re version des images Docker :<\/p>\n<pre><code class=\"go\">$ docker-compose pull<\/code><\/pre>\n<p>Enfin, la pile Loki se lance avec la commande suivante :<\/p>\n<pre><code class=\"go\">$ docker-compose up<\/code><\/pre>\n<h3>Architecture de Loki<\/h3>\n<p>Voici un petit sch\u00e9ma avec l'architecture de Loki :<\/p>\n<p><img decoding=\"async\" alt=\"Loki \u2014 collecte de logs utilisant l&#039;approche Prometheus\" src=\"\/wp-content\/uploads\/2020\/02\/fc5703bcebc1391e719640e99544f909.jpg\" style=\"display:block;margin: 0 auto;\"><br \/>\n<i>Principes de l'architecture de Loki<\/i><\/p>\n<p>Le client Web ex\u00e9cute des applications sur le serveur, Promtail collecte les journaux et les envoie \u00e0 Loki, le client Web envoie \u00e9galement des m\u00e9tadonn\u00e9es \u00e0 Loki. Loki agr\u00e8ge tout cela et le transmet \u00e0 Grafana.<br \/>\nLoki est en cours d'ex\u00e9cution. Pour voir les composants existants, ex\u00e9cutez la commande suivante :<\/p>\n<pre><code class=\"go\">$ docker ps<\/code><\/pre>\n<p>Dans le cas d'un Docker fra\u00eechement install\u00e9, la commande devrait renvoyer le r\u00e9sultat suivant :<\/p>\n<pre><code class=\"go\">IMAGE               PORTS                  NOMS\ngrafana\/promtail:                          production_promtail_1\ngrafana\/grafana: m  0.0.0.0:3000-&gt;3000\/tcp production_grafana_1\ngrafana\/loki: late  80\/tcp,0.0.0.0:3100... production_loki_1<\/code><\/pre>\n<p>Nous voyons les composants suivants :<\/p>\n<ul>\n<li>Promtail : agent responsable de la centralisation des journaux<\/li>\n<li>Grafana : outil r\u00e9put\u00e9 pour les tableaux de bord<\/li>\n<li>Loki : d\u00e9mon de centralisation des donn\u00e9es<\/li>\n<\/ul>\n<p>Dans une infrastructure classique (par exemple, bas\u00e9e sur des machines virtuelles), un agent Promtail doit \u00eatre d\u00e9ploy\u00e9 sur chaque machine. Grafana et Loki peuvent \u00eatre install\u00e9s sur la m\u00eame machine.<\/p>\n<h3>D\u00e9ploiement dans Kubernetes<\/h3>\n<p>L'installation des composants Loki dans Kubernetes consistera en ce qui suit :<\/p>\n<ul>\n<li>daemonSet pour d\u00e9ployer l'agent Promtail sur chacune des machines du cluster de serveurs<\/li>\n<li>d\u00e9ploiement (Deployment) de Loki<\/li>\n<li>et enfin \u2014 d\u00e9ploiement de Grafana.<\/li>\n<\/ul>\n<p>Heureusement, Loki est disponible sous forme de package Helm, ce qui facilite son d\u00e9ploiement.<\/p>\n<h3>Installation via Helm<\/h3>\n<p>Helm doit d\u00e9j\u00e0 \u00eatre install\u00e9. Il peut \u00eatre t\u00e9l\u00e9charg\u00e9 depuis le d\u00e9p\u00f4t GitHub du projet. Il s'installe par d\u00e9compression de l'archive correspondant \u00e0 votre architecture, et en ajoutant helm \u00e0 <code>$PATH<\/code>.<\/p>\n<blockquote><p><i><b>Remarque :<\/b> la version 3.0.0 de Helm a \u00e9t\u00e9 r\u00e9cemment publi\u00e9e. Comme il y a eu beaucoup de changements, il est recommand\u00e9 aux lecteurs d'attendre un peu avant de commencer \u00e0 l'utiliser.<\/i>.<\/p><\/blockquote>\n<h3>Ajout d'une source pour Helm<\/h3>\n<p>La premi\u00e8re \u00e9tape consiste \u00e0 ajouter le d\u00e9p\u00f4t 'loki' \u00e0 l'aide de la commande suivante :<\/p>\n<pre><code class=\"go\">$ helm add loki https:\/\/grafana.github.io\/loki\/charts<\/code><\/pre>\n<p>Apr\u00e8s cela, vous pouvez rechercher des packages portant le nom 'loki' :<\/p>\n<pre><code class=\"go\">$ helm search loki<\/code><\/pre>\n<p>R\u00e9sultat :<\/p>\n<pre><code class=\"go\">loki\/loki       0.17.2 v0.4.0 Loki : comme Prometheus, mais pour les journaux.\nloki\/loki-stack 0.19.1 v0.4.0 Loki : comme Prometheus, mais pour les journaux.\nloki\/fluent-bit 0.0.2  v0.0.1 Utilise le plugin Loki go de fluent-bit pour...\nloki\/promtail   0.13.1 v0.4.0 Responsable de la collecte des journaux et...<\/code><\/pre>\n<p>Ces packages ont les fonctions suivantes :<\/p>\n<ul>\n<li>via le gestionnaire de packages standard de leur distribution. Sur Arch Linux, <b>loki\/loki<\/b> correspond uniquement au serveur Loki<\/li>\n<li>via le gestionnaire de packages standard de leur distribution. Sur Arch Linux, <b>loki\/fluent-bit<\/b> vous permet de d\u00e9ployer DaemonSet en utilisant fluent-bit pour la collecte des journaux au lieu de Promtail<\/li>\n<li>via le gestionnaire de packages standard de leur distribution. Sur Arch Linux, <b>loki\/promtail<\/b> contient l'agent de collecte des fichiers journaux<\/li>\n<li>via le gestionnaire de packages standard de leur distribution. Sur Arch Linux, <b>loki\/loki-stack<\/b>, permet de d\u00e9ployer Loki en m\u00eame temps que Promtail.<\/li>\n<\/ul>\n<h3>Installation de Loki<\/h3>\n<p>Pour d\u00e9ployer Loki dans Kubernetes, ex\u00e9cutez la commande suivante dans l'espace de noms 'monitoring' :<\/p>\n<pre><code class=\"go\">$ helm upgrade --install loki loki\/loki-stack --namespace monitoring<\/code><\/pre>\n<p>Pour sauvegarder sur le disque, ajoutez le param\u00e8tre <code>--set loki.persistence.enabled = true :<\/code><\/p>\n<pre><code class=\"go\">$ helm upgrade --install loki loki\/loki-stack \n              --namespace monitoring \n              --set loki.persistence.enabled=true<\/code><\/pre>\n<blockquote><p><i><b>Remarque :<\/b> Si vous souhaitez d\u00e9ployer Grafana simultan\u00e9ment, ajoutez le param\u00e8tre <code>--set grafana.enabled = true<\/code><\/i><\/p><\/blockquote>\n<p>Lorsque vous ex\u00e9cutez cette commande, vous devriez obtenir la sortie suivante :<\/p>\n<pre><code class=\"go\">DERNI&Egrave;RE D&Eacute;PLOIEMENT : Mar Nov 19 15:56:54 2019\nNAMESPACE : monitoring\n&Eacute;TAT : D&Eacute;PLOY&Eacute;\nRESSOURCES :\n==&amp;gt; v1\/ClusterRole\nNOM &Acirc;GE\nloki-promtail-clusterrole 189j\n&hellip;\nREMARQUES :\nLa pile Loki a &eacute;t&eacute; d&eacute;ploy&eacute;e dans votre cluster. Loki peut maintenant &ecirc;tre ajout&eacute; en tant que source de donn&eacute;es dans Grafana.\nVoir &lt;a href=&quot;http:\/\/docs.grafana.org\/features\/datasources\/loki\/&quot;&gt;http:\/\/docs.grafana.org\/features\/datasources\/loki\/&lt;\/a&gt; pour plus de d&eacute;tails.<\/code><\/pre>\n<p>En regardant l'\u00e9tat des pods dans l'espace de noms \u00ab monitoring \u00bb, nous verrons que tout est d\u00e9ploy\u00e9 :<\/p>\n<pre><code class=\"go\">$ kubectl -n monitoring get pods -l release=loki<\/code><\/pre>\n<p>R\u00e9sultat :<\/p>\n<pre><code class=\"go\">NOM                 PR\u00caT  \u00c9TAT      RESTARTS  \u00c2GE\nloki-0               1\/1    En cours d'ex\u00e9cution  0         147m\nloki-promtail-9zjvc  1\/1    En cours d'ex\u00e9cution  0         3h25m\nloki-promtail-f6brf  1\/1    En cours d'ex\u00e9cution  0         11h\nloki-promtail-hdcj7  1\/1    En cours d'ex\u00e9cution  0         3h23m\nloki-promtail-jbqhc  1\/1    En cours d'ex\u00e9cution  0         11h\nloki-promtail-mj642  1\/1    En cours d'ex\u00e9cution  0         62m\nloki-promtail-nm64g  1\/1    En cours d'ex\u00e9cution  0         24m<\/code><\/pre>\n<p>Tous les pods sont lanc\u00e9s. Il est maintenant temps de faire quelques tests !<\/p>\n<h3>Connexion \u00e0 Grafana<\/h3>\n<p>Pour se connecter \u00e0 Grafana sous Kubernetes, il est n\u00e9cessaire d'ouvrir un tunnel vers son pod. Voici la commande pour ouvrir le port 3000 pour le pod Grafana :<\/p>\n<pre><code class=\"go\">$ kubectl -n port-forward monitoring svc\/loki-grafana 3000:80<\/code><\/pre>\n<p>Un autre point important est la n\u00e9cessit\u00e9 de r\u00e9cup\u00e9rer le mot de passe administrateur de Grafana. Le mot de passe est stock\u00e9 dans le secret <code>loki-grafana<\/code> dans le champ <code>.data.admin-user<\/code> au format base64.<\/p>\n<p>Pour le r\u00e9cup\u00e9rer, vous devez ex\u00e9cuter la commande suivante :<\/p>\n<pre><code class=\"go\">$ kubectl -n monitoring get secret loki-grafana \n --template '{{index .data \"admin-password\" | base64decode}}'; echo<\/code><\/pre>\n<p>Utilisez ce mot de passe avec le compte administrateur par d\u00e9faut (admin).<\/p>\n<h3>D\u00e9finition de la source de donn\u00e9es Loki dans Grafana<\/h3>\n<p>Tout d'abord, assurez-vous qu'une source de donn\u00e9es Loki a \u00e9t\u00e9 cr\u00e9\u00e9e (Configuration \/ Source de donn\u00e9es).<br \/>\nVoici un exemple :<\/p>\n<p><img decoding=\"async\" alt=\"Loki \u2014 collecte de logs utilisant l&#039;approche Prometheus\" src=\"\/wp-content\/uploads\/2020\/02\/3b670a4b1a8b4db74b1e1f525fd03129.jpg\" style=\"display:block;margin: 0 auto;\"><br \/>\n<i>Exemple de configuration de la source de donn\u00e9es pour Loki<\/i><\/p>\n<p>En cliquant sur \u00ab Tester \u00bb, vous pouvez v\u00e9rifier la connexion avec Loki.<\/p>\n<h3>Effectuer des requ\u00eates \u00e0 Loki<\/h3>\n<p>Acc\u00e9dez maintenant \u00e0 Grafana dans la section \u00ab Explorer \u00bb. Lors de la r\u00e9ception des journaux des conteneurs, Loki ajoute des m\u00e9tadonn\u00e9es de Kubernetes. Ainsi, il devient possible de visualiser les journaux d'un conteneur sp\u00e9cifique.<\/p>\n<p>Par exemple, pour s\u00e9lectionner les journaux du conteneur promtail, vous pouvez utiliser la requ\u00eate suivante : <code>{container_name = \"promtail\"}<\/code>.<br \/>\nN'oubliez pas \u00e9galement de choisir la source de donn\u00e9es Loki.<\/p>\n<p>Cette requ\u00eate retournera l'activit\u00e9 des conteneurs sous la forme suivante :<\/p>\n<p><img decoding=\"async\" alt=\"Loki \u2014 collecte de logs utilisant l&#039;approche Prometheus\" src=\"\/wp-content\/uploads\/2020\/02\/ed2baebd374b9a6242cfc397776fa65f.jpg\" style=\"display:block;margin: 0 auto;\"><br \/>\n<i>R\u00e9sultat de la requ\u00eate dans Grafana <\/i><\/p>\n<h3>Ajout au tableau de bord<\/h3>\n<p>Depuis Grafana 6.4, vous pouvez placer les informations de logique directement sur le tableau de bord. Apr\u00e8s cela, l'utilisateur pourra rapidement basculer entre le nombre de requ\u00eates sur son site et les traces de l'application.<\/p>\n<p>Voici un exemple de tableau de bord impl\u00e9mentant cette interaction :<\/p>\n<p><img decoding=\"async\" alt=\"Loki \u2014 collecte de logs utilisant l&#039;approche Prometheus\" src=\"\/wp-content\/uploads\/2020\/02\/d76c5345d543579eb3768fcdb0a2567b.jpg\" style=\"display:block;margin: 0 auto;\"><br \/>\n<i>Exemple de tableau de bord avec des m\u00e9triques Prometheus et des journaux Loki<\/i><\/p>\n<h3>L'avenir de Loki<\/h3>\n<p>J'ai commenc\u00e9 \u00e0 utiliser Loki en mai\/juin avec la version 0.1. Aujourd'hui, la version 1 est d\u00e9j\u00e0 sortie, et m\u00eame les versions 1.1 et 1.2.<\/p>\n<p>Il faut reconna\u00eetre que la version 0.1 n'\u00e9tait pas suffisamment stable. Mais la 0.3 a d\u00e9j\u00e0 montr\u00e9 de r\u00e9els signes de maturit\u00e9, et les versions suivantes (0.4 puis 1.0) n'ont fait que renforcer cette impression.<\/p>\n<p>Apr\u00e8s la 1.0.0, personne ne peut plus avoir d'excuses pour ne pas utiliser cet excellent outil.<\/p>\n<p>Les am\u00e9liorations futures devraient concerner non pas Loki, mais plut\u00f4t son int\u00e9gration avec l'excellente Grafana. En fait, Grafana 6.4 a d\u00e9j\u00e0 introduit une bonne int\u00e9gration avec les tableaux de bord.<\/p>\n<p>Grafana 6.5, qui a \u00e9t\u00e9 r\u00e9cemment publi\u00e9e, am\u00e9liore encore cette int\u00e9gration, en reconnaissant automatiquement le contenu des journaux au format JSON.<\/p>\n<p>Dans la vid\u00e9o ci-dessous, un petit exemple de ce m\u00e9canisme est pr\u00e9sent\u00e9 :<\/p>\n<p><img decoding=\"async\" alt=\"Loki \u2014 collecte de logs utilisant l&#039;approche Prometheus\" src=\"\/wp-content\/uploads\/2020\/02\/1e0a5269f21e401f349a35788672aec1.jpg\" style=\"display:block;margin: 0 auto;\"><br \/>\n<i>Utilisation des cha\u00eenes Loki affich\u00e9es dans Grafana<\/i><\/p>\n<p>Il devient possible d'utiliser un des champs JSON, par exemple, pour :<\/p>\n<ul>\n<li>lien vers un outil externe<\/li>\n<li>filtration du contenu des journaux<\/li>\n<\/ul>\n<p>Par exemple, vous pouvez cliquer sur traceId pour acc\u00e9der \u00e0 Zipkin ou Jaeger.<\/p>\n<p>Traditionnellement, nous attendons vos commentaires et vous invitons \u00e0 <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/P37L\/\">un webinaire ouvert<\/a><\/noindex>, o\u00f9 nous discuterons de l'\u00e9volution de l'industrie DevOps en 2019 et aborderons les chemins possibles pour 2020.<\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/487118\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0430\u043b\u044e\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435! \u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u043d\u0430 \u043a\u0443\u0440\u0441 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u0434\u043b\u044f \u0432\u0430\u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430. \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u2014 \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 Loki. \u041f\u0440\u043e\u0435\u043a\u0442 Loki \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f Grafana \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0431\u043e\u0440 \u043b\u043e\u0433\u043e\u0432 (\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432). \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0434\u043b\u044f Loki \u0431\u044b\u043b Prometheus \u0441 \u0438\u0434\u0435\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u043a \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043b\u043e\u0433\u0430\u043c\u0438: [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-56206","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0430\u043b\u044e\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/loki-sbor-logov-ispolzuya-podhod-prometheus\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Loki \u2014 \u0441\u0431\u043e\u0440 \u043b\u043e\u0433\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u0434\u0445\u043e\u0434 Prometheus | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0430\u043b\u044e\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/loki-sbor-logov-ispolzuya-podhod-prometheus\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-06T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-02-01T09:41:00+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Loki \u2014 collecte des journaux en utilisant l'approche Prometheus | ProHoster","description":"Salut, Khabrovtsy !","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/loki-sbor-logov-ispolzuya-podhod-prometheus","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Loki \u2014 \u0441\u0431\u043e\u0440 \u043b\u043e\u0433\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u0434\u0445\u043e\u0434 Prometheus | ProHoster","og:description":"\u0421\u0430\u043b\u044e\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435!","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/loki-sbor-logov-ispolzuya-podhod-prometheus","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-06T21:00:00+00:00","article:modified_time":"2021-02-01T09:41:00+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"56206","title":null,"description":"","keywords":"","keyphrases":null,"primary_term":null,"canonical_url":"","og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:29:18","updated":"2022-09-28 02:03:48","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/56206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=56206"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/56206\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=56206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=56206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=56206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}