Documents the optional [byte_counters] section, counter reset semantics, subtree-inclusive node totals, and the GET /byte_counters endpoint in English and Spanish.
7.1 KiB
API del Nodo de LibreQoS
Requisitos
A partir de LibreQoS 2.2, el servicio lqos_api usa la misma política de circuitos mapeados que LibreQoS:
- Las redes con 1.000 circuitos mapeados válidos o menos pueden usar la API sin una suscripción a Insight.
- Las redes con más de 1.000 circuitos mapeados válidos requieren un derecho válido de API o Insight.
- El conteo usa circuitos configurados únicos con mapeos válidos, no tráfico reciente. Varios dispositivos del mismo circuito cuentan una sola vez y las filas sin mapeo IP no cuentan.
- Una licencia activa o un grant firmado almacenado localmente puede autorizar el acceso a la API por encima del límite gratuito.
Es la misma población usada por el límite base de shaping:
ShapedDevices.csvpuede contener entradas ilimitadas.- Sin una licencia o grant con derecho válido, LibreQoS admite solo los primeros 1.000 circuitos mapeados válidos al estado de shaping activo.
- Los conteos superiores requieren una licencia con derecho de API o Insight.
El acceso solo a la API está disponible mediante el enlace Try Insight de la WebUI a la mitad del precio de Insight completo.
Fuente de verdad y pruebas
Use Swagger en su nodo como referencia completa y superficie de prueba para la versión instalada:
- Puerto local directo de la API:
http://<node-ip>:9122/api-docs - Si la WebUI usa HTTPS opcional con Caddy:
https://<hostname-o-ip-del-nodo>/api-docs/
En sistemas que usan HTTPS con Caddy gestionado, deje el listener de la API en loopback y acceda a la API mediante /api/v1/. LQOS_API_LISTEN es un override avanzado para despliegues que exponen intencionalmente el listener de la API en forma directa; no lo configure en sistemas con Caddy gestionado salvo que la exposición directa, el firewall, TLS y los controles de acceso de operadores se hayan planificado juntos.
Use esta página como mapa de capacidades. Use Swagger para inventario completo de endpoints, esquemas request/response y pruebas en vivo.
¿Necesita definiciones de persistencia e impacto en runtime? Vea el Glosario.
Instalar y habilitar
Si instaló vía .deb (recomendado), lqos_api ya está en:
/opt/libreqos/src/bin/lqos_api
Habilitar servicio:
sudo cp /opt/libreqos/src/bin/lqos_api.service.example /etc/systemd/system/lqos_api.service
sudo systemctl daemon-reload
sudo systemctl enable lqos_api
sudo systemctl start lqos_api
La plantilla incluida de lqos_api.service.example espera network-online.target, para que la API no arranque antes de que DNS y la ruta por defecto esten listas.
Actualizar solo el binario de la API:
cd /opt/libreqos/src
./update_api.sh
Verificar estado del servicio:
sudo systemctl status lqos_api
Autenticación
La mayoría de endpoints requieren:
- Header:
x-bearer - Valor: una clave local con nombre creada en License & Services, el token local heredado o su clave de licencia Insight/API-only
Las claves locales autentican al cliente, pero no evitan el límite de licenciamiento por circuitos mapeados. Un administrador puede crear hasta 16 claves con nombre en License & Services. LibreQoS muestra cada clave una sola vez, guarda únicamente su resumen SHA-256 y metadatos no secretos en /etc/lqos.conf, y no puede recuperarla después. Copie de inmediato el valor completo lqos_api_... al cliente y trátelo como una contraseña.
Las claves con nombre no caducan automáticamente. Revoque las que ya no necesite; la creación y la revocación pueden tardar hasta 30 segundos en surtir efecto en lqos_api. Las claves de licencia existentes y el antiguo local_api.bearer_token siguen siendo compatibles. La interfaz identifica este último como Legacy local API key y permite eliminarlo después de migrar los clientes.
Qué pueden hacer los ISPs con la API
1) Ciclo de vida de suscriptores/circuitos
Aprovisionar, actualizar y eliminar registros de suscriptor/dispositivo.
- Alta o reemplazo:
POST /overrides/persistent_devicesPOST /shaped_devices/update
- Ajustes de velocidad:
POST /overrides/adjustments/circuit_speedPOST /overrides/adjustments/device_speed
- Bajas:
DELETE /overrides/persistent_devices/by_circuit/{circuit_id}DELETE /overrides/persistent_devices/by_device/{device_id}POST /overrides/adjustments/remove_circuitPOST /overrides/adjustments/remove_device
2) Gestión de overrides y políticas
Mantener políticas persistentes para circuitos, dispositivos, sitios y overrides específicos de UISP.
GET/POST/DELETE /overrides/adjustments*GET/POST/DELETE /overrides/network_adjustments*GET/POST/DELETE /overrides/uisp/bandwidth*GET/POST/DELETE /overrides/uisp/routes*
3) Topología y archivos de entrada de shaping
Inspeccionar y actualizar archivos de topología/shaping usados por los flujos de runtime.
GET /network_json/jsonGET /network_json/textPOST /network_json/updatePOST /network_json/set_site_speedPOST /network_json/set_site_speed_batchGET /shaped_devicesPOST /shaped_devices/update
4) Monitoreo y diagnóstico
Leer estado de salud, scheduler, throughput, flujos, colas y circuitos.
Endpoints representativos:
GET /healthGET /status_snapshotGET /scheduler_statusGET /circuit/{circuit_id}GET /searchGET /current_throughputGET /queue_stats_totalGET /byte_countersGET /warningsGET /urgent,GET /urgent/status
GET /byte_counters devuelve contadores de bytes acumulados por nodo y por circuito cuando [byte_counters] enabled = true está configurado en /etc/lqos.conf. Los valores son acumulados desde que lqosd inició, incluyen el tráfico descendiente en los nodos y se reinician cuando lqosd se reinicia. Consulte Configuración avanzada.
5) Operaciones de control y reload
Disparar acciones de control operativo cuando sea necesario.
POST /reload_libreqosPOST /clear_hot_cache
Trátelas como operaciones de mayor riesgo en producción.
Modelo de persistencia (importante)
No todas las escrituras persisten del mismo modo:
overrides/*: estado de política persistente.network_json/set_site_speed*: ediciones transitorias.network_json/updateyshaped_devices/update: reemplazo directo de archivos, generalmente sobrescribible por integración.
Si hay integraciones habilitadas, sus ciclos de refresco pueden sobrescribir ediciones directas de archivos.
Flujo recomendado para producción
- Validar comportamiento del endpoint y esquema de payload en Swagger.
- Aplicar el cambio mínimo necesario.
- Verificar resultado con checks de solo lectura (
/health,/scheduler_status, vistas de circuito/throughput). - Mantener snapshots de rollback para operaciones que cambien config/datos.
Hardening de despliegue
- Limite acceso de API a redes de gestión confiables.
- No exponga la API directamente a Internet público.
- Si necesita acceso remoto, use reverse proxy con TLS y autenticación.
- Restrinja acceso entrante con allowlists de firewall.
Si quiere que la WebUI y la documentación de la API compartan el mismo origen HTTPS, vea HTTPS opcional con Caddy.