# 🎫 Boletos.la — Reporte Ejecutivo de Monitoreo & Trazabilidad
> **Fecha de Auditoria**: `2026-09-07 20:00:40` | **Tiempo de Ejecucion**: `16.94s` | **Estado General**: `🟢 100% OPERATIVO`

## 1. 📊 Metricas de la Flota (9 Microservicios)
* **Total Servidores**: `9`
* **Servicios Operativos [UP]**: `🟢 9`
* **Servicios con Incidencia [ERROR]**: `0`
* **Latencia Promedio SSH/API**: `1074ms`

## 2. 🩺 Estado de Microservicios & Endpoints
| # | Estado | Servicio / Repo | IP Publica | Latencia | Runtime & Memoria | HTTP Status |
| :- | :--- | :--- | :--- | :--- | :--- | :--- |
| 1 | 🟢 UP | **gds** (`boletos-la-backend-gds`) | `34.236.254.39` | `838ms` | PM2 (125.0MB) | `200` |
| 2 | 🟢 UP | **bancard** (`boletos-la-backend-bancard`) | `3.239.196.199` | `1098ms` | PM2 (100.3MB) | `running` |
| 3 | 🟢 UP | **pdf** (`boletos-la-backend-pdf-tickets`) | `32.197.199.197` | `2467ms` | PM2 (109.4MB) | `success` |
| 4 | 🟢 UP | **convenios** (`backend-convenios-py`) | `44.193.77.208` | `1016ms` | PM2 (77.0MB) | `OK` |
| 5 | 🟢 UP | **n8n** (`boletos-la-remarketing-service`) | `44.201.44.213` | `937ms` | running | `ok` |
| 6 | 🟢 UP | **vpn** (`boletos-la-infra-vpn`) | `3.238.141.180` | `985ms` | running | `Up 2 weeks (healthy)` |
| 7 | 🟢 UP | **publicidad** (`boletos-la-backend-publicidad`) | `44.245.217.130` | `1118ms` | PM2 (112.9MB) | `200` |
| 8 | 🟢 UP | **analitica** (`boletos-la-analitica`) | `16.59.46.45` | `581ms` | PM2 (74.6MB) | `200` |
| 9 | 🟢 UP | **itinerarios** (`backend-itinerarios`) | `18.222.89.111` | `625ms` | PM2 (122.7MB) | `200` |

## 3. 🗄️ Trazabilidad de Bases de Datos (Live)
### 🔹 backend-boletos-la (Motor GDS Delta Bus Core)
```text
Colecciones y estadisticas de MongoDB 'backend-boletos-la':
  - Servicios: 0 | Ciudades: 0 | Rutas: 0 | Usuarios: 1
  - Colecciones activas: users, buslayouts, buses, services, cities, seats, routemasters
  (Servicios se sincronizan on-demand via SOAP Delta Bus)
```

### 🔹 server-bancard-wit (Orquestador Bancard vPOS 2.0 & QR)
```text
Ultimas 5 transacciones en RDS MySQL 'bancard' (tabla vpos_audit):
ID     FECHA                ACCION         SHOP_PROCESS_ID    MONTO      ESTADO   AUTH#    CDC SIFEN
-------------------------------------------------------------------------------------------------------------------
1941   2026-09-07 19:49:20  confirmation   169282632344381    N/A        error    —        —
1940   2026-09-07 19:49:18  confirmation   169282632344381    N/A        error    —        —
1939   2026-09-07 19:49:15  confirmation   169282632344381    N/A        error    —        —
1938   2026-09-07 19:49:13  confirmation   169282632344381    N/A        error    —        —
1937   2026-09-07 19:49:11  confirmation   169282632344381    N/A        error    —        —
```

### 🔹 BoletosConveniosServer (Convenios B2B Boletos Paraguay)
```text
Convenios activos y codigos de descuento en MySQL 'convenios' (Total: 7):
ID   ESTADO     CODIGO         DESCUENTO    ALCANCE    EMPRESA                NOMBRE CONVENIO
---------------------------------------------------------------------------------------------------------
1    ACTIVO     BOLETOS        5.00%        Global     Boletos.la/paraguay    5% OFF - Boletos
3    INACTIVO   WIT1995        95.00%       Global     Boletos.la/paraguay    95% OFF - Boletos
4    INACTIVO   —              20.00%       Global     Empresa Test           Convenio beneficiario test adulto mayor
5    INACTIVO   —              25.00%       Global     Empresa Test           Estudiante
6    INACTIVO   —              30.00%       Global     Empresa 2              Convenio 2
7    INACTIVO   TESTDEL123     5.00%        Global     Boletos.la/paraguay    CONVENIO_TEST_BORRADO_TEMPORAL
8    ACTIVO     BOLETOS70      70.00%       Global     Boletos.la/paraguay    70% OFF - Boletos
```

