Skip to content

Check-list du premier démarrage ​

Juste après que install.sh finit et que vous vous êtes connecté en admin bootstrap, parcourez cette liste. Rien n'est requis pour « commencer à voir des choses » — le Quickstart fonctionne sans tout cela — mais chaque item ferme un trou avant que vous ne passiez le système à une équipe.

1. Mettre ONGRID_PUBLIC_URL correctement ​

Probablement l'item le plus important. Cette URL est ce que vos edges utilisent pour le plan de données — les logs poussent vers <url>/loki/api/v1/push, les traces vers <url>/v1/traces.

Vérifiez ce qu'install.sh a rempli :

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

Si vous avez accepté une adresse interne mais que vos edges vivent sur l'internet public, les logs et traces échoueront silencieusement — le tunnel marche encore (il a son propre port), donc l'edge paraît sain.

Pour corriger :

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

Vous n'avez pas besoin de redéployer les edges ; l'agent relit l'endpoint du plan de données depuis le manager périodiquement.

Voir ONGRID_PUBLIC_URL.

2. Configurer un provider LLM par défaut ​

Out of the box, aucun provider n'est configuré. L'agent refusera de penser.

  1. Settings → Models. Choisissez l'un de :
    • OpenAI (gpt-5.4 par défaut)
    • Anthropic (claude-opus-4-7 par défaut)
    • Zhipu (glm-4.7 par défaut)
    • DeepSeek (deepseek-v4-flash par défaut)
    • Gemini (gemini-2.5-pro par défaut)
    • Kimi (kimi-k2.6 par défaut)
    • Custom compatible OpenAI (vLLM, Ollama, OpenRouter, relais corporate…)
  2. Collez la clé API. Optionnel : surchargez le modèle par défaut dans « Advanced ».
  3. Save. La pré-enregistrement est à chaud — pas de redémarrage.
  4. Sur la même page, mettez Default provider à celui que vous venez de câbler.

Ne mélangez pas default_provider et modèles par route

Le « default » pilote les appels LLM back-end (investigation d'alerte, translate, summarize). Le picker de modèle dans l'en-tête du chat est une surcharge par thread — utile pour « essayer Opus sur cette question » mais le défaut du site est ce qui tourne pour les cron jobs et incidents.

Voir les entrées Routing & default et Budget & limits sous Modèles dans la sidebar.

3. Configurer un canal de notification ​

Même si vous n'avez pas encore de règles d'alerte, câblez un canal pour que les futurs incidents aient un endroit où atterrir.

La paire de démarrage recommandée :

  • Canal Webhook vers un collecteur de webhook entrant générique (vous pouvez toujours le retirer plus tard) — prouve que le chemin de notification marche.
  • Un canal IM — Telegram est le plus facile parce que vous n'avez besoin que d'un token de bot et d'un chat ID ; Slack/Lark/DingTalk/WeCom prennent plus de setup.

Voir aperçu des canaux.

4. Régler le fuseau horaire du manager ​

Les timestamps dans les timelines d'incident et les événements d'alerte suivent le fuseau horaire du manager. Le défaut est UTC à l'intérieur du conteneur ; pour une UI qui matche votre équipe :

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

Pour la locale de sortie IA (le LLM répond-il en English ou en chinois), réglez ONGRID_DEFAULT_LOCALE. Défaut en ; les valeurs valides matchent vos traductions UI (en, zh-CN, ja, …). Les canaux peuvent surcharger par canal ; les requêtes UI manuelles suivent Accept-Language.

5. Décider de la rétention Prometheus ​

Le compose retombe sur 90 jours / plafond 20 Go. Pour changer :

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

Pour la rétention Loki, éditez /opt/ongrid/loki-config.yaml et redémarrez le conteneur loki. Pour Tempo, éditez /opt/ongrid/tempo-config.yaml.

6. Décider de garder les Loki / Tempo intégrés ​

Si vous exécutez déjà des backends de logs/traces managés (Grafana Cloud, Honeycomb, Splunk, votre propre VictoriaLogs / VictoriaTraces…), vous pouvez :

  • Garder les embarqués comme sink de données que l'agent interroge à travers (chemin le moins cher, pas d'infra en plus).
  • Les remplacer en pointant l'agent vers l'URL managée via ONGRID_LOG_QUERY_URL / ONGRID_TRACE_QUERY_URL, et en reconfigurant le promtail / otelcol de chaque edge pour pousser là directement.

Pour un setup hybride (les edges poussent vers les deux), déposez un promtail.yaml / otelcol.yaml personnalisé dans /etc/ongrid-edge/ sur chaque edge et l'agent le récupérera.

Voir capacité logs et capacité traces.

7. Remplacer le cert TLS auto-signé ​

Pour un essai c'est OK. Pour la prod, le cert est dans /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 et upgrade.sh n'écrasent jamais les certs opérateur.

8. Sauvegarder /var/lib/ongrid et /opt/ongrid/.env ​

Tout ce qui est à état vit sous ces deux chemins :

  • /opt/ongrid/.env — secrets (JWT, MySQL, mot de passe admin, clés d'embed).
  • /var/lib/ongrid/mysql/ — tout l'état opérationnel. Tout ce que vous ne pouvez pas perdre vit ici : edges, règles d'alerte, incidents, configs de canaux, log d'audit, skills personnalisés, métadonnées de connaissances.
  • /var/lib/ongrid/qdrant/ — embeddings vectoriels (reconstructibles depuis les docs sources, mais cher).
  • /var/lib/ongrid/prometheus/, loki/, tempo/ — télémétrie ; sauvegardez seulement si vous avez besoin d'une longue rétention.

Un simple cron + rsync (ou restic) de ces deux racines vous donne la reprise après sinistre. Restaurer = arrêter la stack, remplacer les dirs, démarrer la stack.

9. Mettre en place un vrai compte admin ​

L'email de l'admin bootstrap est ce que vous (ou install.sh) avez mis dans ONGRID_ADMIN_EMAIL. Pour une vraie équipe :

  1. Settings → Identity → Users → Invite user pour chaque opérateur réel.
  2. Assignez à chacun un rôle : admin, user, ou viewer (RBAC ADR-022).
    • admin — contrôle complet.
    • user — peut chatter avec l'agent, voir les incidents, muter les alertes. Sac d'outils filtré à ClassSafe.
    • viewer — chat lecture seule (pas de skills write), incidents lecture seule.
  3. Rétrogradez l'admin bootstrap si vous voulez, ou arrêtez juste de l'utiliser.

10. Déclencher le premier incident (test de fumée) ​

Forcez une des règles intégrées à partir. Le plus simple : arrêtez l'un de vos edges.

bash
sudo systemctl stop ongrid-edge

En ONGRID_ALERT_EDGE_OFFLINE_THRESHOLD (défaut 90s) plus l'intervalle d'evaluator (défaut 5m), la règle edge_offline part. L'UI :

  • Alerts — nouvel événement.
  • Incidents — nouveau regroupement d'incident regroupant cet événement.
  • Channels — votre canal câblé reçoit une carte.

Si vous avez monté un canal IM, répondez au bot avec « investigate this ». L'incident investigator tourne end-to-end et poste un rapport en retour.

Redémarrez l'edge :

bash
sudo systemctl start ongrid-edge

L'incident passe automatiquement à mitigated quand la règle arrête de partir ; vous le marquez resolved depuis l'UI.

Et après ​