{"id":15789,"date":"2022-07-28T11:21:33","date_gmt":"2022-07-28T09:21:33","guid":{"rendered":"https:\/\/www.transparentedge.eu\/blog\/logs-tiempo-real\/"},"modified":"2024-08-23T13:44:41","modified_gmt":"2024-08-23T11:44:41","slug":"real-time-log-delivery-system","status":"publish","type":"post","link":"https:\/\/www.transparentedge.eu\/en\/blog\/real-time-log-delivery-system\/","title":{"rendered":"Our real-time log delivery system"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">When I started at Transparent Edge, one of my first tasks was to implement a log delivery system in real-time. It needed to be capable of distributing billions of<\/span><a href=\"https:\/\/www.transparentedge.eu\/blog\/logs-cdn\/\"> <span style=\"font-weight: 400;\">logs<\/span><\/a><span style=\"font-weight: 400;\"> or records daily, with very low latency and high performance. We all agreed that\u00a0 <\/span><a href=\"https:\/\/kafka.apache.org\/\"><span style=\"font-weight: 400;\">Apache Kafka<\/span><\/a><span style=\"font-weight: 400;\"> should be at the core of this.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The best thing about working for a company that offers a live, constantly developing product, is that you can see it grow firsthand, often being part of the process. If we add a team that makes you a part of every stage, you get a global vision that allows you to learn a wide range of new technologies, knowing also how and when to apply them.\u00a0<\/span><\/p>\n<h2><b>HOW TO IMPLEMENT -STEP BY STEP- A REAL-TIME LOGS SYSTEM?<\/b><\/h2>\n<h3><span style=\"font-weight: 400;\">DOCUMENTATION AND FIRST TOUCHPOINT WITH APACHE KAFKA<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">If anything characterizes the world of technology and particularly, the world of software, is that it\u2019s constantly changing. Each day there\u2019s a new app, a new framework that promises to be better than the existing ones, and even a new programming language.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This is why it is essential to know how to consult the existing documentation in all its forms, whether it would be in their webpage, a Git repository\u2019s README, or on a manpage. Kafka was no exception.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Soon, questions started to arise: what are the requirements? How many nodes do we need to achieve high availability? How do I authenticate and authorize users? Thanks to the documentation I was able to solve these questions fairly quickly, and we soon had an operational cluster, prepared to authenticate and authorize not only our clients, but also future \u201cproducers\u201d that would ingest real-time logs from the different <\/span><a href=\"https:\/\/www.transparentedge.eu\/blog\/que-es-una-cdn\/\"><span style=\"font-weight: 400;\">CDN<\/span><\/a><span style=\"font-weight: 400;\"> servers.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">INGESTING LOGS INTO KAFKA<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The next phase was to implement a system that would ingest the<\/span> <a href=\"https:\/\/docs.transparentedge.eu\/guias\/streaming-de-logs-con-kafka\"><span style=\"font-weight: 400;\">logs<\/span><\/a><span style=\"font-weight: 400;\"> that were generated on the platform in the lightest way possible. And this implied a couple of challenges.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Our platform has various types of servers based on their purpose, and not all of them run the same software nor generate the same type of log. It\u2019s not the same to have a server on our media platform, optimized for live streaming, that one on our delivery platform, optimized for web caching and low latency.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The system had to be flexible enough to adapt with ease to the new potential kind of servers or log formats, and also very light, since it would be run at the edge, where each CPU cycle counts.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Regarding the performance, luckily, there\u2019s the <\/span><a href=\"https:\/\/github.com\/edenhill\/librdkafka\"><span style=\"font-weight: 400;\">librdkafka<\/span><\/a><span style=\"font-weight: 400;\"> library that implements the Kafka protocol in C, and <\/span><a href=\"https:\/\/github.com\/confluentinc\/confluent-kafka-python\"><span style=\"font-weight: 400;\">confluent-kafka-python<\/span><\/a><span style=\"font-weight: 400;\"> that uses said library to get an optimal performance even with Python, a very flexible language.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Again, we turned to the documentation, in this case from librdkafka and concluent-kafka-python, and our <\/span><b>producer<\/b><span style=\"font-weight: 400;\"> slowly started to take shape. It&#8217;s a name that honors the concept of producer and consumer in Kafka.\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To retrieve the logs, the process detects the type of platform it&#8217;s been running on and uses the appropriate methodology.\u00a0 For example, on our media platform, it uses <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Named_pipe\"><span style=\"font-weight: 400;\">\u00a0named pipes<\/span><\/a><span style=\"font-weight: 400;\"> and on our delivery platform it executes a utility directly (a logger), that dumps the Varnish logs directly from memory.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">IDENTIFYING THE CLIENT FOR REAL-TIME LOG DELIVERY<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">All logs on our platform have a field that represents the client\u2019s identifier. The producer, when it receives one of these logs, must decide which client it belongs to, so that it can send it to the correct queue, (in Kafka this is referred to as \u201ctopic\u201d )<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The process of determining the client for each log is executed in real-time for each and every one of the millions of logs that our platform generates daily. And we\u2019re using Python, an interpreted high-level language that doesn\u2019t offer high performance (although it does compile certain parts to <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/CPython\"><span style=\"font-weight: 400;\">bytecode<\/span><\/a> <span style=\"font-weight: 400;\">)\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To avoid bottlenecks and minimize CPU usage, what we do is we add the client\u2019s identifier at the start of the logs that the producer receives, and obtain it through this simple way:\u00a0<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">for data in self._varnishncsa.stdout:<\/span>\n\n<span style=\"font-weight: 400;\">\u00a0\u00a0clientid, logstring = data.split(\" \", 1)<\/span>\n\n<span style=\"font-weight: 400;\">\u00a0\u00a0self._produce_to_kafka(clientid, logstring)<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Meaning, you perform a split once, and we already have separated the client\u2019s identifier and the log itself.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The rest of the work is delegated to a library on Kafka, which is in charge of collecting, compressing and sending the logs to Kafka. All of this with a little tweak in the configuration:\u00a0<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">\"compression.codec\": \"gzip\",<\/span>\n\n<span style=\"font-weight: 400;\">\"retry.backoff.ms\": 3000,<\/span>\n\n<span style=\"font-weight: 400;\">\"queue.buffering.max.messages\": 250000,<\/span>\n\n<span style=\"font-weight: 400;\">\"queue.buffering.max.ms\": 1000,\u00a0 # alias of linger.ms<\/span>\n\n<span style=\"font-weight: 400;\">\"batch.num.messages\": 10000,<\/span>\n\n<span style=\"font-weight: 400;\">\"topic.metadata.refresh.interval.ms\": 150000,<\/span>\n\n<span style=\"font-weight: 400;\">\"socket.timeout.ms\": 45000,<\/span>\n\n<span style=\"font-weight: 400;\">\"socket.keepalive.enable\": True,<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">It\u2019s what in the end allows us to ingest the logs into the Kafka cluster without taking away precious CPU cycles from the edge nodes.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">AUTOMATIZATION\u00a0 AND FINAL STEPS FOR REAL-TIME LOG DELIVERY<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Lastly, we only need to join all of these components and automate the onboarding process of all the clients that want to consume their logs in real-time.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For this, we implemented on our <\/span><a href=\"https:\/\/dashboard.transparentcdn.com\/\"><span style=\"font-weight: 400;\">panel<\/span><\/a> <span style=\"font-weight: 400;\">a new section inside the log delivery service. We already had the daily delivery service, and the streaming service. <\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-14573 aligncenter\" src=\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/Captura-de-pantalla-2022-07-28-a-las-11.16.01-300x208.png\" alt=\"\" width=\"300\" height=\"208\" srcset=\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/Captura-de-pantalla-2022-07-28-a-las-11.16.01-300x208.png 300w, https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/Captura-de-pantalla-2022-07-28-a-las-11.16.01-1024x708.png 1024w, https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/Captura-de-pantalla-2022-07-28-a-las-11.16.01-768x531.png 768w, https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/Captura-de-pantalla-2022-07-28-a-las-11.16.01.png 1356w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">When one of our clients subscribes (in a fully transparent and cost-free way) to our <\/span><a href=\"https:\/\/www.transparentedge.eu\/logs-en-streaming\/\"><span style=\"font-weight: 400;\">log-streaming service<\/span><\/a><span style=\"font-weight: 400;\">, there\u2019s a request sent to our API that includes them in the list of clients with active service. This triggers a series of processes:\u00a0<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">An exclusive topic is created for said client<\/span><\/li>\n<li><span style=\"font-weight: 400;\">ACLs are established in the Kafka Cluster that will allow them to consume from said topic.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">On each one of the edge servers, the producer also updates their list of clients with the service enabled, so that when they receive a log that belongs to a certain client, it sends it to the corresponding topic.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">All of this doesn\u2019t take longer than five minutes. Once the service is active, the panel displays\u00a0 the following to our client:\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Here they can download a zip file that will be generated automatically and it will include everything that&#8217;s needed to start consuming their logs in real-time. This contains examples already configured for different kinds of Kafka compatible applications, such as Filebeat, Logstash or a custom script in Python, and all the required certificates to authenticate.\u00a0<\/span><span style=\"font-weight: 400;\">That&#8217;s how we got everything ready and Transparent Edge finally had their <\/span><b>log delivery service in real-time. <\/b><\/p>\n<p><a href=\"https:\/\/www.linkedin.com\/in\/manusp\/\"><span style=\"font-weight: 400;\">Manu S\u00e1nchez Pinar<\/span><\/a><span style=\"font-weight: 400;\"> is a Linux SysAdmin &#8211; DevOps at Transparent Edge.\u00a0<\/span><\/p>\n<blockquote><p><em><span style=\"font-weight: 400;\">If instead of T-1000, Manu was put to chase Terminator, the movie would\u2019ve lasted five minutes and he would run NixOS. Analytical, methodical and an enthusiast of open source software, he administers and grows the infrastructure and services of Transparent Edge, keeping it as clean as the sky in summer.\u00a0<\/span><\/em><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>When I started at Transparent Edge, one of my first tasks was to implement a log delivery system in real-time. [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":19669,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[137],"tags":[138,139,140,141],"class_list":["post-15789","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-optimizacion-en","tag-alto-rendimiento-en","tag-cdn-en","tag-distribucion-de-contenidos-en","tag-edgecomputing-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Our real-time log delivery system<\/title>\n<meta name=\"description\" content=\"We tell you how to implement a real-time log delivery system implemented step by step by Transparent Edge.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Our real-time log delivery system\" \/>\n<meta property=\"og:description\" content=\"We tell you how to implement a real-time log delivery system implemented step by step by Transparent Edge.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/\" \/>\n<meta property=\"og:site_name\" content=\"Transparent Edge\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-28T09:21:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-23T11:44:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/EN-_-Blog-_-Invisibles-1024x684.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"684\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Manu S\u00e1nchez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Nuestro sistema de env\u00edo de logs en tiempo real\" \/>\n<meta name=\"twitter:description\" content=\"Abordamos c\u00f3mo implementamos el sistema de env\u00edo de logs en tiempo real para nuestros clientes.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/05\/seguridad-web.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@tedgeservices\" \/>\n<meta name=\"twitter:site\" content=\"@tedgeservices\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/\"},\"author\":{\"name\":\"Manu S\u00e1nchez\",\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/#\\\/schema\\\/person\\\/6100a35dd9b5cdd4d36d29527ef8ee37\"},\"headline\":\"Our real-time log delivery system\",\"datePublished\":\"2022-07-28T09:21:33+00:00\",\"dateModified\":\"2024-08-23T11:44:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/\"},\"wordCount\":1089,\"publisher\":{\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.transparentedge.eu\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/EN-_-Blog-_-Invisibles.jpg\",\"keywords\":[\"alto rendimiento\",\"CDN\",\"distribuci\u00f3n de contenidos\",\"EdgeComputing\"],\"articleSection\":[\"optimizaci\u00f3n\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/\",\"url\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/\",\"name\":\"Our real-time log delivery system\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.transparentedge.eu\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/EN-_-Blog-_-Invisibles.jpg\",\"datePublished\":\"2022-07-28T09:21:33+00:00\",\"dateModified\":\"2024-08-23T11:44:41+00:00\",\"description\":\"We tell you how to implement a real-time log delivery system implemented step by step by Transparent Edge.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.transparentedge.eu\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/EN-_-Blog-_-Invisibles.jpg\",\"contentUrl\":\"https:\\\/\\\/www.transparentedge.eu\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/EN-_-Blog-_-Invisibles.jpg\",\"width\":8192,\"height\":5468},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/blog\\\/real-time-log-delivery-system\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.transparentedge.eu\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Our real-time log delivery system\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/#website\",\"url\":\"https:\\\/\\\/www.transparentedge.eu\\\/\",\"name\":\"Transparent Edge\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/#organization\"},\"alternateName\":\"Transparent Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.transparentedge.eu\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/#organization\",\"name\":\"Transparent Edge Services\",\"alternateName\":\"Transparent Edge\",\"url\":\"https:\\\/\\\/www.transparentedge.eu\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.transparentedge.eu\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/logotipo-cuadrado.jpg\",\"contentUrl\":\"https:\\\/\\\/www.transparentedge.eu\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/logotipo-cuadrado.jpg\",\"width\":1328,\"height\":1180,\"caption\":\"Transparent Edge Services\"},\"image\":{\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/tedgeservices\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/transparent-edge\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC5zZoyZmiLGBTAdiFpj2xHA\\\/videos\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.transparentedge.eu\\\/#\\\/schema\\\/person\\\/6100a35dd9b5cdd4d36d29527ef8ee37\",\"name\":\"Manu S\u00e1nchez\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/manusp\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Our real-time log delivery system","description":"We tell you how to implement a real-time log delivery system implemented step by step by Transparent Edge.","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:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/","og_locale":"en_US","og_type":"article","og_title":"Our real-time log delivery system","og_description":"We tell you how to implement a real-time log delivery system implemented step by step by Transparent Edge.","og_url":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/","og_site_name":"Transparent Edge","article_published_time":"2022-07-28T09:21:33+00:00","article_modified_time":"2024-08-23T11:44:41+00:00","og_image":[{"width":1024,"height":684,"url":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/EN-_-Blog-_-Invisibles-1024x684.jpg","type":"image\/jpeg"}],"author":"Manu S\u00e1nchez","twitter_card":"summary_large_image","twitter_title":"Nuestro sistema de env\u00edo de logs en tiempo real","twitter_description":"Abordamos c\u00f3mo implementamos el sistema de env\u00edo de logs en tiempo real para nuestros clientes.","twitter_image":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/05\/seguridad-web.jpg","twitter_creator":"@tedgeservices","twitter_site":"@tedgeservices","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/#article","isPartOf":{"@id":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/"},"author":{"name":"Manu S\u00e1nchez","@id":"https:\/\/www.transparentedge.eu\/#\/schema\/person\/6100a35dd9b5cdd4d36d29527ef8ee37"},"headline":"Our real-time log delivery system","datePublished":"2022-07-28T09:21:33+00:00","dateModified":"2024-08-23T11:44:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/"},"wordCount":1089,"publisher":{"@id":"https:\/\/www.transparentedge.eu\/#organization"},"image":{"@id":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/#primaryimage"},"thumbnailUrl":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/EN-_-Blog-_-Invisibles.jpg","keywords":["alto rendimiento","CDN","distribuci\u00f3n de contenidos","EdgeComputing"],"articleSection":["optimizaci\u00f3n"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/","url":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/","name":"Our real-time log delivery system","isPartOf":{"@id":"https:\/\/www.transparentedge.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/#primaryimage"},"image":{"@id":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/#primaryimage"},"thumbnailUrl":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/EN-_-Blog-_-Invisibles.jpg","datePublished":"2022-07-28T09:21:33+00:00","dateModified":"2024-08-23T11:44:41+00:00","description":"We tell you how to implement a real-time log delivery system implemented step by step by Transparent Edge.","breadcrumb":{"@id":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/#primaryimage","url":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/EN-_-Blog-_-Invisibles.jpg","contentUrl":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2022\/07\/EN-_-Blog-_-Invisibles.jpg","width":8192,"height":5468},{"@type":"BreadcrumbList","@id":"https:\/\/www.transparentedge.eu\/blog\/real-time-log-delivery-system\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.transparentedge.eu\/en\/"},{"@type":"ListItem","position":2,"name":"Our real-time log delivery system"}]},{"@type":"WebSite","@id":"https:\/\/www.transparentedge.eu\/#website","url":"https:\/\/www.transparentedge.eu\/","name":"Transparent Edge","description":"","publisher":{"@id":"https:\/\/www.transparentedge.eu\/#organization"},"alternateName":"Transparent Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.transparentedge.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.transparentedge.eu\/#organization","name":"Transparent Edge Services","alternateName":"Transparent Edge","url":"https:\/\/www.transparentedge.eu\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.transparentedge.eu\/#\/schema\/logo\/image\/","url":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2023\/07\/logotipo-cuadrado.jpg","contentUrl":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2023\/07\/logotipo-cuadrado.jpg","width":1328,"height":1180,"caption":"Transparent Edge Services"},"image":{"@id":"https:\/\/www.transparentedge.eu\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/tedgeservices","https:\/\/www.linkedin.com\/company\/transparent-edge\/","https:\/\/www.youtube.com\/channel\/UC5zZoyZmiLGBTAdiFpj2xHA\/videos"]},{"@type":"Person","@id":"https:\/\/www.transparentedge.eu\/#\/schema\/person\/6100a35dd9b5cdd4d36d29527ef8ee37","name":"Manu S\u00e1nchez","sameAs":["https:\/\/www.linkedin.com\/in\/manusp\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/posts\/15789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/comments?post=15789"}],"version-history":[{"count":3,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/posts\/15789\/revisions"}],"predecessor-version":[{"id":19672,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/posts\/15789\/revisions\/19672"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/media\/19669"}],"wp:attachment":[{"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/media?parent=15789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/categories?post=15789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/tags?post=15789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}