{"id":111,"date":"2008-03-11T22:06:31","date_gmt":"2008-03-11T20:06:31","guid":{"rendered":"http:\/\/michauko.org\/blog\/2008\/03\/11\/ressusciter-de-lhistorique-apache-pour-webalizer\/"},"modified":"2009-10-08T15:24:32","modified_gmt":"2009-10-08T13:24:32","slug":"ressusciter-de-lhistorique-apache-pour-webalizer","status":"publish","type":"post","link":"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/","title":{"rendered":"Ressusciter de l&rsquo;historique (Apache) pour Webalizer"},"content":{"rendered":"<p>Derri\u00e8re ce titre qui veut tout et rien dire, un besoin r\u00e9el.<\/p>\n<p>R\u00e9cemment, sur un site web avec une audience non n\u00e9gligeable (sans \u00eatre d\u00e9mentielle : 70 000 hits hebdo), j&rsquo;ai eu \u00e0 mettre en place un outil de statistiques vite fait bien fait. J&rsquo;ai choisi <a href=\"http:\/\/www.webalizer.org\/\">webalizer<\/a> car je connaissais et car \u00e7a se met en place en 3 minutes et que \u00e7a sort mine de rien d\u00e9j\u00e0 pas mal d&rsquo;infos (volume de hits, pays d&rsquo;origine, mots-clefs, r\u00e9f\u00e9rant etc). Et c&rsquo;est mieux que \u00ab\u00a0pas de stats du tout\u00a0\u00bb dans un premier temps.<\/p>\n<p>Il y avait deux trucs tout b\u00eates dans l&rsquo;histoire : j&rsquo;avais un an de logs non \u00ab\u00a0synth\u00e9tis\u00e9s\u00a0\u00bb par webalizer. Il a donc fallu les faire passer dans webalizer pour rattraper l&rsquo;historique. Et deuxi\u00e8mement, c&rsquo;est \u00e0 ce moment l\u00e0 que j&rsquo;ai vu que le <code>HostnameLookups<\/code> \u00e9tait \u00e0 Off dans la conf <code>\/etc\/apache2\/apache2.conf<\/code>. <strong>Donc les logs ne contenaient que les IP, pas les hostname<\/strong>. Donc pas de statistiques par pays dans Webalizer. Dommage pour une bo\u00eete internationale qui veut voir un peu o\u00f9 en est sa notori\u00e9t\u00e9 sur la plan\u00e8te&#8230;<\/p>\n<p>J&rsquo;ai donc rem\u00e9di\u00e9 \u00e0 tout \u00e7a. Cet article pr\u00e9sente donc l&rsquo;installation de la conf rapide de Webalizer (et Apache2 en cons\u00e9quence) et donne une ligne de commande pour r\u00e9cup\u00e9rer l&rsquo;ann\u00e9e d&rsquo;historique (apache2 garde par d\u00e9faut 52 fichiers de logs en rotation hebdo) et enfin, le plus marrant, mouliner sur les logs pour retrouver les <em>hostnames<\/em> correspondants aux IP&#8230; (en esp\u00e9rant que mon h\u00e9bergeur ne me flingue pas en voyant le nombre de requ\u00eate DNS que je crache en ce moment m\u00eame \ud83d\ude00 Je lui ai pos\u00e9 la question, ne n\u00e9gligez pas ce point, ce serait b\u00eate de se faire des ennemis)<!--more--><\/p>\n<h3>Installation et conf Webalizer<\/h3>\n<p>Sous Debian, un simple :<\/p>\n<pre>aptitude install webalizer<\/pre>\n<p>L&rsquo;outil de conf pose 2\/3 questions assez simples \u00e0 r\u00e9pondre, comme votre nom de serveur web, le nom du fichier \u00ab\u00a0logrotat\u00e9\u00a0\u00bb, typiquement <code>\/var\/log\/apache2\/access.log.1<\/code> (et pas <code>\/var\/log\/apache2\/access.log<\/code>).<br \/>\nDe toute mani\u00e8re, on va repasser sur le fichier de conf tout de suite apr\u00e8s l&rsquo;install. Sachez que \u00ab\u00a0webalizer\u00a0\u00bb fait ses calculs via la <code>cron.daily<\/code>, au petit matin (par d\u00e9faut sur Debian) quand vous dormez.<br \/>\nJe mets 2\/3 commentaires sur certains param\u00e8tres ; voyons ce que donne <code>egrep -v \"^$|^#\" \/etc\/webalizer\/webalizer.conf<\/code> :<\/p>\n<pre>LogFile         \/var\/log\/apache2\/access.log.1\r\nOutputDir       \/var\/www\/webalizer # A vous de voir. Pensez \u00e0 un htaccess si besoin...\r\nIncremental     yes\r\nReportTitle     Statistiques d'utilisation de mon serveur web\r\nHostName        toto.com\r\nTopReferrers    50\r\nTopAgents       30\r\nHideSite        *toto\r\nHideSite        *toto.com\r\nHideReferrer    www.toto.com\/ # sinon vous passez votre temps \u00e0 votre les mouvements interne au site\r\nHideReferrer    toto.com\/ # idem\r\nHideReferrer    Direct Request\r\nHideURL         *.gif\r\nHideURL         *.GIF\r\nHideURL         *.jpg\r\nHideURL         *.JPG\r\nHideURL         *.ra\r\nHideURL         *.png\r\nGroupURL        \/cgi-bin\/*\r\nGroupAgent      MSIE\r\nHideAgent       MSIE*\r\nGroupAgent      Mozilla\r\nHideAgent       Mozilla*\r\nGroupAgent      Lynx\r\nHideAgent       Lynx*\r\nGroupAgent      Konqueror\r\nHideAgent       Konqueror*\r\nGroupAgent      Opera\r\nHideAgent       Opera*\r\nIgnoreSite      localhost # je tunnele l'acc\u00e8s \u00e0 mon propre site et je suis un gros visiteur de mon propre site\r\nIgnoreReferrer  localhost # idem\r\nMangleAgents    4<\/pre>\n<p>Dans la conf Apache2 <code>\/etc\/apache2\/apache2.conf<\/code>, pensez \u00e0 activer le param\u00e8tre <code>HostnameLookups<\/code> si vous voulez avoir un semblant de trace des pays rendant visite \u00e0 votre site web (et rechargez Apache).<\/p>\n<h3>Chargement de l&rsquo;historique<\/h3>\n<p>Il faut d\u00e9compresser les logs Apache puis les importer un \u00e0 un dans webalizer.Simple.<br \/>\nEn consid\u00e9rant que vous avez copi\u00e9 vos fichiers access.log.*.gz dans \/tmp, vous faites ceci :<\/p>\n<pre>for i in access*gz\r\ndo\r\n        gunzip $i\r\ndone<\/pre>\n<p>Et ensuite, lancement de l&rsquo;import :<\/p>\n<pre>for i in `.\/seq_reverse.py`\r\ndo\r\n        webalizer access.log.$i\r\ndone<\/pre>\n<p>Je ne sais plus si on peut faire un <code>seq<\/code> sortant les chiffres de 1 \u00e0 52 dans l&rsquo;ordre inverse, <a href='https:\/\/michauko.org\/blog\/wp-content\/uploads\/2008\/03\/seq_reverse.py' title='seq -r \u00e7a n\u2019existe pas ?'>alors j&rsquo;ai pondu un script python pour le faire<\/a>.<\/p>\n<p>A la fin, si votre r\u00e9pertoire <code>\/var\/www\/webalizer<\/code> est blind\u00e9 de fichiers, c&rsquo;est bon. Vous pouvez voir vos stats sur l&rsquo;ann\u00e9e \u00e9coul\u00e9e.<\/p>\n<h3>Retrouver les hostnames<\/h3>\n<p>C&rsquo;est la partie amusante (et bourrin). Si vous n&rsquo;aviez pas les hostnames des IP visitant votre serveur web, vos logs Apache ressemblait \u00e0 \u00e7a :<\/p>\n<pre>86.x.y.190 - - [15\/Mar\/2007:06:25:25 +0100] \"GET \/favicon.ico HTTP\/1.1\" 200 2238 \"-\" \"Mozilla\/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko\/20070219 Firefox\/2.0.0.2\"<\/pre>\n<p>Si vous aviez activ\u00e9 le lookup dans Apache, vos logs ressemblent partiellement \u00e0 ce qu&rsquo;il y a ci-dessus (pour les serveurs n&rsquo;ayant pas de nom) et g\u00e9n\u00e9ralement, ils contiennent plut\u00f4t \u00e7a :<\/p>\n<pre>truc.machin.com - - [02\/Mar\/2008:06:26:27 +0100] \"GET \/ HTTP\/1.1\" 200 27488 \"-\" \"Mozilla\/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\"<\/pre>\n<p>L&rsquo;id\u00e9e est de retrouver les noms lorsque vous n&rsquo;avez que les IP. J&rsquo;ai \u00e9crit un script Python pour \u00e7a (excusez-moi, je d\u00e9bute en Python). <a href='https:\/\/michauko.org\/blog\/wp-content\/uploads\/2008\/03\/retrouve_hostname.py' title='Script Python pour retrouver les hostnames \u00e0 partir des IP d\u2019un log Apache2'>Script Python pour retrouver les hostnames \u00e0 partir des IP d\u2019un log Apache2<\/a><\/p>\n<p>Et donc \u00e0 la fin, vous envoyez la pur\u00e9e :<\/p>\n<pre>for i in \/tmp\/access.log.*\r\ndo\r\n        .\/retrouve_hostname.py $i\r\ndone<\/pre>\n<p>Attention, c&rsquo;est bourrin, faites le sur un petit fichier d&rsquo;abord. Le script vous g\u00e9n\u00e8re un fichier <code>$i.new<\/code>, \u00e0 vous de vider vos statistiques webalizer (<code>rm \/var\/www\/webalizer\/*<\/code>) ensuite et de relancer la moulinette d&rsquo;import sur ces nouveaux fichiers.<\/p>\n<p>walaaaa, c&rsquo;est tout pour aujourd&rsquo;hui.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Derri\u00e8re ce titre qui veut tout et rien dire, un besoin r\u00e9el. R\u00e9cemment, sur un site web avec une audience non n\u00e9gligeable (sans \u00eatre d\u00e9mentielle : 70 000 hits hebdo), j&rsquo;ai eu \u00e0 mettre en &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[391,2,387,82],"tags":[86,104,101,103,102,99,100,98],"class_list":["post-111","post","type-post","status-publish","format-standard","hentry","category-autres-outils","category-debian","category-ligne-de-commande","category-pl","tag-dns","tag-flood","tag-ip","tag-python","tag-referrer","tag-statistiques","tag-stats","tag-webalizer"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ressusciter de l&#039;historique (Apache) pour Webalizer - Le blog de Michauko<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ressusciter de l&#039;historique (Apache) pour Webalizer - Le blog de Michauko\" \/>\n<meta property=\"og:description\" content=\"Derri\u00e8re ce titre qui veut tout et rien dire, un besoin r\u00e9el. R\u00e9cemment, sur un site web avec une audience non n\u00e9gligeable (sans \u00eatre d\u00e9mentielle : 70 000 hits hebdo), j&rsquo;ai eu \u00e0 mettre en &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/\" \/>\n<meta property=\"og:site_name\" content=\"Le blog de Michauko\" \/>\n<meta property=\"article:published_time\" content=\"2008-03-11T20:06:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2009-10-08T13:24:32+00:00\" \/>\n<meta name=\"author\" content=\"michauko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"michauko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/ressusciter-de-lhistorique-apache-pour-webalizer-111\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/ressusciter-de-lhistorique-apache-pour-webalizer-111\\\/\"},\"author\":{\"name\":\"michauko\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#\\\/schema\\\/person\\\/0cd9f3d9ce4dccc05df81a5b27051ea9\"},\"headline\":\"Ressusciter de l&rsquo;historique (Apache) pour Webalizer\",\"datePublished\":\"2008-03-11T20:06:31+00:00\",\"dateModified\":\"2009-10-08T13:24:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/ressusciter-de-lhistorique-apache-pour-webalizer-111\\\/\"},\"wordCount\":679,\"commentCount\":4,\"keywords\":[\"dns\",\"flood\",\"ip\",\"python\",\"referrer\",\"statistiques\",\"stats\",\"webalizer\"],\"articleSection\":[\"autres outils\",\"Debian\",\"ligne de commande\",\"planet-libre.org\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/michauko.org\\\/blog\\\/ressusciter-de-lhistorique-apache-pour-webalizer-111\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/ressusciter-de-lhistorique-apache-pour-webalizer-111\\\/\",\"url\":\"https:\\\/\\\/michauko.org\\\/blog\\\/ressusciter-de-lhistorique-apache-pour-webalizer-111\\\/\",\"name\":\"Ressusciter de l'historique (Apache) pour Webalizer - Le blog de Michauko\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#website\"},\"datePublished\":\"2008-03-11T20:06:31+00:00\",\"dateModified\":\"2009-10-08T13:24:32+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#\\\/schema\\\/person\\\/0cd9f3d9ce4dccc05df81a5b27051ea9\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/ressusciter-de-lhistorique-apache-pour-webalizer-111\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/michauko.org\\\/blog\\\/ressusciter-de-lhistorique-apache-pour-webalizer-111\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/ressusciter-de-lhistorique-apache-pour-webalizer-111\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/michauko.org\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ressusciter de l&rsquo;historique (Apache) pour Webalizer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/michauko.org\\\/blog\\\/\",\"name\":\"Le blog de Michauko\",\"description\":\"Si tu ne comprends pas le titre de l&#039;article, passe ton chemin\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/michauko.org\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#\\\/schema\\\/person\\\/0cd9f3d9ce4dccc05df81a5b27051ea9\",\"name\":\"michauko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g\",\"caption\":\"michauko\"},\"sameAs\":[\"http:\\\/\\\/michauko.org\\\/\"],\"url\":\"https:\\\/\\\/michauko.org\\\/blog\\\/author\\\/randomized2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ressusciter de l'historique (Apache) pour Webalizer - Le blog de Michauko","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/","og_locale":"fr_FR","og_type":"article","og_title":"Ressusciter de l'historique (Apache) pour Webalizer - Le blog de Michauko","og_description":"Derri\u00e8re ce titre qui veut tout et rien dire, un besoin r\u00e9el. R\u00e9cemment, sur un site web avec une audience non n\u00e9gligeable (sans \u00eatre d\u00e9mentielle : 70 000 hits hebdo), j&rsquo;ai eu \u00e0 mettre en &hellip;","og_url":"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/","og_site_name":"Le blog de Michauko","article_published_time":"2008-03-11T20:06:31+00:00","article_modified_time":"2009-10-08T13:24:32+00:00","author":"michauko","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"michauko","Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/#article","isPartOf":{"@id":"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/"},"author":{"name":"michauko","@id":"https:\/\/michauko.org\/blog\/#\/schema\/person\/0cd9f3d9ce4dccc05df81a5b27051ea9"},"headline":"Ressusciter de l&rsquo;historique (Apache) pour Webalizer","datePublished":"2008-03-11T20:06:31+00:00","dateModified":"2009-10-08T13:24:32+00:00","mainEntityOfPage":{"@id":"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/"},"wordCount":679,"commentCount":4,"keywords":["dns","flood","ip","python","referrer","statistiques","stats","webalizer"],"articleSection":["autres outils","Debian","ligne de commande","planet-libre.org"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/","url":"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/","name":"Ressusciter de l'historique (Apache) pour Webalizer - Le blog de Michauko","isPartOf":{"@id":"https:\/\/michauko.org\/blog\/#website"},"datePublished":"2008-03-11T20:06:31+00:00","dateModified":"2009-10-08T13:24:32+00:00","author":{"@id":"https:\/\/michauko.org\/blog\/#\/schema\/person\/0cd9f3d9ce4dccc05df81a5b27051ea9"},"breadcrumb":{"@id":"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/michauko.org\/blog\/ressusciter-de-lhistorique-apache-pour-webalizer-111\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/michauko.org\/blog\/"},{"@type":"ListItem","position":2,"name":"Ressusciter de l&rsquo;historique (Apache) pour Webalizer"}]},{"@type":"WebSite","@id":"https:\/\/michauko.org\/blog\/#website","url":"https:\/\/michauko.org\/blog\/","name":"Le blog de Michauko","description":"Si tu ne comprends pas le titre de l&#039;article, passe ton chemin","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/michauko.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/michauko.org\/blog\/#\/schema\/person\/0cd9f3d9ce4dccc05df81a5b27051ea9","name":"michauko","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g","caption":"michauko"},"sameAs":["http:\/\/michauko.org\/"],"url":"https:\/\/michauko.org\/blog\/author\/randomized2\/"}]}},"_links":{"self":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts\/111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/comments?post=111"}],"version-history":[{"count":3,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts\/111\/revisions"}],"predecessor-version":[{"id":785,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts\/111\/revisions\/785"}],"wp:attachment":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/media?parent=111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/categories?post=111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/tags?post=111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}