### 🔹 Boletos_N8N_WhatsApp (n8n WhatsApp & Evolution API)
```text
id | name | connectionStatus | createdAt 
----+------+------------------+-----------
(0 rows)
```

## 4. ⚠️ Registros de Error (Logs stderr)
#### 🔴 Error en `gds` (backend-boletos-la):
```text
at async /home/bitnami/backend-boletos-la/node_modules/express-rate-limit/dist/index.cjs:782:5 {
  code: 'ERR_ERL_UNEXPECTED_X_FORWARDED_FOR',
  help: 'https://express-rate-limit.github.io/ERR_ERL_UNEXPECTED_X_FORWARDED_FOR/'
}
SyntaxError: Unterminated string in JSON at position 100
    at JSON.parse (<anonymous>)
    at parse (/home/bitnami/backend-boletos-la/node_modules/body-parser/lib/types/json.js:77:19)
    at /home/bitnami/backend-boletos-la/node_modules/body-parser/lib/read.js:123:18
    at AsyncResource.runInAsyncScope (node:async_hooks:206:9)
    at invokeCallback (/home/bitnami/backend-boletos-la/node_modules/raw-body/index.js:238:16)
    at done (/home/bitnami/backend-boletos-la/node_modules/raw-body/index.js:227:7)
    at IncomingMessage.onEnd (/home/bitnami/backend-boletos-la/node_modules/raw-body/index.js:287:7)
    at IncomingMessage.emit (node:events:524:28)
    at endReadableNT (node:internal/streams/readable:1698:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
```

#### 🔴 Error en `pdf` (new-backend-pdf-2):
```text
==> /home/admin/.pm2/logs/app-error-0.log <==
    at Socket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5)
2026-09-05T23:06:02: Error con html-pdf-node: Error: Gotenberg devolvió código de error: 503
    at ClientRequest.<anonymous> (/home/admin/pdf-mail-backend/utils/pdfGenerator.js:50:13)
    at Object.onceWrapper (node:events:631:26)
    at ClientRequest.emit (node:events:509:28)
    at HTTPParser.parserOnIncomingClient (node:_http_client:798:27)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:125:17)
    at Socket.socketOnData (node:_http_client:633:22)
    at Socket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5)

==> /home/admin/.pm2/logs/app-error-1.log <==
    at Socket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5)
2026-09-05T23:06:02: Error con html-pdf-node: Error: Gotenberg devolvió código de error: 503
    at ClientRequest.<anonymous> (/home/admin/pdf-mail-backend/utils/pdfGenerator.js:50:13)
    at Object.onceWrapper (node:events:631:26)
    at ClientRequest.emit (node:events:509:28)
    at HTTPParser.parserOnIncomingClient (node:_http_client:798:27)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:125:17)
    at Socket.socketOnData (node:_http_client:633:22)
    at Socket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5)

==> /home/admin/.pm2/logs/app-error.log <==
    at emitErrorEvent (node:_http_client:109:11)
    at Socket.socketErrorListener (node:_http_client:593:5)
    at Socket.emit (node:events:509:28)
    at emitErrorNT (node:internal/streams/destroy:170:8)
    at emitErrorCloseNT (node:internal/streams/destroy:129:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
Error con html-pdf-node: Error: No se pudo conectar con Gotenberg en http://3.235.151.80:3001. ¿Está corriendo Docker? Detalles: connect ETIMEDOUT 3.235.151.80:3001
    at ClientRequest.<anonymous> (/home/admin/pdf-mail-backend/utils/pdfGenerator.js:64:9)
    at ClientRequest.emit (node:events:509:28)
    at emitErrorEvent (node:_http_client:109:11)
    at Socket.socketErrorListener (node:_http_client:593:5)
    at Socket.emit (node:events:509:28)
    at emitErrorNT (node:internal/streams/destroy:170:8)
    at emitErrorCloseNT (node:internal/streams/destroy:129:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
```

