Installer sous Linux (manuel)
Sur cette page
Vous préférez l'installateur ?
L'installateur automatique réalise toutes les étapes ci-dessous en une commande, et gère pour vous les mises à jour, le retour arrière et le jeton. Les deux donnent exactement la même installation.
Vue d'ensemble#
Cette page installe l'agent comme service systemd, étape par étape : télécharger et vérifier le binaire, créer l'utilisateur onagent, stocker le jeton, créer le service. Il vous faut un accès root, systemd 235 ou plus récent, et le jeton de l'agent, copié lorsque vous avez créé l'agent dans Onagre.
1. Télécharger et vérifier l'agent#
Lisez la version courante, puis téléchargez exactement cette version et son empreinte :
VERSION="$(curl -fsSL https://d.onag.re/version)"
curl -fsSLo /tmp/onagent "https://d.onag.re/agent/$VERSION/agent-linux-x64"
echo "$(curl -fsSL "https://d.onag.re/agent/$VERSION/agent-linux-x64.sha256" | cut -d' ' -f1) /tmp/onagent" | sha256sum -c -VERSION="$(curl -fsSL https://d.onag.re/version)"
curl -fsSLo /tmp/onagent "https://d.onag.re/agent/$VERSION/agent-linux-arm64"
echo "$(curl -fsSL "https://d.onag.re/agent/$VERSION/agent-linux-arm64.sha256" | cut -d' ' -f1) /tmp/onagent" | sha256sum -c -sha256sum doit répondre OK. Sinon, n'installez pas le fichier : téléchargez-le à nouveau. Vérifiez ensuite qu'il s'exécute sur cette machine — il affiche sa version, sans réseau ni jeton — puis installez-le :
chmod 0755 /tmp/onagent
DOTNET_BUNDLE_EXTRACT_BASE_DIR=/tmp /tmp/onagent --version
install -m 0755 -o root -g root /tmp/onagent /usr/local/bin/onagent2. Créer l'utilisateur système#
L'agent s'exécute sans privilèges, sous onagent, sans shell ni répertoire personnel :
useradd --system --user-group --no-create-home --home-dir /nonexistent --shell /usr/sbin/nologin onagent3. Stocker le jeton#
Gardez le jeton hors du fichier de service, dans un fichier que seul root peut lire (systemd le lit avant de démarrer l'agent sous onagent) :
install -d -m 0700 /etc/onagent
( umask 077; echo 'TOKEN=<VOTRE_JETON>' > /etc/onagent/onagent.env )4. Créer le service#
Créez /etc/systemd/system/onagent.service :
[Unit]
Description=Onagre Agent
Documentation=https://docs.onagre.io/en/agents/deployment
Wants=network-online.target
After=network-online.target
[Service]
Type=exec
User=onagent
Group=onagent
EnvironmentFile=/etc/onagent/onagent.env
Environment=DOTNET_BUNDLE_EXTRACT_BASE_DIR=/var/cache/onagent
ExecStart=/usr/local/bin/onagent
WorkingDirectory=/
Restart=always
RestartSec=10
RestartPreventExitStatus=78
LimitNOFILE=65535
CacheDirectory=onagent
UMask=0077
StandardOutput=journal
StandardError=journal
SyslogIdentifier=onagent
AmbientCapabilities=CAP_NET_RAW
CapabilityBoundingSet=CAP_NET_RAW
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=read-only
PrivateDevices=yes
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectKernelLogs=yes
ProtectControlGroups=yes
ProtectClock=yes
ProtectHostname=yes
RestrictSUIDSGID=yes
RestrictRealtime=yes
RestrictNamespaces=yes
LockPersonality=yes
SystemCallArchitectures=native
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX AF_NETLINK
[Install]
WantedBy=multi-user.target| Réglage | Pourquoi |
|---|---|
User=onagent |
L'agent ne s'exécute jamais en root. |
RestartPreventExitStatus=78 |
Un jeton absent ou refusé arrête l'agent (code de sortie 78) au lieu de le redémarrer en boucle. |
DOTNET_BUNDLE_EXTRACT_BASE_DIR, CacheDirectory |
L'agent décompresse son runtime dans /var/cache/onagent/, qui appartient à onagent. |
AmbientCapabilities=CAP_NET_RAW |
Seul privilège : l'ICMP, pour le Sensor Ping et la découverte réseau. |
ProtectSystem=strict, ProtectHome=read-only… |
Durcissement : l'agent peut lire le système (Sensors Fichier) mais n'écrire nulle part. N'ajoutez ni MemoryDenyWriteExecute (incompatible avec .NET) ni PrivateTmp (les Sensors Fichier ne verraient plus /tmp). |
Démarrez-le, puis activez-le au démarrage :
systemctl daemon-reload
systemctl enable --now onagent5. Vérifier qu'il est connecté#
curl -s http://127.0.0.1:27520/readyIl répond {"status":"Ready"} une fois l'agent connecté — voir Endpoints de santé. Dans Onagre, l'agent apparaît Connected dans Configuration → Agents :

Réglages et logs#
Les réglages sont des variables d'environnement : ajoutez-les dans /etc/onagent/onagent.env, une ligne NOM=valeur chacune, puis systemctl restart onagent. Tous les réglages : Configuration de l'agent.
Les logs vont dans le journal systemd :
journalctl -u onagent -f
journalctl -u onagent --since today
journalctl -u onagent -p warningPour garder aussi un fichier de log, posez LOG=/var/log/onagent/onagent.log et ajoutez LogsDirectory=onagent au service (systemctl edit onagent).
Les Sensors Fichier lisent les fichiers en tant qu'onagent : pour un fichier lisible par root seul, lancez setfacl -m u:onagent:r /chemin/du/fichier.
Mettre à jour#
Téléchargez et vérifiez la nouvelle version comme à l'étape 1, conservez le binaire actuel, remplacez-le, puis redémarrez :
install -d -m 0755 /usr/local/lib/onagent
cp /usr/local/bin/onagent /usr/local/lib/onagent/onagent.previous
install -m 0755 -o root -g root /tmp/onagent /usr/local/bin/onagent
systemctl restart onagent
curl -s http://127.0.0.1:27520/readySi l'agent ne se reconnecte pas, revenez en arrière : install -m 0755 /usr/local/lib/onagent/onagent.previous /usr/local/bin/onagent && systemctl restart onagent.
Changer le jeton#
Après Revoke and regenerate dans Onagre, remplacez la ligne TOKEN= de /etc/onagent/onagent.env, puis systemctl restart onagent.
Gérer le service#
| Tâche | Commande |
|---|---|
| État | systemctl status onagent |
| Redémarrer | systemctl restart onagent |
| Modifications locales (conservées par les mises à jour) | systemctl edit onagent |
| Arrêter et désactiver | systemctl disable --now onagent |
| Désinstaller | systemctl disable --now onagent && rm -rf /etc/systemd/system/onagent.service /usr/local/bin/onagent /usr/local/lib/onagent /var/cache/onagent /etc/onagent && systemctl daemon-reload && userdel onagent |