Aller au contenu

Installer le collecteur

sudo dnf install -y infrariver-collector

Voie rapide (recommandée) : depuis /admin/collector-tls/ (InfraRiver Collector — Config (mTLS)), le formulaire « Générer un bundle pour un collecteur » (CN + URL InfraRiver, pré-remplie) télécharge un .tar.gz contenant :

  • mtls/client.crt + mtls/client.key (certificat client mTLS) et mtls/ca.crt (l'autorité qui signe les certificats clients, gardée par le serveur) ;
  • mtls/server-ca.crt — le certificat présenté par la passerelle d'ingestion d'InfraRiver quand il est auto-signé (le cas par défaut). Le collecteur s'en sert pour vérifier qu'il parle bien à votre InfraRiver avant de lui envoyer ses jetons (ca_cert du fichier de configuration). Absent quand le serveur présente un certificat émis par une autorité : le magasin de confiance du système suffit alors ;
  • infrariver_collector.yml déjà rempli — URL, chemins mTLS et, si vous avez collé le token Bearer LinuxRiver dans le champ facultatif du formulaire (il n'est plus conservé en clair sur le serveur), ce token ; sinon la valeur REPLACE_WITH_LINUXRIVER_INGEST_TOKEN à remplacer. Module posture activé (certs/software désactivés par défaut, à activer à la main si besoin) ;
  • install.sh — dépose les fichiers ci-dessus aux bons emplacements (/etc/infrariver-collector/tls/, /etc/infrariver-collector/infrariver_collector.yml) avec les bons propriétaires/permissions (client.key en 0600, le reste en lecture groupe). Vérifie d'abord que le compte système infrariver_collector existe (donc que le paquet est déjà installé) — refuse proprement sinon, sans rien écrire. Ne touche à rien d'autre : ni dnf install, ni démarrage du service, ni clés SSH/sudoers des cibles (ça reste provision-target.sh, Préparer une cible Linux (SSH)).

Le téléchargement se fait depuis le navigateur de l'admin (poste de travail), pas depuis le collecteur lui-même (serveur headless, sans navigateur) — il faut donc transférer le fichier avant de l'installer :

scp <cn>-collector-bundle.tar.gz root@<collecteur>:/tmp/
ssh root@<collecteur>
tar xzf /tmp/<cn>-collector-bundle.tar.gz -C /tmp/bundle && cd /tmp/bundle
sudo ./install.sh

Le collecteur refuse de démarrer si son fichier de configuration est modifiable par tout le monde, et signale dans son journal un fichier lisible par tout le monde (il contient les jetons) : chmod 0640, propriétaire root, groupe infrariver_collector, ce que fait install.sh.

Il n'y a rien à renseigner dans le fichier : les serveurs à interroger ne sont pas dedans.

Une fois le service démarré, ouvrez la page du collecteur dans InfraRiver (InfraRiver Collector → le collecteur) et cochez les serveurs à collecter, ou créez une règle automatique — voir Choisir les serveurs à collecter.

Le collecteur relit sa liste à chaque cycle : ajouter ou retirer un serveur ne demande jamais de toucher au collecteur.

Le compte SSH et le port (uniques pour toutes les cibles) se choisissent au moment de générer le bundle ; ils sont écrits dans le fichier (ssh.username, ssh.port).

Voie manuelle (si le bundle n'est pas utilisable — ex. génération hors ligne) : le paquet installe aussi un fichier d'exemple en lecture seule, jamais un fichier de config prêt à l'emploi :

sudo cp /usr/share/doc/infrariver-collector/infrariver_collector.yml.example \
        /etc/infrariver-collector/infrariver_collector.yml
sudo chmod 600 /etc/infrariver-collector/infrariver_collector.yml
sudo vim /etc/infrariver-collector/infrariver_collector.yml

/etc/infrariver-collector/infrariver_collector.yml est le seul chemin que le service systemd lit réellement (ExecStart=... --config /etc/infrariver-collector/infrariver_collector.yml, voir l'unit) — un fichier laissé ailleurs (ex. dans $HOME ou le répertoire de doc lui-même) est silencieusement ignoré.

Renseigner ensuite dans ce fichier :

  • l'URL du portail InfraRiver (infrariver.url) ;
  • le token Bearer de chaque module activé (modules.posture.token, modules.certs.token, modules.software.token — un seul token partagé par plugin, généré/copié depuis /admin/collector-tls/, InfraRiver Collector — Config (mTLS)) — toujours requis, y compris si le mTLS ci-dessous est configuré : sans lui, l'endpoint d'ingestion répond 503 quel que soit l'état du certificat. Ce n'est pas un reliquat d'une ancienne méthode d'authentification remplacée par le mTLS — c'est le mécanisme principal, obligatoire dans tous les cas ;
  • le certificat client mTLS émis depuis /admin/collector-tls/ (InfraRiver Collector — Config (mTLS)) — optionnel, couche de sécurité additionnelle par-dessus le token Bearer (les deux sont vérifiés ensemble quand le certificat est renseigné, jamais l'un à la place de l'autre). Laisser les 3 champs mtls: vides pour rester en authentification Bearer seule ;
  • la liste des cibles : avec un bundle, rien à écrire — targets_source: server et la liste de chaque transport (SSH, NRPE, Zabbix, SNMP) se règlent sur la page du collecteur dans InfraRiver (Choisir les serveurs à collecter). Seul un collecteur configuré à la main en targets_source: file garde ses listes dans le fichier : targets: pour le SSH, et sous chaque bloc nrpe:/zabbix:/snmp: pour les autres transports.
sudo systemctl enable --now infrariver-collector