#### 🔴 Error en `convenios` (BoletosConveniosServer):
```text
at Object.<anonymous> (/home/ubuntu/app/src/server.js:2:1)
    at Module._compile (node:internal/modules/cjs/loader:1521:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1623:10)
    at Module.load (node:internal/modules/cjs/loader:1266:32)
    at Module._load (node:internal/modules/cjs/loader:1091:12)
    at Object.<anonymous> (/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js:32:23) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/home/ubuntu/app/src/server.js' ]
}
[Beneficiario Service] Error al crear en BD: Validation error: El RUT debe tener el formato xxxxxxxx-x (números y guion)
[Beneficiario Controller] Crear - Error: Validation error: El RUT debe tener el formato xxxxxxxx-x (números y guion)
[Beneficiario Service] Error al crear en BD: Validation error: El RUT debe tener el formato xxxxxxxx-x (números y guion)
[Beneficiario Controller] Crear - Error: Validation error: El RUT debe tener el formato xxxxxxxx-x (números y guion)
[Beneficiario Service] Error al crear en BD: Validation error: El RUT debe tener el formato xxxxxxxx-x (números y guion)
[Beneficiario Controller] Crear - Error: Validation error: El RUT debe tener el formato xxxxxxxx-x (números y guion)
```

#### 🔴 Error en `publicidad` (backend-boletos-publicidad):
```text
[ALERTA CRÍTICA Sockets] Tótem 1006 - Impresora desconectada
[ALERTA CRÍTICA Sockets] Tótem 1006 - Impresora desconectada
[ALERTA CRÍTICA Sockets] Tótem 1006 - Impresora desconectada
[ALERTA CRÍTICA Sockets] Tótem 1006 - Impresora desconectada
[ALERTA CRÍTICA Sockets] Tótem 1006 - Servicios locales caídos
[ALERTA CRÍTICA Sockets] Tótem 1006 - Impresora desconectada
[ALERTA CRÍTICA Sockets] Tótem 1006 - Servicios locales caídos
[ALERTA CRÍTICA Sockets] Tótem 1006 - Impresora desconectada
[ALERTA CRÍTICA Sockets] Tótem 1006 - Servicios locales caídos
[ALERTA CRÍTICA Sockets] Tótem 1006 - Impresora desconectada
[ALERTA CRÍTICA Sockets] Tótem 1006 - Servicios locales caídos
[ALERTA CRÍTICA Sockets] Tótem 1006 - Impresora desconectada
[ALERTA CRÍTICA Sockets] Tótem 1006 - Servicios locales caídos
[ALERTA CRÍTICA Sockets] Tótem 1006 - Impresora desconectada
[ALERTA CRÍTICA Sockets] Tótem 1006 - Servicios locales caídos
```

#### 🔴 Error en `analitica` (boletos-la-analitica):
```text
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments: 
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 18-06-2008, _f: undefined, _strict: undefined, _locale: [object Object]
Error
    at Function.createFromInputFallback (/home/bitnami/backend-boletos-analitica/node_modules/moment/moment.js:324:25)
    at configFromString (/home/bitnami/backend-boletos-analitica/node_modules/moment/moment.js:2613:19)
    at configFromInput (/home/bitnami/backend-boletos-analitica/node_modules/moment/moment.js:3056:13)
    at prepareConfig (/home/bitnami/backend-boletos-analitica/node_modules/moment/moment.js:3039:13)
    at createFromConfig (/home/bitnami/backend-boletos-analitica/node_modules/moment/moment.js:3006:44)
    at createLocalOrUTC (/home/bitnami/backend-boletos-analitica/node_modules/moment/moment.js:3100:16)
    at createLocal (/home/bitnami/backend-boletos-analitica/node_modules/moment/moment.js:3104:16)
    at hooks (/home/bitnami/backend-boletos-analitica/node_modules/moment/moment.js:16:29)
    at model._sanitize (/home/bitnami/backend-boletos-analitica/node_modules/sequelize/lib/data-types.js:356:14)
    at model.set (/home/bitnami/backend-boletos-analitica/node_modules/sequelize/lib/model.js:2286:59)
```

## 5. 📜 Actividad Reciente (Logs stdout)
<details><summary><b>Logs stdout: gds (backend-boletos-la)</b></summary>

