Skip to content

Checklist de primer arranque ​

Justo después de que install.sh termina y has iniciado sesión como el admin bootstrap, recorre esta lista. Nada es requerido para "empezar a ver cosas" — el Quickstart funciona sin nada de esto — pero cada ítem cierra una brecha antes de que entregues el sistema a un equipo.

1. Establece ONGRID_PUBLIC_URL correctamente ​

Probablemente el ítem más importante. Esta URL es lo que tus edges usan para el data plane — los logs empujan a <url>/loki/api/v1/push, las trazas empujan a <url>/v1/traces.

Revisa qué rellenó install.sh:

bash
sudo grep '^ONGRID_PUBLIC_URL=' /opt/ongrid/.env

Si aceptaste una dirección interna pero tus edges viven en internet público, los logs y trazas fallarán silenciosamente — el túnel sigue funcionando (tiene su propio puerto), así que el edge se ve sano.

Para arreglarlo:

bash
# Edit
sudo sed -i 's|^ONGRID_PUBLIC_URL=.*|ONGRID_PUBLIC_URL=https://ops.example.com|' /opt/ongrid/.env

# Restart the affected services
sudo docker compose -f /opt/ongrid/docker-compose.yml --env-file /opt/ongrid/.env up -d ongrid nginx

No necesitas re-desplegar los edges; el agente re-lee el endpoint del data plane desde el manager periódicamente.

Ver ONGRID_PUBLIC_URL.

2. Configura un provider LLM default ​

De fábrica, no hay provider configurado. El agente se rehusará a pensar.

  1. Settings → Models. Elige uno de:
    • OpenAI (default gpt-5.4)
    • Anthropic (default claude-opus-4-7)
    • Zhipu (default glm-4.7)
    • DeepSeek (default deepseek-v4-flash)
    • Gemini (default gemini-2.5-pro)
    • Kimi (default kimi-k2.6)
    • Custom compatible con OpenAI (vLLM, Ollama, OpenRouter, relay corporativo…)
  2. Pega la API key. Opcional: sobreescribe el modelo default en "Advanced".
  3. Save. El pre-registro es en caliente — sin reinicio.
  4. En la misma página establece Default provider al que acabas de cablear.

No mezcles default_provider y modelos por-ruta

El "default" maneja las llamadas back-end al LLM (investigación de alertas, translate, summarize). El selector de modelo en el header del chat es un override por-hilo — útil para "prueba Opus en esta única pregunta" pero el default del sitio es lo que corre para cron jobs e incidentes.

Ver las entradas Routing & default y Budget & limits bajo Modelos en la barra lateral.

3. Configura un canal de notificación ​

Incluso si no tienes reglas de alerta todavía, cablea un canal para que los futuros incidentes tengan donde aterrizar.

El par starter recomendado:

  • Canal webhook a un collector de incoming-webhook genérico (puedes quitarlo después) — prueba que la ruta de notificación funciona.
  • Un canal IM — Telegram es el más fácil porque solo necesitas un bot token y un chat ID; Slack/Lark/DingTalk/WeCom toman más setup.

Ver overview de canales.

4. Establece el timezone del manager ​

Los timestamps en las timelines de incidente y eventos de alerta siguen el timezone del manager. Default es UTC dentro del contenedor; para una UI que matchee tu equipo:

bash
# Set TZ in compose env. Edit /opt/ongrid/docker-compose.yml or drop a
# /opt/ongrid/docker-compose.override.yml with:
services:
  ongrid:
    environment:
      TZ: Asia/Shanghai
bash
sudo docker compose -f /opt/ongrid/docker-compose.yml --env-file /opt/ongrid/.env up -d ongrid

Para el locale de salida de la IA (¿el LLM responde en inglés o chino?), setea ONGRID_DEFAULT_LOCALE. Default en; los valores válidos matchean tus traducciones de UI (en, zh-CN, ja, …). Los canales pueden sobreescribir por-canal; los requests manuales de UI siguen Accept-Language.

5. Decide la retención de Prometheus ​

El compose tiene default 90 días / tope 20 GB. Para cambiar:

