{"id":1860,"date":"2021-07-02T10:58:43","date_gmt":"2021-07-02T08:58:43","guid":{"rendered":"https:\/\/geko2.factoryfy.com\/es\/?p=4800"},"modified":"2021-11-08T15:32:03","modified_gmt":"2021-11-08T14:32:03","slug":"indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy","status":"publish","type":"post","link":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/","title":{"rendered":"Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy"},"content":{"rendered":"<p><strong>Elasticsearch<\/strong> es una herramienta que permite indexar muchos tipos de contenidos, como por ejemplo los logs de las aplicaciones, y en este art\u00edculo precisamente trataremos c\u00f3mo indexar los logs HTTP de un loadbalancer y proxy como HAProxy, en el caso de querer registrar tambi\u00e9n los campos de User-Agent, X-Forwarded-For y Referrer, que por defecto no se muestran en los logs.<\/p>\n<p>Actualmente en el mercado hay muchas herramientas disponibles para reenviar dichos logs a <strong>Elasticsearch<\/strong>, y en este caso usaremos Filebeat por ser una herramienta sencilla de instalar y configurar, y que cumple perfectamente con su cometido. Adem\u00e1s es interesante mencionar que ha sido desarrollada por la misma empresa de <strong>Elasticsearch<\/strong>.<\/p>\n<p>Pese a que Filebeat tiene ya un m\u00f3dulo para HAProxy que permite enviar e indexar sus logs en el formato que trae de forma predeterminada, en el caso de que queramos a\u00f1adir m\u00e1s campos a dichos logs o sencillamente cambiemos su formato, tendremos que cambiar la forma en que <strong>Elasticsearch<\/strong> debe hacer la ingesta de datos.<\/p>\n<h3>A\u00f1adir m\u00e1s informaci\u00f3n en los logs de HAProxy<\/h3>\n<p>Supongamos que queremos que los logs de las peticiones HTTP muestren tambi\u00e9n otros campos como el User-Agent, X-Forwarded-For y Referrer, campos que van muy bien tener a tu disposici\u00f3n cuando se quiere monitorizar un sitio web y sin embargo no se guardan en los logs a no ser que lo especifiquemos de forma explicita. Para ello basta con a\u00f1adir las siguientes l\u00edneas en las secciones frontend del archivo de configuraci\u00f3n de HAProxy.<\/p>\n<pre>capture request header X-Forwarded-For len 15\r\ncapture request header User-Agent len 128\r\ncapture request header Referer len 128<\/pre>\n<p>Dado que HAProxy almacena por defecto en los logs las cabeceras de las peticiones HTTP que se han indicado capturar, no ser\u00eda necesar\u00edo hacer nada m\u00e1s salvo reiniciar el servicio para aplicar los cambios y comprobar que efectivamente dichos campos se est\u00e1n mostrando en los logs.<\/p>\n<h3>Instalaci\u00f3n Filebeat<\/h3>\n<p>La instalaci\u00f3n y configuraci\u00f3n del agente de Filebeat es muy sencilla, basta con seguir las instrucciones de la <a href=\"https:\/\/www.elastic.co\/guide\/en\/beats\/filebeat\/current\/filebeat-installation-configuration.html\">documentaci\u00f3n oficial<\/a>. Consiste en los siguientes pasos:<\/p>\n<ol>\n<li>Instalaci\u00f3n del agente en funci\u00f3n del sistema operativo<\/li>\n<li>Configuraci\u00f3n de la informaci\u00f3n de conexi\u00f3n a Elasticsearch \/ Kibana.<\/li>\n<li>Activaci\u00f3n del m\u00f3dulo para HAProxy.<\/li>\n<li>Carga a Elasticsearch de los recursos recomendados, como los index template y algunos paneles para Kibana.<\/li>\n<\/ol>\n<p>La primera vez que el modulo conecte a Elasticsearch creara una ingest pipeline, que es el elemento que se encarga de parsear los logs.<\/p>\n<h3>Modificaci\u00f3n de la Ingest Pipeline<\/h3>\n<p>A estas alturas ya deber\u00edamos estar recibiendo los logs en Elasticsearch, pero los campos User-Agent, X-Forwarded-For y Referrer continuar\u00edan sin ser visibles pese a estar disponibles en los logs del HAProxy. Esto es debido a que la ingest pipeline creada por el m\u00f3dulo de Filebeat no tiene en cuenta dichos campos, y por tanto deberemos editarla.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4806\" src=\"https:\/\/geko2.factoryfy.com\/wp-content\/uploads\/cursor_and_ingest_node_pipelines_elastic.png\" alt=\"\" width=\"682\" height=\"428\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Debemos editar los patrones del procesador Grok. Al hacer clic sobre el procesador para editarlo, deber\u00edamos ver los siguientes patrones.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4807\" src=\"https:\/\/geko2.factoryfy.com\/wp-content\/uploads\/grok_ingest_node_pipelines_elastic.png\" alt=\"\" width=\"696\" height=\"630\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Debemos a\u00f1adir uno nuevo con el siguiente contenido y moverlo a la segunda posici\u00f3n.<\/p>\n<pre>(%{NOTSPACE:process.name}[%{NUMBER:process.pid:long}]: )?%{IP:source.address}:%{NUMBER:source.port:long} [%{NOTSPACE:haproxy.request_date}] %{NOTSPACE:haproxy.frontend_name} %{NOTSPACE:haproxy.backend_name}\/%{NOTSPACE:haproxy.server_name} %{NUMBER:haproxy.http.request.time_wait_ms:long}\/%{NUMBER:haproxy.total_waiting_time_ms:long}\/%{NUMBER:haproxy.connection_wait_time_ms:long}\/%{NUMBER:haproxy.http.request.time_wait_without_data_ms:long}\/%{NUMBER:temp.duration:long} %{NUMBER:http.response.status_code:long} %{NUMBER:haproxy.bytes_read:long} %{NOTSPACE:haproxy.http.request.captured_cookie} %{NOTSPACE:haproxy.http.response.captured_cookie} %{NOTSPACE:haproxy.termination_state} %{NUMBER:haproxy.connections.active:long}\/%{NUMBER:haproxy.connections.frontend:long}\/%{NUMBER:haproxy.connections.backend:long}\/%{NUMBER:haproxy.connections.server:long}\/%{NUMBER:haproxy.connections.retries:long} %{NUMBER:haproxy.server_queue:long}\/%{NUMBER:haproxy.backend_queue:long} {%{IP:source.ip}|%{DATA:user_agent.original}|%{DATA:http.request.referrer}} \"%{GREEDYDATA:haproxy.http.request.raw_request_line}\"<\/pre>\n<p>Es muy importante que quede situado en la segunda posici\u00f3n, ya que el procesador usar\u00e1 la primera expresi\u00f3n que coincida e ignorar\u00e1 el resto.<\/p>\n<p>En este momento deber\u00edan haber una lista de cinco patrones. Por \u00faltimo le damos al bot\u00f3n Update y a partir de ese momento los nuevos campos ya deber\u00edan ser visibles.<\/p>\n<p>&nbsp;<\/p>\n<p>Espero que hayas disfrutado de este post y te animo a que\u00a0revises <a href=\"https:\/\/geko.cloud\/es\/blog\/labs\/\">nuestro blog<\/a> para leer otros posts\u00a0que puedan ser de tu inter\u00e9s.\u00a0<a href=\"https:\/\/geko.cloud\/es\/contacto\/\">No dudes en contactarnos<\/a>\u00a0si deseas que te ayudemos en tus proyectos.<\/p>\n<p>\u00a1Nos vemos en la pr\u00f3xima entrada!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Elasticsearch es una herramienta que permite indexar muchos tipos de contenidos, como por ejemplo los logs de las aplicaciones, y en este art\u00edculo precisamente trataremos c\u00f3mo indexar los logs HTTP de un loadbalancer y proxy como HAProxy, en el caso de querer registrar tambi\u00e9n los campos de User-Agent, X-Forwarded-For y Referrer, que por defecto no [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":5447,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[18],"tags":[42,43],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy - Geko Cloud<\/title>\n<meta name=\"description\" content=\"Elasticsearch permite indexar muchos tipos de contenidos, y en este post trataremos c\u00f3mo indexar los logs HTTP de un loadbalancer y proxy como HAProxy.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy - Geko Cloud\" \/>\n<meta property=\"og:description\" content=\"Elasticsearch permite indexar muchos tipos de contenidos, y en este post trataremos c\u00f3mo indexar los logs HTTP de un loadbalancer y proxy como HAProxy.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/\" \/>\n<meta property=\"og:site_name\" content=\"Geko Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-02T08:58:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-08T14:32:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/07\/haproxy-elasticsearch-logos-min.png\" \/>\n\t<meta property=\"og:image:width\" content=\"15060\" \/>\n\t<meta property=\"og:image:height\" content=\"6376\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Antonio Olmos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@geko_cloud\" \/>\n<meta name=\"twitter:site\" content=\"@geko_cloud\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/\"},\"author\":{\"name\":\"Antonio Olmos\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/06c5401df344025908fdda04850a1dd0\"},\"headline\":\"Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy\",\"datePublished\":\"2021-07-02T08:58:43+00:00\",\"dateModified\":\"2021-11-08T14:32:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/\"},\"wordCount\":629,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/geko.cloud\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/07\/haproxy-elasticsearch-logos-min.png\",\"keywords\":[\"Elasticsearch\",\"HAproxy\"],\"articleSection\":[\"Labs\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/\",\"url\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/\",\"name\":\"Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy - Geko Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/geko.cloud\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/07\/haproxy-elasticsearch-logos-min.png\",\"datePublished\":\"2021-07-02T08:58:43+00:00\",\"dateModified\":\"2021-11-08T14:32:03+00:00\",\"description\":\"Elasticsearch permite indexar muchos tipos de contenidos, y en este post trataremos c\u00f3mo indexar los logs HTTP de un loadbalancer y proxy como HAProxy.\",\"breadcrumb\":{\"@id\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#primaryimage\",\"url\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/07\/haproxy-elasticsearch-logos-min.png\",\"contentUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/07\/haproxy-elasticsearch-logos-min.png\",\"width\":15060,\"height\":6376,\"caption\":\"haproxy elasticsearch logos\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/geko.cloud\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/geko.cloud\/es\/#website\",\"url\":\"https:\/\/geko.cloud\/es\/\",\"name\":\"Geko Cloud\",\"description\":\"Servicios de consultor\u00eda cloud y devops\",\"publisher\":{\"@id\":\"https:\/\/geko.cloud\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/geko.cloud\/es\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/geko.cloud\/es\/#organization\",\"name\":\"Geko Cloud\",\"url\":\"https:\/\/geko.cloud\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png\",\"contentUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png\",\"width\":1650,\"height\":809,\"caption\":\"Geko Cloud\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/geko_cloud\",\"https:\/\/www.instagram.com\/gekocloud\/\",\"https:\/\/www.linkedin.com\/company\/gekocloud\",\"https:\/\/www.youtube.com\/channel\/UC5EFLCqUM7fEaXSa_0nWowQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/06c5401df344025908fdda04850a1dd0\",\"name\":\"Antonio Olmos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/48f5ef4bb4ea8f8258470052a3ce4a44?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/48f5ef4bb4ea8f8258470052a3ce4a44?s=96&d=mm&r=g\",\"caption\":\"Antonio Olmos\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy - Geko Cloud","description":"Elasticsearch permite indexar muchos tipos de contenidos, y en este post trataremos c\u00f3mo indexar los logs HTTP de un loadbalancer y proxy como HAProxy.","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:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/","og_locale":"es_ES","og_type":"article","og_title":"Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy - Geko Cloud","og_description":"Elasticsearch permite indexar muchos tipos de contenidos, y en este post trataremos c\u00f3mo indexar los logs HTTP de un loadbalancer y proxy como HAProxy.","og_url":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/","og_site_name":"Geko Cloud","article_published_time":"2021-07-02T08:58:43+00:00","article_modified_time":"2021-11-08T14:32:03+00:00","og_image":[{"width":15060,"height":6376,"url":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/07\/haproxy-elasticsearch-logos-min.png","type":"image\/png"}],"author":"Antonio Olmos","twitter_card":"summary_large_image","twitter_creator":"@geko_cloud","twitter_site":"@geko_cloud","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#article","isPartOf":{"@id":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/"},"author":{"name":"Antonio Olmos","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/06c5401df344025908fdda04850a1dd0"},"headline":"Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy","datePublished":"2021-07-02T08:58:43+00:00","dateModified":"2021-11-08T14:32:03+00:00","mainEntityOfPage":{"@id":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/"},"wordCount":629,"commentCount":0,"publisher":{"@id":"https:\/\/geko.cloud\/es\/#organization"},"image":{"@id":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#primaryimage"},"thumbnailUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/07\/haproxy-elasticsearch-logos-min.png","keywords":["Elasticsearch","HAproxy"],"articleSection":["Labs"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/","url":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/","name":"Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy - Geko Cloud","isPartOf":{"@id":"https:\/\/geko.cloud\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#primaryimage"},"image":{"@id":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#primaryimage"},"thumbnailUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/07\/haproxy-elasticsearch-logos-min.png","datePublished":"2021-07-02T08:58:43+00:00","dateModified":"2021-11-08T14:32:03+00:00","description":"Elasticsearch permite indexar muchos tipos de contenidos, y en este post trataremos c\u00f3mo indexar los logs HTTP de un loadbalancer y proxy como HAProxy.","breadcrumb":{"@id":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#primaryimage","url":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/07\/haproxy-elasticsearch-logos-min.png","contentUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/07\/haproxy-elasticsearch-logos-min.png","width":15060,"height":6376,"caption":"haproxy elasticsearch logos"},{"@type":"BreadcrumbList","@id":"https:\/\/geko.cloud\/es\/indexar-en-elasticsearch-las-cabeceras-http-personalizadas-de-haproxy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/geko.cloud\/es\/"},{"@type":"ListItem","position":2,"name":"Indexar en Elasticsearch las cabeceras HTTP personalizadas de HAProxy"}]},{"@type":"WebSite","@id":"https:\/\/geko.cloud\/es\/#website","url":"https:\/\/geko.cloud\/es\/","name":"Geko Cloud","description":"Servicios de consultor\u00eda cloud y devops","publisher":{"@id":"https:\/\/geko.cloud\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/geko.cloud\/es\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/geko.cloud\/es\/#organization","name":"Geko Cloud","url":"https:\/\/geko.cloud\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/","url":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png","contentUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png","width":1650,"height":809,"caption":"Geko Cloud"},"image":{"@id":"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/geko_cloud","https:\/\/www.instagram.com\/gekocloud\/","https:\/\/www.linkedin.com\/company\/gekocloud","https:\/\/www.youtube.com\/channel\/UC5EFLCqUM7fEaXSa_0nWowQ"]},{"@type":"Person","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/06c5401df344025908fdda04850a1dd0","name":"Antonio Olmos","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/48f5ef4bb4ea8f8258470052a3ce4a44?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/48f5ef4bb4ea8f8258470052a3ce4a44?s=96&d=mm&r=g","caption":"Antonio Olmos"}}]}},"_links":{"self":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/1860"}],"collection":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/comments?post=1860"}],"version-history":[{"count":3,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/1860\/revisions"}],"predecessor-version":[{"id":5290,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/1860\/revisions\/5290"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/media\/5447"}],"wp:attachment":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/media?parent=1860"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/categories?post=1860"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/tags?post=1860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}