```text
[GDS:BLOCK] status: success
[GDS:BLOCK] serviceId: 259992, seats: 1, channel: totem
[GDS:BLOCK] status: success
[GDS:CREATE_PASSENGER] name: IVAN ANDRES VALENZUELA RUBIO, doc: 17211508
[GDS:CREATE_PASSENGER] status: success
[GDS:BLOCK] serviceId: 259481, seats: 3, channel: web
[GDS:BLOCK] status: success
[GDS:CREATE_PASSENGER] name: IVAN ANDRES VALENZUELA RUBIO, doc: 17211508
[GDS:CREATE_PASSENGER] status: success
[GDS:BLOCK] serviceId: 259481, seats: 3, channel: web
[GDS:BLOCK] status: success
[GDS:UNBLOCK] connectionId: 3195181
[GDS:UNBLOCK] status: success
[GDS:UNBLOCK] connectionId: 3417423
[GDS:UNBLOCK] status: success
```
</details>

<details><summary><b>Logs stdout: bancard (server-bancard-wit)</b></summary>

```text
GET / 200 0.394 ms - 161
[2026-09-07T19:56:40.742Z] GET / 200 1ms — IP: ::1
GET / 200 0.386 ms - 161
[2026-09-07T20:00:41.992Z] GET / 200 1ms — IP: ::ffff:127.0.0.1
```
</details>

<details><summary><b>Logs stdout: pdf (new-backend-pdf-2)</b></summary>

```text
==> /home/admin/.pm2/logs/app-out-0.log <==
2026-08-27T15:23:22: [dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  write to custom object with { processEnv: myObject }
2026-08-27T15:23:23: [dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  write to custom object with { processEnv: myObject }
2026-08-27T15:23:24: Servidor en puerto 3000
2026-08-27T11:29:15: [dotenv@17.2.4] injecting env (7) from .env -- tip: 🛠️  run anywhere with `dotenvx run -- yourcommand`
2026-08-27T11:29:18: [dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  specify custom .env file path with { path: '/custom/path/.env' }
2026-08-27T11:29:18: [dotenv@17.2.4] injecting env (0) from .env -- tip: 🔄 add secrets lifecycle management: https://dotenvx.com/ops
2026-08-27T11:29:19: Servidor en puerto 3000
2026-09-03T19:07:43: [dotenv@17.2.4] injecting env (7) from .env -- tip: ⚙️  write to custom object with { processEnv: myObject }
2026-09-03T19:07:48: [dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  enable debug logging with { debug: true }
2026-09-03T19:07:49: [dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  write to custom object with { processEnv: myObject }
2026-09-03T19:07:50: Servidor en puerto 3000
2026-09-03T20:48:37: [dotenv@17.2.4] injecting env (7) from .env -- tip: ⚙️  override existing env vars with { override: true }
2026-09-03T20:48:40: [dotenv@17.2.4] injecting env (0) from .env -- tip: 🔑 add access controls to secrets: https://dotenvx.com/ops
2026-09-03T20:48:41: [dotenv@17.2.4] injecting env (0) from .env -- tip: 🔄 add secrets lifecycle management: https://dotenvx.com/ops
2026-09-03T20:48:41: Servidor en puerto 3000

==> /home/admin/.pm2/logs/app-out-1.log <==
2026-08-27T15:23:22: [dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  enable debug logging with { debug: true }
2026-08-27T15:23:23: [dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  override existing env vars with { override: true }
2026-08-27T15:23:23: Servidor en puerto 3000
2026-08-27T11:29:16: [dotenv@17.2.4] injecting env (7) from .env -- tip: ⚙️  specify custom .env file path with { path: '/custom/path/.env' }
2026-08-27T11:29:19: [dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  enable debug logging with { debug: true }
2026-08-27T11:29:19: [dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  enable debug logging with { debug: true }
2026-08-27T11:29:20: Servidor en puerto 3000
2026-09-03T19:07:47: [dotenv@17.2.4] injecting env (7) from .env -- tip: 🗂️ backup and recover secrets: https://dotenvx.com/ops
2026-09-03T19:07:49: [dotenv@17.2.4] injecting env (0) from .env -- tip: 📡 add observability to secrets: https://dotenvx.com/ops
2026-09-03T19:07:49: [dotenv@17.2.4] injecting env (0) from .env -- tip: 🔐 prevent building .env in docker: https://dotenvx.com/prebuild
2026-09-03T19:07:50: Servidor en puerto 3000
2026-09-03T20:48:38: [dotenv@17.2.4] injecting env (7) from .env -- tip: 📡 add observability to secrets: https://dotenvx.com/ops
2026-09-03T20:48:42: [dotenv@17.2.4] injecting env (0) from .env -- tip: 👥 sync secrets across teammates & machines: https://dotenvx.com/ops
2026-09-03T20:48:42: [dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  specify custom .env file path with { path: '/custom/path/.env' }
2026-09-03T20:48:42: Servidor en puerto 3000

==> /home/admin/.pm2/logs/app-out.log <==
[pdfGenerator] Lanzando Chromium...
[pdfGenerator] Forzando uso de Chromium del sistema: /usr/bin/chromium
[pdfGenerator] Lanzando Chromium...
[pdfGenerator] Forzando uso de Chromium del sistema: /usr/bin/chromium
[pdfGenerator] Lanzando Chromium...
[pdfGenerator] Forzando uso de Chromium del sistema: /usr/bin/chromium
[pdfGenerator] Lanzando Chromium...
[dotenv@17.2.4] injecting env (8) from .env -- tip: 🔄 add secrets lifecycle management: https://dotenvx.com/ops
[dotenv@17.2.4] injecting env (0) from .env -- tip: 🔄 add secrets lifecycle management: https://dotenvx.com/ops
[dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  suppress all logs with { quiet: true }
Servidor en puerto 3000
[dotenv@17.2.4] injecting env (8) from .env -- tip: 📡 add observability to secrets: https://dotenvx.com/ops
[dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  override existing env vars with { override: true }
[dotenv@17.2.4] injecting env (0) from .env -- tip: ⚙️  write to custom object with { processEnv: myObject }
Servidor en puerto 3000
```
</details>