bash
# /opt/ongrid/docker-compose.override.yml
services:
  prometheus:
    command:
      - --storage.tsdb.path=/prometheus
      - --storage.tsdb.retention.time=30d
      - --storage.tsdb.retention.size=10GB
      - --web.enable-remote-write-receiver
      - --web.enable-lifecycle
      - --web.external-url=/prometheus/
      - --web.route-prefix=/prometheus/
      - --config.file=/etc/prometheus/prometheus.yml
bash
sudo docker compose -f /opt/ongrid/docker-compose.yml --env-file /opt/ongrid/.env up -d prometheus

Para retención de Loki edita /opt/ongrid/loki-config.yaml y reinicia el contenedor loki. Para Tempo edita /opt/ongrid/tempo-config.yaml.

6. Decide si conservar Loki / Tempo integrados ​

Si ya corres backends managed de log/trace (Grafana Cloud, Honeycomb, Splunk, tus propios VictoriaLogs / VictoriaTraces…), puedes:

  • Conservar los embebidos como el sink de datos que el agente consulta (ruta más barata, sin infra extra).
  • Cambiarlos apuntando al agente a la URL managed vía ONGRID_LOG_QUERY_URL / ONGRID_TRACE_QUERY_URL, y reconfigurando el promtail / otelcol de cada edge para empujar ahí directamente.

Para un setup híbrido (los edges empujan a ambos), deja un promtail.yaml / otelcol.yaml custom en /etc/ongrid-edge/ en cada edge y el agente lo recogerá.

Ver capacidad de logs y capacidad de trazas.

7. Sustituye el cert TLS autofirmado ​

Para uso de trial está bien. Para prod el cert está en /opt/ongrid/certs/:

bash
sudo cp fullchain.pem /opt/ongrid/certs/tls.crt
sudo cp privkey.pem   /opt/ongrid/certs/tls.key
sudo chmod 600        /opt/ongrid/certs/tls.key
sudo chmod 644        /opt/ongrid/certs/tls.crt
sudo docker compose -f /opt/ongrid/docker-compose.yml restart nginx

install.sh y upgrade.sh nunca sobreescriben certs del operador.

8. Respalda /var/lib/ongrid y /opt/ongrid/.env ​

Todo lo stateful vive bajo esos dos paths:

  • /opt/ongrid/.env — secretos (JWT, MySQL, contraseña de admin, keys de embed).
  • /var/lib/ongrid/mysql/ — todo el estado operacional. Cualquier cosa que no puedas perder vive aquí: edges, reglas de alerta, incidentes, configs de canal, audit log, skills custom, metadata de conocimiento.
  • /var/lib/ongrid/qdrant/ — embeddings vectoriales (reconstruibles desde docs fuente, pero costoso).
  • /var/lib/ongrid/prometheus/, loki/, tempo/ — telemetría; respalda solo si necesitas retención larga.

Un cron + rsync (o restic) simple de esas dos raíces te da recuperación ante desastres. Restore = detener el stack, sustituir los dirs, arrancar el stack.

9. Configura una cuenta de admin real ​

El email del admin bootstrap es lo que tú (o install.sh) pusieron en ONGRID_ADMIN_EMAIL. Para un equipo real:

  1. Settings → Identity → Users → Invite user para cada operador real.
  2. Asigna a cada uno un rol: admin, user, o viewer (RBAC de ADR-022).
    • admin — control total.
    • user — puede chatear con el agente, ver incidentes, silenciar alertas. Toolbag filtrado a ClassSafe.
    • viewer — chat solo lectura (sin skills de escritura), incidentes solo lectura.
  3. Degrada al admin bootstrap si quieres, o simplemente deja de usarlo.

10. Dispara el primer incidente (smoke test) ​

Fuerza a una de las reglas integradas a disparar. La más simple: detén uno de tus edges.

bash
sudo systemctl stop ongrid-edge

Dentro de ONGRID_ALERT_EDGE_OFFLINE_THRESHOLD (default 90s) más el intervalo del evaluator (default 5m), la regla edge_offline dispara. La UI:

  • Alerts — nuevo evento.
  • Incidents — nuevo agrupamiento de incidente para ese evento.
  • Channels — tu canal cableado recibe una card.

Si configuraste un canal IM, responde al bot con "investigate this". El incident investigator corre end-to-end y postea de vuelta un informe.

Reinicia el edge:

bash
sudo systemctl start ongrid-edge

El incidente se auto-mueve a mitigated cuando la regla deja de disparar; lo marcas resolved desde la UI.

Qué sigue ​