Files
nano_metrics/deploy/nanometrics-agent.service
Gilles Soulier 7fb47ffde8 fix(smart v0.1.17): smart_status optionnel + AmbientCapabilities CAP_SYS_ADMIN
- SmartJson.smart_status devient Option<SmartStatus> avec #[serde(default)]
  → parsing non-bloquant si le champ est absent (ex: NVME_IOCTL_ADMIN_CMD échoue)
- Service: suppression NoNewPrivileges, ajout AmbientCapabilities=CAP_SYS_ADMIN
  → smartctl hérite la capability via execve (kernel ≥ 5.2)
- Nettoyage logs debug (suppression dump JSON brut)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 14:10:53 +02:00

31 lines
915 B
Desktop File

[Unit]
Description=Nanometrics Agent — collecte de métriques système
After=network.target
Documentation=https://git.maison43gil.com/gilles/nano_metrics
[Service]
Type=simple
ExecStart=/usr/local/bin/nanometrics-agent /etc/nanometrics/config.toml
Restart=on-failure
RestartSec=5
DynamicUser=yes
SupplementaryGroups=disk
ConfigurationDirectory=nanometrics
ConfigurationDirectoryMode=0755
ProtectSystem=strict
ProtectHome=read-only
PrivateTmp=yes
# CAP_SYS_ADMIN est requis par le noyau pour NVME_IOCTL_ADMIN_CMD (lecture SMART NVMe).
# NoNewPrivileges est retiré car il efface les ambient capabilities sur exec (noyau ≥ 5.2),
# ce qui empêcherait smartctl enfant d'hériter la capability.
# CapabilityBoundingSet borne à la seule cap nécessaire.
CapabilityBoundingSet=CAP_SYS_ADMIN
AmbientCapabilities=CAP_SYS_ADMIN
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
[Install]
WantedBy=multi-user.target