<details><summary><b>Logs stdout: convenios (BoletosConveniosServer)</b></summary>

```text
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
{"level":"info","message":"⏰ Ejecutando limpieza de convenios vencidos..."}
```
</details>

<details><summary><b>Logs stdout: n8n (Boletos_N8N_WhatsApp)</b></summary>

```text
Servidor HTTP y WebSocket corriendo en el puerto 3000
[TotemMonitor] Se detectaron 1 tótems inactivos. Marcando como offline...
[TotemMonitor] Tótem LocalHost (ID: 100) marcado como offline.
[TotemMonitor] Se detectaron 1 tótems inactivos. Marcando como offline...
[TotemMonitor] Tótem LocalHost (ID: 100) marcado como offline.
[TotemMonitor] Se detectaron 1 tótems inactivos. Marcando como offline...
[TotemMonitor] Tótem LocalHost (ID: 100) marcado como offline.
[TotemMonitor] Se detectaron 1 tótems inactivos. Marcando como offline...
[TotemMonitor] Tótem LocalHost (ID: 100) marcado como offline.
[TotemMonitor] Se detectaron 1 tótems inactivos. Marcando como offline...
[TotemMonitor] Tótem LocalHost (ID: 100) marcado como offline.
[TotemMonitor] Se detectaron 1 tótems inactivos. Marcando como offline...
[TotemMonitor] Tótem LocalHost (ID: 100) marcado como offline.
[TotemMonitor] Se detectaron 1 tótems inactivos. Marcando como offline...
[TotemMonitor] Tótem LocalHost (ID: 100) marcado como offline.
```
</details>

<details><summary><b>Logs stdout: vpn (docker-vpn)</b></summary>

```text
2026-08-21T18:57:50.059Z WireGuard Config saved.
2026-08-21T18:57:50.059Z WireGuard Config syncing...
$ wg syncconf wg0 <(wg-quick strip wg0)
2026-08-21T18:57:50.095Z WireGuard Config synced.
2026-08-21T18:59:43.399Z WireGuard Config saving...
$ wg syncconf wg0 <(wg-quick strip wg0)
2026-08-21T18:59:43.400Z WireGuard Config saved.
2026-08-21T18:59:43.400Z WireGuard Config syncing...
2026-08-21T18:59:43.434Z WireGuard Config synced.
2026-09-03T14:22:30.244Z Server New Session: obN_cS8-lEPSY87H_i8A97ao5VAvpJJe
2026-09-03T14:22:42.005Z WireGuard Config saving...
2026-09-03T14:22:42.008Z WireGuard Config saved.
2026-09-03T14:22:42.008Z WireGuard Config syncing...
$ wg syncconf wg0 <(wg-quick strip wg0)
2026-09-03T14:22:42.050Z WireGuard Config synced.
```
</details>

