Aller au contenu

Architecture du serveur

Cette page décrit ce qui tourne sur le serveur InfraRiver et les architectures possibles. C'est la première étape du parcours Installation et configuration.

Page Pour répondre à
Dimensionnement Quelle VM (vCPU, RAM, disque) pour mon nombre d'hôtes ? Faut-il une base séparée ? Quelle machine pour l'IA ?
Flux réseau Quels ports ouvrir, dans quel sens ?
Base de données MariaDB Quels réglages pour MariaDB ? Base locale ou distante ?
Référence de server.conf Que veut dire chaque clé de /etc/infrariver/server.conf ?
Services et journaux Quels services, quels fichiers, où lire les journaux ?
Sauvegarde et restauration Que sauvegarder, et comment restaurer ?

Les composants

flowchart LR
  U["Navigateurs<br/>(utilisateurs)"] -->|HTTPS 443| W
  C["InfraRiver Collector<br/>(poller)"] -->|mTLS 8443| G
  subgraph S["Serveur InfraRiver"]
    W["infrariver.service<br/>portail web + API<br/>+ tâches planifiées"]
    G["infrariver-ingest.service<br/>passerelle d'ingestion mTLS"]
    DB[("MariaDB<br/>base infrariver")]
    AI["ollama.service<br/>IA locale (option)"]
    W --> DB
    G --> DB
    W -.->|127.0.0.1:11434| AI
  end
  W -->|lecture seule| X["Outils existants<br/>vCenter, AD, GLPI, Zabbix,<br/>Rapid7, AWS, Azure…"]
  W -->|HTTPS| V["Veille : NVD, CISA KEV,<br/>EPSS, endoflife.date"]
Composant Unité systemd Rôle
Portail et API infrariver.service Interface web, API, assistant IA, et toutes les tâches planifiées (synchronisation des connecteurs, veille CVE, calculs). Processus uvicorn unique, qui écoute sur LISTEN_ADDRESS:LISTEN_PORT.
Passerelle d'ingestion infrariver-ingest.service Reçoit les données d'InfraRiver Collector sur le port 8443, uniquement avec un certificat client valide (mTLS). Processus séparé du portail.
Base de données mariadb.service Toutes les données d'InfraRiver (inventaire, logiciels, vulnérabilités, comptes, historique). Locale par défaut, ou sur un serveur dédié (voir MariaDB).
IA locale (option) ollama.service, dans la tranche infrariver-ai.slice Modèle de langage installé sur le serveur (paquet infrariver-ai). Optionnel : InfraRiver peut aussi utiliser une IA externe compatible OpenAI, ou aucune IA.
InfraRiver Collector (option) infrariver-collector.service Poller qui lit la posture des serveurs (SSH, NRPE, agent Zabbix, SNMP) et l'envoie à la passerelle. Installé sur le serveur InfraRiver ou sur une machine dédiée par zone réseau (voir Dimensionnement).

Architectures types

Portail, passerelle et MariaDB sur une seule VM. C'est l'installation par défaut et la plus simple à exploiter. L'IA locale peut y être ajoutée, mais une machine dédiée reste préférable si elle doit répondre vite (voir IA locale).

Portail et passerelle sur une VM, MariaDB sur un serveur dédié (ou sur le cluster MariaDB déjà en place chez vous). La base est la ressource qui grossit avec le nombre d'hôtes : la séparer permet de lui donner de la mémoire et des disques rapides sans toucher au portail.

Un InfraRiver Collector par zone (DMZ, production, site distant). Chaque Collector ne parle qu'aux serveurs de sa zone et remonte vers la passerelle sur un seul port (8443, mTLS). Aucun accès direct du serveur InfraRiver aux serveurs de la zone n'est nécessaire.

Lecture seule par conception

Le serveur InfraRiver lit vos outils et vos serveurs. Les comptes qu'il utilise (connecteurs, Collector) n'ont besoin que de droits de lecture. Toute action d'écriture (exécution AutomationRiver) est désactivée par défaut et soumise à validation.