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.