Skip to main content

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.cmd n’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=Cping 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