probleme
Si sur la page web tu vois
It appears as though you do not have permission to view information for any of the hosts you requested...
alors :
Le fichier responsable : cgi.cfg
Ouvre-le :
nano /usr/local/nagios/etc/cgi.cfg
Cherche les lignes suivantes :
authorized_for_all_hosts=
authorized_for_all_services=
authorized_for_configuration_information=
authorized_for_system_commands=
authorized_for_all_service_commands=
authorized_for_all_host_commands=
Elles sont probablement vides, ce qui bloque tout.
🎯 2. Ajoute ton utilisateur nagiosadmin
Modifie-les ainsi :
authorized_for_all_hosts=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
Si tu veux autoriser plusieurs utilisateurs :
authorized_for_all_hosts=nagiosadmin,admin2
🎯 3. Vérifie que ton utilisateur existe bien dans Apache
cat /usr/local/nagios/etc/htpasswd.users
Tu dois voir :
nagiosadmin:xxxxxxxxxxxx
Si ce n’est pas le cas :
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
🎯 4. Redémarre Nagios + Apache
systemctl restart nagios
systemctl restart apache2
Recharge la page web → les hôtes apparaissent.
#Problème avec ping :
Error: Could not open command file '/usr/local/nagios/var/rw/nagios.cmd' for update!
Ce message d’erreur :
Error: Could not open command file '/usr/local/nagios/var/rw/nagios.cmd' for update!
signifie une seule chose :
👉 Nagios n’a pas les permissions nécessaires pour écrire dans le fichier de commandes externes.
C’est un problème classique après une installation manuelle.
🎯 Pourquoi ça arrive ?
Le fichier :
/usr/local/nagios/var/rw/nagios.cmd
doit appartenir au groupe nagcmd, et Apache (www-data) doit faire partie de ce groupe.
Or, soit :
- le dossier
rw/n’a pas les bons droits - le fichier
nagios.cmdn’a pas les bons droits - Apache n’a pas été redémarré après ajout au groupe
- Nagios n’a pas encore créé le fichier (il est créé au démarrage)
Étape 1 — Vérifier que www-data est bien dans le groupe nagcmd
groups www-data
Tu dois voir :
www-data : www-data nagcmd
Si nagcmd n’apparaît pas, ajoute-le :
usermod -a -G nagcmd www-data
Puis redémarre Apache (obligatoire) :
systemctl restart apache2
Étape 2 — Vérifier les permissions du dossier rw/
ls -ld /usr/local/nagios/var/rw
Tu dois avoir quelque chose comme :
drwxrwsr-x 2 nagios nagcmd ...
Si ce n’est pas le cas :
chown -R nagios:nagcmd /usr/local/nagios/var/rw
chmod 2775 /usr/local/nagios/var/rw
Le 2 dans 2775 est important : il force l’héritage du groupe.
Étape 3 — Vérifier les permissions du fichier nagios.cmd
ls -l /usr/local/nagios/var/rw/nagios.cmd
Tu dois voir :
prw-rw- 1 nagios nagcmd ...
Sinon :
chown nagios:nagcmd /usr/local/nagios/var/rw/nagios.cmd
chmod 660 /usr/local/nagios/var/rw/nagios.cmd
Étape 4 — Redémarrer Nagios pour recréer le fichier proprement
systemctl restart nagios
Attention sur un LXC :
Bonne nouvelle : on sait exactement ce qui se passe maintenant.
Tu as bien activé la locale dans /etc/locale.gen, tu as bien généré en_US.UTF‑8, mais ton système continue d’ignorer complètement update-locale.
C’est typique des systèmes minimalistes (containers, chroot, images cloud, installations ultra‑light) où la variable de locale n’est pas chargée automatiquement au login.
Donc même si la locale existe, elle n’est jamais appliquée → tu restes en LANG=C → ping sort un format non standard → check_ping reste en CRITICAL.
On va forcer la locale proprement.
SOLUTION 100% FIABLE : forcer la locale dans /etc/environment
Édite ce fichier :
nano /etc/environment
Ajoute ces deux lignes exactement :
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
Enregistre (CTRL+O), quitte (CTRL+X).
Recharge l’environnement
source /etc/environment
Puis vérifie :
locale
Tu dois enfin voir :
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
Redémarre Nagios
systemctl restart nagios