[{"data":1,"prerenderedAt":226},["ShallowReactive",2],{"seo-verification":3,"blog-grafana-alloy-en-un-vps-instalar-y-migrar-desde-promtail-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-grafana-alloy-en-un-vps-instalar-y-migrar-desde-promtail-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":171,"ctaBody":172,"ctaButton":173,"ctaUrl":174,"relatedPosts":175},497,"grafana-alloy-en-un-vps-instalar-y-migrar-desde-promtail",{"fr":12,"en":13,"ar":14,"es":10},"grafana-alloy-vps-monitoring","grafana-alloy-on-a-vps-install-and-migrate-from-promtail","تثبيت-grafana-alloy-على-vps-والانتقال-من-promtail","Grafana Alloy en un VPS: instalar y migrar desde Promtail","Instale Grafana Alloy en su VPS, recoja logs y métricas con un solo agente y migre desde Promtail sin perder logs ni enviarlos dos veces.",12,0,false,"2026-10-22T00:00:00+00:00","2026-10-23T13:27:02+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fgrafana-alloy-vps-monitoring-poster.svg",{"categorySlug":34,"appSlug":35},"monitorizacion-observabilidad","grafana","Promtail ya no recibe ninguna actualización: Grafana lo declara al final de su vida útil desde el 2 de marzo de 2026. Si su VPS todavía envía sus logs a Loki con ese agente, cualquier vulnerabilidad descubierta mañana quedará abierta. Grafana Alloy ocupa su lugar y además recoge las métricas del sistema, lo que elimina un exporter más de su servidor. Esta guía instala Alloy como servicio systemd, lo conecta a Loki y Prometheus, migra una configuración de Promtail existente y resuelve los errores de permisos que Alloy no siempre señala.",[38,42,52,55,86,89,92,113,149,152,156,159,168],{"type":39,"title":40,"body":41},"h2","Por qué sustituir Promtail por Alloy ahora","La página oficial de Promtail no deja lugar a dudas: el agente está al final de su vida útil desde el 2 de marzo de 2026, el soporte comercial ha terminado y todo el desarrollo continúa en Grafana Alloy. Un agente de recolección es un proceso privilegiado que funciona de forma permanente: dejarlo sin correcciones no es sostenible.\n\nAlloy no es un Promtail con otro nombre. Es un recolector único, configurado por componentes: una fuente de logs, un exporter de métricas del sistema, un envío hacia Loki y otro hacia Prometheus. En un VPS que ejecutaba Promtail y node_exporter en paralelo, ahora basta un solo servicio. También puede reenviar OTLP si instrumenta sus aplicaciones, tema tratado en \u003Ca href=\"\u002Fes\u002Fblog\u002Fgrafana-tempo-opentelemetry-trazado-distribuido-vps\">nuestra guía de Tempo y OpenTelemetry\u003C\u002Fa>.\n\nEsta guía no reinstala Loki ni Prometheus: la parte de servidor se describe en \u003Ca href=\"\u002Fes\u002Fblog\u002Fcentralizar-logs-docker-en-vps-con-loki-y-grafana\">la guía de Loki y Grafana\u003C\u002Fa> y en \u003Ca href=\"\u002Fes\u002Fblog\u002Fmonitorizacion-vps-grafana-prometheus\">la guía de Grafana y Prometheus\u003C\u002Fa>. Aquí nos ocupamos del agente.",{"type":43,"title":44,"items":45},"ul","Lo que cambia un agente único en su servidor",[46,47,48,49,50,51],"**Un solo servicio que vigilar** — logs y métricas pasan por el mismo proceso `alloy`, con un único registro que leer cuando algo falla.","**Actualizaciones que siguen llegando** — Alloy se publica en los repositorios apt y rpm de Grafana: un `apt upgrade` lo mantiene al día como el resto del sistema.","**Una migración con herramientas** — el comando `alloy convert` traduce una configuración de Promtail existente y genera un informe de lo que no ha podido convertir.","**Métricas del sistema integradas** — el componente `prometheus.exporter.unix` sustituye a node_exporter sin binario adicional ni puerto que abrir.","**Una interfaz de depuración local** — la UI en el puerto 12345 muestra el grafo de componentes y sus valores, accesible mediante un túnel SSH.","**Salida hacia su propia pila o hacia Grafana Cloud** — el mismo archivo envía a un Loki autoalojado o a un servicio gestionado cambiando una URL.",{"type":39,"title":53,"body":54},"Requisitos cuantificados para Alloy en un VPS","Alloy se instala en Debian, Ubuntu, AlmaLinux o Rocky Linux desde los repositorios oficiales de Grafana. El paquete crea un usuario de sistema `alloy`, un servicio systemd con el mismo nombre y el archivo de configuración `\u002Fetc\u002Falloy\u002Fconfig.alloy`.\n\nEn cuanto a recursos, la documentación de Alloy da dos órdenes de magnitud: alrededor de 1 núcleo y 120 MiB de memoria por cada MiB\u002Fs de logs ingeridos, y alrededor de 11 GiB de memoria por cada millón de series activas de Prometheus. Un VPS aislado expone unos pocos miles de series y rara vez escribe más de unos cientos de KiB de logs por segundo. Nuestra recomendación editorial: reserve medio vCPU y de 256 a 512 MB de RAM para el agente, y algunos GB de disco en `\u002Fvar\u002Flib\u002Falloy` para las posiciones de lectura y el búfer de envío.\n\nPor último, necesita un destino: un Loki accesible en `\u002Floki\u002Fapi\u002Fv1\u002Fpush` y un Prometheus iniciado con el indicador `--web.enable-remote-write-receiver`, que abre el endpoint `\u002Fapi\u002Fv1\u002Fwrite`. No hay que abrir ningún puerto de entrada en el VPS del agente: Alloy envía, no se le consulta.",{"type":56,"title":57,"steps":58},"steps","Instalar Alloy y conectar logs y métricas",[59,62,65,68,71,74,77,80,83],{"title":60,"body":61},"Añadir el repositorio de Grafana en Debian o Ubuntu","`sudo mkdir -p \u002Fetc\u002Fapt\u002Fkeyrings`\n`sudo wget -O \u002Fetc\u002Fapt\u002Fkeyrings\u002Fgrafana.asc https:\u002F\u002Fapt.grafana.com\u002Fgpg-full.key`\n`sudo chmod 644 \u002Fetc\u002Fapt\u002Fkeyrings\u002Fgrafana.asc`\n`echo \"deb [signed-by=\u002Fetc\u002Fapt\u002Fkeyrings\u002Fgrafana.asc] https:\u002F\u002Fapt.grafana.com stable main\" | sudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fgrafana.list`\n`sudo apt-get update && sudo apt-get install alloy`",{"title":63,"body":64},"O instalarlo en AlmaLinux y Rocky Linux","Importe la clave con `wget -q -O gpg.key https:\u002F\u002Frpm.grafana.com\u002Fgpg.key` y después `sudo rpm --import gpg.key`. Cree `\u002Fetc\u002Fyum.repos.d\u002Fgrafana.repo` con `baseurl=https:\u002F\u002Frpm.grafana.com`, `repo_gpgcheck=1`, `gpgcheck=1` y `enabled=1`, como indica la página de instalación de Alloy para Linux, y ejecute `sudo dnf install alloy`.",{"title":66,"body":67},"Iniciar el servicio y comprobar su usuario","`sudo systemctl enable --now alloy`\n`sudo systemctl status alloy`\n`systemctl cat alloy | grep User`\n\nEl último comando debe mostrar `User=alloy`. El paquete no fija ningún `Group=`: los permisos de lectura vienen, por tanto, de los grupos secundarios de ese usuario, un punto clave para lo que sigue.",{"title":69,"body":70},"Declarar el destino de los logs","Abra `\u002Fetc\u002Falloy\u002Fconfig.alloy` y añada el envío hacia Loki:\n\n`loki.write \"default\" {`\n`  endpoint {`\n`    url = \"http:\u002F\u002F127.0.0.1:3100\u002Floki\u002Fapi\u002Fv1\u002Fpush\"`\n`  }`\n`}`\n\nSustituya la dirección por la de su Loki. Si es remoto, use HTTPS y un bloque `basic_auth`.",{"title":72,"body":73},"Recoger journald y los archivos de log","`loki.source.journal \"system\" {`\n`  forward_to = [loki.write.default.receiver]`\n`  labels     = {\"job\" = \"systemd-journal\"}`\n`}`\n`local.file_match \"nginx\" {`\n`  path_targets = [{\"__path__\" = \"\u002Fvar\u002Flog\u002Fnginx\u002F*.log\", \"job\" = \"nginx\"}]`\n`}`\n`loki.source.file \"nginx\" {`\n`  targets    = local.file_match.nginx.targets`\n`  forward_to = [loki.write.default.receiver]`\n`}`\n\nPor defecto, la fuente journal lee `\u002Fvar\u002Flog\u002Fjournal` y `\u002Frun\u002Flog\u002Fjournal`, y solo retrocede siete horas en el primer arranque.",{"title":75,"body":76},"Recoger las métricas del sistema","`prometheus.exporter.unix \"node\" { }`\n`prometheus.scrape \"node\" {`\n`  targets    = prometheus.exporter.unix.node.targets`\n`  forward_to = [prometheus.remote_write.default.receiver]`\n`}`\n`prometheus.remote_write \"default\" {`\n`  endpoint {`\n`    url = \"http:\u002F\u002F127.0.0.1:9090\u002Fapi\u002Fv1\u002Fwrite\"`\n`  }`\n`}`\n\nSi node_exporter ya funcionaba en la máquina, deténgalo tras el cambio para no recoger dos veces las mismas series.",{"title":78,"body":79},"Validar antes de recargar","`sudo alloy validate \u002Fetc\u002Falloy\u002Fconfig.alloy`\n`sudo systemctl reload alloy`\n`sudo journalctl -u alloy -f`\n\n`validate` señala un error de sintaxis o un componente mal referenciado antes de que el servicio cargue la configuración.",{"title":81,"body":82},"Conceder permisos de lectura","`id alloy` debe listar los grupos `adm` y `systemd-journal`. El paquete los añade cuando existen; tras una instalación por binario o un grupo eliminado, restablézcalos con `sudo usermod -aG adm,systemd-journal alloy` y después `sudo systemctl restart alloy`. Para una carpeta de aplicación propiedad de otro usuario, la documentación prefiere una ACL a un grupo más: `sudo setfacl -R -m u:alloy:rx \u002Fvar\u002Flog\u002Fmonapp` y `sudo setfacl -R -d -m u:alloy:rx \u002Fvar\u002Flog\u002Fmonapp`.",{"title":84,"body":85},"Comprobar de extremo a extremo y conectar sus paneles","Escriba una línea de prueba con `logger -t alloy-test \"ligne de test alloy\"` y búsquela en Grafana, pestaña Explore, con la consulta `{job=\"systemd-journal\"} |= \"ligne de test alloy\"`. En cuanto a métricas, la consulta `node_load1` debe devolver una serie para su VPS. Si ambas responden, reutilice los paneles de \u003Ca href=\"\u002Fes\u002Fblog\u002Fmonitorizacion-vps-grafana-prometheus\">nuestra guía de Grafana y Prometheus\u003C\u002Fa>, que leen las mismas series `node_*`.",{"type":39,"title":87,"body":88},"Alloy y Docker: leer los contenedores sin abrirlo todo","Para leer los logs de sus contenedores, Alloy instalado en el host combina `discovery.docker` y `loki.source.docker`, ambos apuntando a `unix:\u002F\u002F\u002Fvar\u002Frun\u002Fdocker.sock`. El usuario `alloy` debe entonces poder abrir ese socket, lo que en la práctica pasa por `sudo usermod -aG docker alloy`. Hágalo con conocimiento de causa: la documentación de Docker recuerda que el grupo `docker` concede privilegios equivalentes a root. Su agente de logs se convierte, de hecho, en administrador de la máquina.\n\nTambién puede ejecutar Alloy en un contenedor, con la imagen `grafana\u002Falloy`, el archivo montado en `\u002Fetc\u002Falloy\u002Fconfig.alloy` y el argumento `--storage.path=\u002Fvar\u002Flib\u002Falloy\u002Fdata` sobre un volumen persistente. Montar el socket como `:ro` no limita las llamadas a la API de Docker: un socket sigue siendo un socket. Y para las métricas del host, el contenedor debe recibir el sistema de archivos, `\u002Fproc` y `\u002Fsys` de la máquina como montajes.\n\nEn un único VPS, el paquete systemd sigue siendo lo más sencillo de auditar.",{"type":39,"title":90,"body":91},"Migrar desde Promtail: el riesgo real son las posiciones","Promtail mantiene un archivo de posiciones que guarda, para cada archivo seguido, dónde dejó de leer. Alloy guarda las suyas en otro lugar, en la carpeta definida por `--storage.path`. La conversión lo tiene en cuenta: el bloque `loki.source.file` generado por `alloy convert` incluye un argumento `legacy_positions_file` que apunta al archivo antiguo, para retomar la lectura en el punto correcto.\n\nEste mecanismo tiene un punto débil documentado. En la issue grafana\u002Falloy #5493, un usuario describe el error `error reading legacy positions file` seguido de `permission denied`: Alloy no pudo leer el archivo antiguo, lo ignoró y reenvió todos los logs del servidor desde el principio. El mantenedor consideró legítimo detener Alloy en ese caso y la issue está cerrada, pero no apueste por su versión: compruebe los permisos antes del primer arranque.\n\nEl otro riesgo es el contrario: Promtail y Alloy activos a la vez envían cada línea dos veces. El orden siguiente evita ambos.",{"type":56,"title":93,"steps":94},"Migrar una configuración de Promtail sin pérdidas ni duplicados",[95,98,101,104,107,110],{"title":96,"body":97},"Localizar la configuración y el archivo de posiciones","Abra la configuración de Promtail, a menudo `\u002Fetc\u002Fpromtail\u002Fconfig.yml`, y anote el valor de `positions.filename`. En una instalación con Docker Compose, ese archivo vive en un volumen: anote su ruta real en el host.",{"title":99,"body":100},"Convertir con un informe","`alloy convert --source-format=promtail --report=\u002Ftmp\u002Fpromtail-report.txt --output=\u002Ftmp\u002Fpromtail.alloy \u002Fetc\u002Fpromtail\u002Fconfig.yml`\n\nLea el informe antes que nada. La opción `--bypass-errors` fuerza una conversión parcial, pero la documentación advierte de que el comportamiento puede diferir entonces del original.",{"title":102,"body":103},"Comprobar que el usuario alloy lee el archivo antiguo","`grep legacy_positions_file \u002Ftmp\u002Fpromtail.alloy`\n`sudo -u alloy cat \u002Fvar\u002Flib\u002Fpromtail\u002Fpositions.yaml`\n\nAdapte la ruta a la que anotó antes. Si el segundo comando falla, copie el archivo en una carpeta legible por `alloy` y corrija la ruta en la configuración convertida.",{"title":105,"body":106},"Detener Promtail antes de iniciar Alloy","`sudo systemctl stop promtail`, o `docker compose stop promtail` para una pila en contenedores. Promtail escribe entonces sus últimas posiciones y ninguna línea se envía dos veces durante el cambio.",{"title":108,"body":109},"Cambiar la configuración","Lleve los bloques convertidos a `\u002Fetc\u002Falloy\u002Fconfig.alloy`, ejecute `sudo alloy validate \u002Fetc\u002Falloy\u002Fconfig.alloy` y después `sudo systemctl restart alloy`. Compruebe enseguida `sudo journalctl -u alloy | grep -i positions`: no debe aparecer ninguna línea `error reading legacy positions file`.",{"title":111,"body":112},"Vigilar una semana y desinstalar","Compare el volumen de logs en Grafana antes y después del cambio, y siga el contador `loki_write_sent_entries_total` de Alloy. Conserve la configuración de Promtail unos días, luego `sudo systemctl disable promtail` y retire el paquete o el servicio de Compose.",{"type":114,"title":115,"headers":116,"rows":120},"comparison","Promtail y Alloy, frente a frente",[117,118,119],"Criterio","Promtail","Grafana Alloy",[121,125,129,133,137,141,145],[122,123,124],"Estado","Fin de vida desde el 2 de marzo de 2026, sin más actualizaciones","Desarrollo activo, sucesor designado por Grafana",[126,127,128],"Señales recogidas","Solo logs","Logs, métricas, trazas OTLP y perfiles",[130,131,132],"Métricas del sistema","node_exporter que instalar aparte","Componente `prometheus.exporter.unix` integrado",[134,135,136],"Configuración","YAML","Sintaxis de Alloy por componentes, conversión con `alloy convert`",[138,139,140],"Posiciones de lectura","Archivo definido en la configuración","Carpeta `--storage.path`, reanudación con `legacy_positions_file`",[142,143,144],"Depuración","Registro del servicio","Registro del servicio y UI local en el puerto 12345",[146,147,148],"Usuario del servicio","Según el modo de instalación","`alloy`, grupos `adm` y `systemd-journal` añadidos por el paquete",{"type":39,"title":150,"body":151},"Configuración tras la instalación: UI, secretos y almacenamiento","La interfaz de depuración escucha por defecto en `127.0.0.1:12345`. Déjela así y ábrala mediante un túnel: `ssh -L 12345:127.0.0.1:12345 user@your-domain.com` y después `http:\u002F\u002Flocalhost:12345` en su navegador. Si aun así quiere exponerla, añada `--server.http.listen-addr=0.0.0.0:12345` a `CUSTOM_ARGS`, pero solo detrás de un cortafuegos que filtre ese puerto.\n\nLas opciones de arranque están en `\u002Fetc\u002Fdefault\u002Falloy` en Debian y Ubuntu, y en `\u002Fetc\u002Fsysconfig\u002Falloy` en AlmaLinux y Rocky. Ahí también van los secretos: declare una variable `LOKI_PASSWORD`, léala en la configuración con `sys.env(\"LOKI_PASSWORD\")` y mantenga la contraseña fuera de `config.alloy`.\n\nPara un Loki remoto, no envíe nunca HTTP sin cifrar por Internet: coloque Loki detrás de un proxy inverso TLS con autenticación, como se describe en \u003Ca href=\"\u002Fes\u002Fblog\u002Fcentralizar-logs-docker-en-vps-con-loki-y-grafana\">nuestra guía de Loki\u003C\u002Fa>. Por último, vigile el espacio de `\u002Fvar\u002Flib\u002Falloy`: si Loki no está accesible, ahí se acumula lo que espera ser enviado.",{"type":153,"title":154,"body":155},"tip","Reforzar el servicio sin romper la recolección","La documentación de Alloy propone un archivo drop-in, creado con `sudo systemctl edit alloy` para que sobreviva a las actualizaciones del paquete: `NoNewPrivileges=yes`, `ProtectSystem=strict`, `ProtectHome=yes`, `PrivateTmp=yes` y `ReadWritePaths=\u002Fvar\u002Flib\u002Falloy`. Con `ProtectSystem=strict`, añada `ReadOnlyPaths=\u002Fvar\u002Flog\u002Fjournal` y `ReadOnlyPaths=\u002Frun\u002Flog\u002Fjournal`; si no, la fuente journal deja de leer. Termine con `sudo systemctl daemon-reload` y `sudo systemctl restart alloy`. Prefiera una ACL por carpeta a añadir grupos, y conceda el grupo `docker` solo si realmente recoge contenedores.",{"type":39,"title":157,"body":158},"Resolución de problemas: los errores que Alloy no grita","La mayoría de los fallos de Alloy en un VPS no son caídas. El servicio está activo, la interfaz está en verde y Grafana sigue vacío. La razón la documentan los propios mantenedores en la issue grafana\u002Falloy #2994, cerrada en favor de la #6340: la salud de un componente significa que se ejecuta, no que transmite.\n\nDos reflejos bastan para salir de esa niebla. Lea el registro del servicio con `sudo journalctl -u alloy --since \"10 min ago\"` y consulte las métricas internas del agente con `curl -s http:\u002F\u002F127.0.0.1:12345\u002Fmetrics | grep loki_write`. El contador `loki_write_sent_entries_total` debe subir; `loki_write_dropped_entries_total` cuenta las líneas descartadas después de agotar todos los intentos de envío.",{"type":43,"title":160,"items":161},"Mensajes de error y soluciones",[162,163,164,165,166,167],"**La fuente journal arranca, pero no llega ninguna línea** — la documentación de `loki.source.journal` lo dice: sin los grupos `adm` y `systemd-journal`, el componente arranca sin error y no recoge nada. Corríjalo con `sudo usermod -aG adm,systemd-journal alloy` y reinicie el servicio, porque un grupo añadido solo se aplica en el siguiente arranque.","**`failed to tail the file: open \u002Fvar\u002Flog\u002F…: permission denied`** — el archivo existe, pero `alloy` no puede leerlo. Conceda una ACL en la carpeta con `setfacl -R -m u:alloy:rx` y su variante `-d` para los archivos que cree después la rotación.","**Ningún mensaje, ninguna línea de toda una carpeta** — la issue grafana\u002Falloy #6542 describe logs que nunca se envían sin el menor error. Un mantenedor confirma allí que un archivo ilegible se registra, pero una carpeta inaccesible no. Pruebe con `sudo -u alloy ls \u002Fvar\u002Flog\u002Fmonapp`.","**`error reading legacy positions file … permission denied`** — Alloy no leyó las posiciones de Promtail y puede reenviarlo todo desde el principio (issue #5493). Detenga el servicio, haga el archivo legible para `alloy` y vuelva a iniciarlo.","**`failed to identify the read-write layer ID … mount-id: permission denied`** — error del componente cAdvisor bajo systemd (issue #4068). El grupo `docker` no basta; algunos usuarios indican que un drop-in con `AmbientCapabilities=CAP_DAC_READ_SEARCH` y `CapabilityBoundingSet=CAP_DAC_READ_SEARCH` lo resuelve sin ejecutar el servicio como root. Es una solución de la comunidad, que conviene probar antes de generalizarla.","**La UI está en verde, pero Grafana sigue vacío** — compruebe `loki_write_sent_entries_total` y la línea de prueba escrita con `logger`. Si el contador no avanza, el fallo está antes, en la fuente.",{"type":39,"title":169,"body":170},"Un agente al día en un servidor que le pertenece","Alloy necesita lo que un alojamiento compartido no ofrece: un servicio systemd, acceso de lectura a `\u002Fvar\u002Flog` y al journal, a veces el socket de Docker. En un VPS, usted elige su distribución, conserva su pila de Loki y Prometheus y decide qué permisos recibe el agente. Si prefiere no administrar el sistema usted mismo, la opción de administración de VPS existe para el servidor.\n\nLa documentación oficial sigue siendo la referencia para cada componente: \u003Ca href=\"https:\u002F\u002Fgrafana.com\u002Fdocs\u002Falloy\u002Flatest\u002Fset-up\u002Fmigrate\u002Ffrom-promtail\u002F\">la migración desde Promtail\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgrafana.com\u002Fdocs\u002Falloy\u002Flatest\u002Faccess_permissions\u002Flinux\u002F\">los permisos en Linux\u003C\u002Fa> y \u003Ca href=\"https:\u002F\u002Fgrafana.com\u002Fdocs\u002Floki\u002Flatest\u002Fsend-data\u002Fpromtail\u002F\">la página de fin de vida de Promtail\u003C\u002Fa>. Para el trazado de aplicaciones, continúe con \u003Ca href=\"\u002Fes\u002Fblog\u002Fgrafana-tempo-opentelemetry-trazado-distribuido-vps\">nuestra guía de Tempo y OpenTelemetry\u003C\u002Fa>.","Un VPS donde su agente de recolección tiene los permisos que necesita","En un VPS de ServOrbit.com, tiene acceso root, elección de sistema operativo entre Ubuntu, Debian, AlmaLinux y Rocky, y control sobre systemd, los grupos y las ACL. Instala Alloy, Loki o Prometheus como prefiera, y la opción de administración de VPS existe para el servidor.","Ver soluciones para desarrolladores","\u002Fsolutions\u002Fdeveloppeurs",[176,194,210],{"id":177,"slug":178,"slugs":179,"title":183,"excerpt":184,"readTime":185,"views":186,"isPinned":19,"publishedAt":187,"updatedAt":188,"category":189,"categories":190,"featuredImage":30,"bgImage":31,"posterImage":192,"relatedSolution":193},243,"centralizar-logs-docker-en-vps-con-loki-y-grafana",{"fr":180,"en":181,"ar":182,"es":178},"loki-grafana-logs-centralises-vps","centralize-docker-logs-on-your-vps-with-loki-and-grafana","مركزة-سجلات-docker-على-vps-باستخدام-loki-وgrafana","Centralizar sus logs Docker en un VPS con Loki y Grafana","Agregue los logs de todos sus contenedores Docker en un único panel de Grafana con Loki y Promtail en su VPS. Sin Datadog, sin cuotas.",11,1,"2026-08-10T00:00:00+00:00","2026-09-08T22:00:02+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[191],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Floki-grafana-logs-centralises-vps-poster.svg",{"categorySlug":34,"appSlug":35},{"id":195,"slug":196,"slugs":197,"title":201,"excerpt":202,"readTime":185,"views":18,"isPinned":19,"publishedAt":203,"updatedAt":204,"category":205,"categories":206,"featuredImage":30,"bgImage":31,"posterImage":208,"relatedSolution":209},106,"monitorizacion-vps-grafana-prometheus",{"fr":198,"en":199,"ar":200,"es":196},"monitoring-vps-grafana-prometheus","vps-monitoring-with-grafana-and-prometheus","مراقبة-الخادم-الافتراضي-vps-باستخدام-grafana-و-prometheus","Monitorización de VPS con Grafana y Prometheus","Despliegue Prometheus 3.x, Grafana 13.x, Node Exporter y Alertmanager en su VPS con Docker Compose. Paneles, alertas y bastionado.","2026-03-06T00:00:00+00:00","2026-10-05T14:05:27+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[207],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fmonitoring-vps-grafana-prometheus-poster.svg",{"categorySlug":34,"appSlug":35},{"id":211,"slug":212,"slugs":213,"title":217,"excerpt":218,"readTime":17,"views":186,"isPinned":19,"publishedAt":219,"updatedAt":220,"category":221,"categories":222,"featuredImage":30,"bgImage":31,"posterImage":224,"relatedSolution":225},220,"grafana-tempo-opentelemetry-trazado-distribuido-vps",{"fr":214,"en":215,"ar":216,"es":212},"opentelemetry-grafana-tempo-vps","grafana-tempo-and-opentelemetry-distributed-tracing-on-vps","grafana-tempo-وopentelemetry-التتبع-الموزع-على-خادم-vps","Grafana Tempo y OpenTelemetry: trazado distribuido en VPS","Despliega OpenTelemetry + Grafana Tempo en tu VPS: arquitectura completa, configuración paso a paso, instrumentación Node.js\u002FPython, retención S3 y consultas TraceQL.","2026-08-04T00:00:00+00:00","2026-09-29T14:40:44+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[223],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fopentelemetry-grafana-tempo-vps-poster.svg",{"categorySlug":34,"appSlug":35},1792776302767]