{"id":51,"date":"2025-04-05T18:27:27","date_gmt":"2025-04-05T16:27:27","guid":{"rendered":"https:\/\/jaber.altabaa.fr\/?p=51"},"modified":"2025-04-05T19:21:05","modified_gmt":"2025-04-05T17:21:05","slug":"decouvrez-grafana-loki-un-systeme-dagregation-de-journaux-pour-tout","status":"publish","type":"post","link":"https:\/\/jaber.altabaa.fr\/index.php\/2025\/04\/05\/decouvrez-grafana-loki-un-systeme-dagregation-de-journaux-pour-tout\/","title":{"rendered":"D\u00e9couvrez Grafana LOKI, un syst\u00e8me d\u2019agr\u00e9gation de journaux pour tout"},"content":{"rendered":"<p>&nbsp;<\/p>\n<div class=\"h-full grid grid-cols-1 md:grid-cols-2 gap-2\" role=\"application\" aria-label=\"Markdown live preview interface\">\n<div class=\"flex flex-col h-[40vh] md:h-full bg-white dark:bg-gray-900 \" role=\"region\" aria-label=\"Preview\">\n<div class=\"flex-1 min-h-0 relative\">\n<div class=\"absolute inset-0 overflow-hidden\">\n<div class=\"h-full w-full overflow-y-auto\" data-testid=\"preview-content\">\n<article class=\"w-full px-4 py-4 prose bg-white\">Je suis en qu\u00eate d\u2019un nouveau syst\u00e8me de journalisation. J\u2019en ai utilis\u00e9 pas mal dans le pass\u00e9, certains open source, certains propri\u00e9taires et certains d\u00e9velopp\u00e9s en interne, mais r\u00e9cemment j\u2019ai d\u00e9cid\u00e9 de changer.Je suis pass\u00e9 \u00e0\u00a0<strong>Grafana Loki<\/strong>\u00a0pour tous mes journaux pour tous mes syst\u00e8mes \u2013 cela inclut les machines, les appareils, les syst\u00e8mes Docker et les h\u00f4tes, et tous mes clusters Kubernetes.<br \/>\nSi vous envisagez d\u2019utiliser Grafana et que vous recherchez \u00e9galement un moyen rapide de consigner tous vos syst\u00e8mes, rejoignez-moi pendant que nous discutons et configurons Grafana Loki.Vous ne souhaitez pas l\u2019h\u00e9berger vous-m\u00eame ? D\u00e9couvrez\u00a0<strong>Grafana Cloud<\/strong>\u00a0et cr\u00e9ez un compte gratuit.<\/p>\n<hr \/>\n<h2>\ud83d\udd27 Configuration de Docker<\/h2>\n<p>Consultez cet article sur la fa\u00e7on d\u2019installer\u00a0<code>docker<\/code>\u00a0et\u00a0<code>docker-compose<\/code><\/p>\n<h3>\ud83d\udce6 Ex\u00e9cution du conteneur (avec Docker Compose)<\/h3>\n<pre><code class=\"language-bash\"><span class=\"token function\">mkdir<\/span> grafana\r\n<span class=\"token function\">mkdir<\/span> loki\r\n<span class=\"token function\">mkdir<\/span> promtail\r\n<span class=\"token function\">touch<\/span> docker-compose.yml\r\n<span class=\"token function\">nano<\/span> docker-compose.yml <span class=\"token comment\"># copier le contenu ci-dessous<\/span>\r\n<span class=\"token function\">ls<\/span>\r\n<span class=\"token function\">docker-compose<\/span> up <span class=\"token parameter variable\">-d<\/span> --force-recreate <span class=\"token comment\"># assurez-vous d\u2019avoir cr\u00e9\u00e9 promtail-config.yml et loki-config.yml avant<\/span>\r\n<\/code><\/pre>\n<h3>\ud83d\udee0\ufe0f docker-compose.yml<\/h3>\n<pre><code class=\"language-yaml\"><span class=\"token key atrule\">version<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">\"3\"<\/span>\r\n<span class=\"token key atrule\">networks<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token key atrule\">loki<\/span><span class=\"token punctuation\">:<\/span>\r\n<span class=\"token key atrule\">services<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token key atrule\">loki<\/span><span class=\"token punctuation\">:<\/span>\r\n    <span class=\"token key atrule\">image<\/span><span class=\"token punctuation\">:<\/span> grafana\/loki<span class=\"token punctuation\">:<\/span>2.4.0\r\n    <span class=\"token key atrule\">volumes<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token punctuation\">-<\/span> \/home\/serveradmin\/docker_volumes\/loki<span class=\"token punctuation\">:<\/span>\/etc\/loki\r\n    <span class=\"token key atrule\">ports<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token punctuation\">-<\/span> <span class=\"token string\">\"3100:3100\"<\/span>\r\n    <span class=\"token key atrule\">restart<\/span><span class=\"token punctuation\">:<\/span> unless<span class=\"token punctuation\">-<\/span>stopped\r\n    <span class=\"token key atrule\">command<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">-<\/span>config.file=\/etc\/loki\/loki<span class=\"token punctuation\">-<\/span>config.yml\r\n    <span class=\"token key atrule\">networks<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token punctuation\">-<\/span> loki\r\n\r\n  <span class=\"token key atrule\">promtail<\/span><span class=\"token punctuation\">:<\/span>\r\n    <span class=\"token key atrule\">image<\/span><span class=\"token punctuation\">:<\/span> grafana\/promtail<span class=\"token punctuation\">:<\/span>2.4.0\r\n    <span class=\"token key atrule\">volumes<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token punctuation\">-<\/span> \/var\/log<span class=\"token punctuation\">:<\/span>\/var\/log\r\n      <span class=\"token punctuation\">-<\/span> \/home\/serveradmin\/docker_volumes\/promtail<span class=\"token punctuation\">:<\/span>\/etc\/promtail\r\n    <span class=\"token key atrule\">restart<\/span><span class=\"token punctuation\">:<\/span> unless<span class=\"token punctuation\">-<\/span>stopped\r\n    <span class=\"token key atrule\">command<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">-<\/span>config.file=\/etc\/promtail\/promtail<span class=\"token punctuation\">-<\/span>config.yml\r\n    <span class=\"token key atrule\">networks<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token punctuation\">-<\/span> loki\r\n\r\n  <span class=\"token key atrule\">grafana<\/span><span class=\"token punctuation\">:<\/span>\r\n    <span class=\"token key atrule\">image<\/span><span class=\"token punctuation\">:<\/span> grafana\/grafana<span class=\"token punctuation\">:<\/span>latest\r\n    <span class=\"token key atrule\">user<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">\"1000\"<\/span>\r\n    <span class=\"token key atrule\">volumes<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token punctuation\">-<\/span> \/home\/serveradmin\/docker_volumes\/grafana<span class=\"token punctuation\">:<\/span>\/var\/lib\/grafana\r\n    <span class=\"token key atrule\">ports<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token punctuation\">-<\/span> <span class=\"token string\">\"3000:3000\"<\/span>\r\n    <span class=\"token key atrule\">restart<\/span><span class=\"token punctuation\">:<\/span> unless<span class=\"token punctuation\">-<\/span>stopped\r\n    <span class=\"token key atrule\">networks<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token punctuation\">-<\/span> loki\r\n<\/code><\/pre>\n<hr \/>\n<h2>\u2699\ufe0f Configuration de Loki<\/h2>\n<pre><code class=\"language-bash\"><span class=\"token function\">nano<\/span> loki\/loki-config.yml\r\n<\/code><\/pre>\n<h3>loki-config.yml<\/h3>\n<pre><code class=\"language-yaml\"><span class=\"token key atrule\">auth_enabled<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token boolean important\">false<\/span>\r\n\r\n<span class=\"token key atrule\">server<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token key atrule\">http_listen_port<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">3100<\/span>\r\n  <span class=\"token key atrule\">grpc_listen_port<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">9096<\/span>\r\n\r\n<span class=\"token key atrule\">common<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token key atrule\">path_prefix<\/span><span class=\"token punctuation\">:<\/span> \/tmp\/loki\r\n  <span class=\"token key atrule\">storage<\/span><span class=\"token punctuation\">:<\/span>\r\n    <span class=\"token key atrule\">filesystem<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token key atrule\">chunks_directory<\/span><span class=\"token punctuation\">:<\/span> \/tmp\/loki\/chunks\r\n      <span class=\"token key atrule\">rules_directory<\/span><span class=\"token punctuation\">:<\/span> \/tmp\/loki\/rules\r\n  <span class=\"token key atrule\">replication_factor<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">1<\/span>\r\n  <span class=\"token key atrule\">ring<\/span><span class=\"token punctuation\">:<\/span>\r\n    <span class=\"token key atrule\">instance_addr<\/span><span class=\"token punctuation\">:<\/span> 127.0.0.1\r\n    <span class=\"token key atrule\">kvstore<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token key atrule\">store<\/span><span class=\"token punctuation\">:<\/span> inmemory\r\n\r\n<span class=\"token key atrule\">schema_config<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token key atrule\">configs<\/span><span class=\"token punctuation\">:<\/span>\r\n    <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">from<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token datetime number\">2020-10-24<\/span>\r\n      <span class=\"token key atrule\">store<\/span><span class=\"token punctuation\">:<\/span> boltdb<span class=\"token punctuation\">-<\/span>shipper\r\n      <span class=\"token key atrule\">object_store<\/span><span class=\"token punctuation\">:<\/span> filesystem\r\n      <span class=\"token key atrule\">schema<\/span><span class=\"token punctuation\">:<\/span> v11\r\n      <span class=\"token key atrule\">index<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token key atrule\">prefix<\/span><span class=\"token punctuation\">:<\/span> index_\r\n        <span class=\"token key atrule\">period<\/span><span class=\"token punctuation\">:<\/span> 24h\r\n\r\n<span class=\"token key atrule\">ruler<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token key atrule\">alertmanager_url<\/span><span class=\"token punctuation\">:<\/span> http<span class=\"token punctuation\">:<\/span>\/\/localhost<span class=\"token punctuation\">:<\/span><span class=\"token number\">9093<\/span>\r\n<\/code><\/pre>\n<hr \/>\n<h2>\u2699\ufe0f Configuration de Promtail<\/h2>\n<pre><code class=\"language-bash\"><span class=\"token function\">nano<\/span> promtail\/promtail-config.yml\r\n<\/code><\/pre>\n<h3>promtail-config.yml<\/h3>\n<pre><code class=\"language-yaml\"><span class=\"token key atrule\">server<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token key atrule\">http_listen_port<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">9080<\/span>\r\n  <span class=\"token key atrule\">grpc_listen_port<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">0<\/span>\r\n\r\n<span class=\"token key atrule\">positions<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token key atrule\">filename<\/span><span class=\"token punctuation\">:<\/span> \/tmp\/positions.yaml\r\n\r\n<span class=\"token key atrule\">clients<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">url<\/span><span class=\"token punctuation\">:<\/span> http<span class=\"token punctuation\">:<\/span>\/\/loki<span class=\"token punctuation\">:<\/span>3100\/loki\/api\/v1\/push\r\n\r\n<span class=\"token key atrule\">scrape_configs<\/span><span class=\"token punctuation\">:<\/span>\r\n\r\n<span class=\"token comment\"># local machine logs<\/span>\r\n<span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">job_name<\/span><span class=\"token punctuation\">:<\/span> local\r\n  <span class=\"token key atrule\">static_configs<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">targets<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token punctuation\">-<\/span> localhost\r\n    <span class=\"token key atrule\">labels<\/span><span class=\"token punctuation\">:<\/span>\r\n      <span class=\"token key atrule\">job<\/span><span class=\"token punctuation\">:<\/span> varlogs\r\n      <span class=\"token key atrule\">__path__<\/span><span class=\"token punctuation\">:<\/span> \/var\/log\/<span class=\"token important\">*log<\/span>\r\n\r\n<span class=\"token comment\"># docker logs<\/span>\r\n<span class=\"token comment\">#- job_name: docker <\/span>\r\n<span class=\"token comment\">#  pipeline_stages:<\/span>\r\n<span class=\"token comment\">#    - docker: {}<\/span>\r\n<span class=\"token comment\">#  static_configs:<\/span>\r\n<span class=\"token comment\">#    - labels:<\/span>\r\n<span class=\"token comment\">#        job: docker<\/span>\r\n<span class=\"token comment\">#        __path__: \/var\/lib\/docker\/containers\/*\/*-json.log<\/span>\r\n\r\n<span class=\"token comment\"># syslog target<\/span>\r\n<span class=\"token comment\">#- job_name: syslog<\/span>\r\n<span class=\"token comment\">#  syslog:<\/span>\r\n<span class=\"token comment\">#    listen_address: 0.0.0.0:1514<\/span>\r\n<span class=\"token comment\">#    idle_timeout: 60s<\/span>\r\n<span class=\"token comment\">#    label_structured_data: yes<\/span>\r\n<span class=\"token comment\">#    labels:<\/span>\r\n<span class=\"token comment\">#      job: \"syslog\"<\/span>\r\n<span class=\"token comment\">#  relabel_configs:<\/span>\r\n<span class=\"token comment\">#    - source_labels: ['__syslog_message_hostname']<\/span>\r\n<span class=\"token comment\">#      target_label: 'host'<\/span>\r\n<\/code><\/pre>\n<hr \/>\n<h2>\ud83d\udd0c Pilote Docker Loki<\/h2>\n<h3>Installer le plugin :<\/h3>\n<pre><code class=\"language-bash\"><span class=\"token function\">docker<\/span> plugin <span class=\"token function\">install<\/span> grafana\/loki-docker-driver:latest <span class=\"token parameter variable\">--alias<\/span> loki --grant-all-permissions\r\n<\/code><\/pre>\n<h3>Modifier la configuration du d\u00e9mon Docker :<\/h3>\n<pre><code class=\"language-bash\"><span class=\"token function\">sudo<\/span> <span class=\"token function\">nano<\/span> \/etc\/docker\/daemon.json\r\n<\/code><\/pre>\n<h4>daemon.json :<\/h4>\n<pre><code class=\"language-json\"><span class=\"token punctuation\">{<\/span>\r\n  <span class=\"token property\">\"log-driver\"<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">\"loki\"<\/span><span class=\"token punctuation\">,<\/span>\r\n  <span class=\"token property\">\"log-opts\"<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token property\">\"loki-url\"<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">\"http:\/\/localhost:3100\/loki\/api\/v1\/push\"<\/span><span class=\"token punctuation\">,<\/span>\r\n    <span class=\"token property\">\"loki-batch-size\"<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">\"400\"<\/span>\r\n  <span class=\"token punctuation\">}<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n<\/code><\/pre>\n<h3>Red\u00e9marrer Docker :<\/h3>\n<pre><code class=\"language-bash\"><span class=\"token function\">sudo<\/span> systemctl restart <span class=\"token function\">docker<\/span>\r\n<\/code><\/pre>\n<p>\u26a0\ufe0f Vous devrez \u00e9galement\u00a0<strong>recr\u00e9er vos conteneurs<\/strong>\u00a0apr\u00e8s cette modification.<\/p>\n<hr \/>\n<h2>\ud83d\udd0e Exemples de requ\u00eates LogQL<\/h2>\n<ul>\n<li>Tous les journaux du flux\u00a0<code>varlogs<\/code>\u00a0:\n<pre><code class=\"language-logql\"><span class=\"token punctuation\">{<\/span>job=<span class=\"token string\">\"varlogs\"<\/span><span class=\"token punctuation\">}<\/span>\r\n<\/code><\/pre>\n<\/li>\n<li>Journaux filtr\u00e9s contenant \u201cdocker\u201d :\n<pre><code class=\"language-logql\"><span class=\"token punctuation\">{<\/span>job=<span class=\"token string\">\"varlogs\"<\/span><span class=\"token punctuation\">}<\/span> |= <span class=\"token string\">\"docker\"<\/span>\r\n<\/code><\/pre>\n<\/li>\n<li>Journaux filtr\u00e9s par conteneur\u00a0<code>uptime-kuma<\/code>\u00a0et h\u00f4te\u00a0<code>juno<\/code>\u00a0:\n<pre><code class=\"language-logql\"><span class=\"token punctuation\">{<\/span>container_name=<span class=\"token string\">\"uptime-kuma\"<\/span><span class=\"token punctuation\">,<\/span> host=<span class=\"token string\">\"juno\"<\/span><span class=\"token punctuation\">}<\/span>\r\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\ud83d\udc49\u00a0<a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/logql\/\">En savoir plus sur LogQL<\/a><\/p>\n<hr \/>\n<h2>\ud83c\udf53 Processeur ARM (Raspberry Pi)<\/h2>\n<h3>Supprimer\u00a0<code>\/etc\/docker\/daemon.json<\/code><\/h3>\n<p>Et ajouter le service\u00a0<code>vector<\/code>\u00a0au\u00a0<code>docker-compose.yml<\/code>\u00a0:<\/p>\n<pre><code class=\"language-yaml\"><span class=\"token key atrule\">vector<\/span><span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token key atrule\">image<\/span><span class=\"token punctuation\">:<\/span> timberio\/vector<span class=\"token punctuation\">:<\/span>0.18.1<span class=\"token punctuation\">-<\/span>debian\r\n  <span class=\"token key atrule\">volumes<\/span><span class=\"token punctuation\">:<\/span>\r\n    <span class=\"token punctuation\">-<\/span> \/var\/run\/docker.sock<span class=\"token punctuation\">:<\/span>\/var\/run\/docker.sock\r\n    <span class=\"token punctuation\">-<\/span> \/home\/serveradmin\/docker_volumes\/vector\/vector<span class=\"token punctuation\">-<\/span>config.toml<span class=\"token punctuation\">:<\/span>\/etc\/vector\/vector.toml<span class=\"token punctuation\">:<\/span>ro\r\n  <span class=\"token key atrule\">ports<\/span><span class=\"token punctuation\">:<\/span>\r\n    <span class=\"token punctuation\">-<\/span> <span class=\"token string\">\"8383:8383\"<\/span>\r\n  <span class=\"token key atrule\">restart<\/span><span class=\"token punctuation\">:<\/span> unless<span class=\"token punctuation\">-<\/span>stopped\r\n  <span class=\"token key atrule\">networks<\/span><span class=\"token punctuation\">:<\/span>\r\n    <span class=\"token punctuation\">-<\/span> loki\r\n<\/code><\/pre>\n<h3>Cr\u00e9er la configuration :<\/h3>\n<pre><code class=\"language-bash\"><span class=\"token function\">mkdir<\/span> vector\r\n<span class=\"token builtin class-name\">cd<\/span> vector\r\n<span class=\"token function\">nano<\/span> vector-config.toml\r\n<\/code><\/pre>\n<h4>vector-config.toml<\/h4>\n<pre><code class=\"language-toml\">[sources.docker-local]\r\n  type = <span class=\"token string\">\"docker_logs\"<\/span>\r\n  docker_host = <span class=\"token string\">\"\/var\/run\/docker.sock\"<\/span>\r\n  exclude_containers = []\r\n\r\n  multiline.condition_pattern = <span class=\"token selector\">'^\\x<\/span><span class=\"token punctuation\">{<\/span>200B<span class=\"token punctuation\">}<\/span>'\r\n  multiline.mode = <span class=\"token string\">\"halt_before\"<\/span>\r\n  multiline.start_pattern = <span class=\"token selector\">'^\\x<\/span><span class=\"token punctuation\">{<\/span>200B<span class=\"token punctuation\">}<\/span>'\r\n  multiline.timeout_ms = 1000\r\n\r\n[sinks.loki]\r\n  type = <span class=\"token string\">\"loki\"<\/span>\r\n  inputs = [<span class=\"token string\">\"docker*\"<\/span>]\r\n  endpoint = <span class=\"token string\">\"http:\/\/loki:3100\"<\/span>\r\n\r\n  auth.strategy = <span class=\"token string\">\"bearer\"<\/span>\r\n  auth.token = <span class=\"token string\">\"none\"<\/span>\r\n\r\n  encoding.codec = <span class=\"token string\">\"json\"<\/span>\r\n\r\n  healthcheck.enabled = false\r\n\r\n  labels.forwarder = <span class=\"token string\">'vector'<\/span>\r\n  labels.host = <span class=\"token string\">''<\/span>\r\n  labels.container_name = <span class=\"token string\">''<\/span>\r\n  labels.compose_service = <span class=\"token string\">''<\/span>\r\n  labels.compose_project = <span class=\"token string\">''<\/span>\r\n  labels.source = <span class=\"token string\">''<\/span>\r\n  labels.category = <span class=\"token string\">'dockerlogs'<\/span>\r\n<\/code><\/pre>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"bg-gray-100 dark:bg-gray-800 p-2 text-sm text-gray-800 dark:text-gray-200 flex justify-between items-center border-t border-gray-200 dark:border-gray-700\"><\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<footer class=\"fixed bottom-0 left-0 right-0 bg-slate-900 text-slate-400 h-[30px] flex items-center z-10 p-1\">\n<div class=\"container mx-auto px-4\">\n<div class=\"flex flex-col sm:flex-row justify-between items-center\">\n<div class=\"absolute left-1\/2 -translate-x-1\/2 hidden sm:flex items-center gap-1.5 text-xs\"><\/div>\n<\/div>\n<\/div>\n<\/footer>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Je suis en qu\u00eate d\u2019un nouveau syst\u00e8me de journalisation. J\u2019en ai utilis\u00e9 pas mal dans le pass\u00e9, certains open source, certains propri\u00e9taires et certains d\u00e9velopp\u00e9s en interne, mais r\u00e9cemment&hellip;<\/p>\n","protected":false},"author":1,"featured_media":54,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-51","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-home-lab"],"_links":{"self":[{"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/comments?post=51"}],"version-history":[{"count":4,"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/posts\/51\/revisions"}],"predecessor-version":[{"id":61,"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/posts\/51\/revisions\/61"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/media\/54"}],"wp:attachment":[{"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/media?parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/categories?post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jaber.altabaa.fr\/index.php\/wp-json\/wp\/v2\/tags?post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}