<details><summary><b>Logs stdout: publicidad (backend-boletos-publicidad)</b></summary>

```text
'cdn-loop': 'cloudflare; loops=1',
  'cf-connecting-ip': '181.42.164.150',
  'cf-ipcountry': 'CL',
  'cf-visitor': '{"scheme":"https"}',
  'x-forwarded-proto': 'https',
  'accept-encoding': 'gzip, br',
  'x-forwarded-host': 'backend-boletos-publicidad.dev-wit.com',
  'x-forwarded-server': 'backend-boletos-publicidad.dev-wit.com',
  connection: 'Upgrade',
  upgrade: 'websocket'
}
GET / 200 0.238 ms - 85
GET / 200 0.236 ms - 85
GET / 200 0.226 ms - 85
GET / 200 0.233 ms - 85
```
</details>

<details><summary><b>Logs stdout: analitica (boletos-la-analitica)</b></summary>

```text
◇ injected env (8) from .env // tip: ⌘ multiple files { path: ['.env.local', '.env'] }
Tablas sincronizadas y conectado a MySQL
Servidor en http://localhost:3000
◇ injected env (8) from .env // tip: ◈ secrets for agents [www.dotenvx.com]
Tablas sincronizadas y conectado a MySQL
Servidor en http://localhost:3000
◇ injected env (8) from .env // tip: ⌘ multiple files { path: ['.env.local', '.env'] }
Tablas sincronizadas y conectado a MySQL
Servidor en http://localhost:3000
◇ injected env (8) from .env // tip: ⌘ multiple files { path: ['.env.local', '.env'] }
Tablas sincronizadas y conectado a MySQL
Servidor en http://localhost:3000
◇ injected env (8) from .env // tip: ◈ encrypted .env [www.dotenvx.com]
Tablas sincronizadas y conectado a MySQL
Servidor en http://localhost:3000
```
</details>

<details><summary><b>Logs stdout: itinerarios (backend-itinerarios)</b></summary>

```text
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '2070' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '1646' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '2058' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '2013' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '1646' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '2058' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '1652' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '2070' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '1646' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '2058' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '1646' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '2058' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '1652' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '2013' ORDER BY `Image`.`id` DESC LIMIT 3;
Executing (default): SELECT `id`, `url`, `cityId`, `title`, `comments`, `createdAt`, `updatedAt` FROM `Images` AS `Image` WHERE `Image`.`cityId` = '2070' ORDER BY `Image`.`id` DESC LIMIT 3;
```
</details>

## 6. 💻 Diagnostico de Recursos de Hardware
| Servicio | IP | Memoria RAM | Espacio en Disco | Carga CPU (Load) |
| :--- | :--- | :--- | :--- | :--- |
| **gds** | `34.236.254.39` | 874/3867MB (22.6%) | 3.5G/79G (5%) | `0.00, 0.00, 0.00` |
| **bancard** | `3.239.196.199` | 696/1941MB (35.9%) | 3.3G/59G (6%) | `0.17, 0.08, 0.03` |
| **pdf** | `32.197.199.197` | 1058/1941MB (54.5%) | 24G/59G (42%) | `2.45, 2.33, 2.42` |
| **convenios** | `44.193.77.208` | 499/911MB (54.8%) | 3.2G/38G (9%) | `0.40, 0.08, 0.03` |
| **n8n** | `44.201.44.213` | 1195/1907MB (62.7%) | 11G/58G (19%) | `0.15, 0.04, 0.01` |
| **vpn** | `3.238.141.180` | 581/911MB (63.8%) | 3.5G/38G (10%) | `0.00, 0.00, 0.00` |
| **publicidad** | `44.245.217.130` | 426/945MB (45.1%) | 5.9G/40G (16%) | `0.00, 0.00, 0.00` |
| **analitica** | `16.59.46.45` | 712/1941MB (36.7%) | 4.0G/59G (7%) | `0.02, 0.03, 0.00` |
| **itinerarios** | `18.222.89.111` | 563/1941MB (29.0%) | 2.8G/59G (5%) | `0.00, 0.00, 0.00` |

---
*Generado automaticamente por `boletos-la-monitoreo` — Todos los derechos reservados © 2026 Boletos.la*