Juin
10
2011

Configurer les droits utilisateurs sur Centreon


Le but de cet article est de définir la procédure à suivre pour gérer les droits utilisateurs le plus finement possible sur Centreon.

Pour cela, Centreon utilise un système d’ACL (Access Control List) qui permet d’attribuer des droits à un utilisateur ( ou groupe d’utilisateur ) sur les différents menus  et les ressources ( Hôte, services, groupe d’hôte, groupe de services).

Imaginons que vous voulez donner accès aux DBA à une interface Centreon personnalisée. Ils pourraient visualiser l’état des services des serveurs de bases de données,voir les graphs liés aux services et changer leur mot de passe. Pour cela, je vais tenter de vous expliquez la démarche :

Procédure :

– Créer un compte pour chaque DBA ( Configuration/User/add ). Ne pas oublier le mot de passe.

– Créer un groupe d’utilisateur nommé DBA ( Configuration/User/Contact Group/add)

– Affecter à ce groupe l’ensemble des utilisateurs DBA.

– Créer un groupe d’accès DBA-Access ( Administration/ACL/Access group/add ) dans le quel vous affecterez le groupe DBA

– Donner un accès aux différents menu de centreon (Administration/ACL/menus access/add ). Nommez l’accès menu DBA-Menus et affecter le groupe d’accès DBA-Access.

– Sélectionner les différents menus que les DBA auront le droit de visualiser :

exemple :

image

Note : La partie “Accessible Page” est très fine. N’hésitez pas à tester le compte et d’ajouter ou supprimer des droits jusqu’à avoir les vues qui vous conviennent.

– Sauvegardez

– Créer un groupe d’hôte nommé “Serveur-Base-de-données”  ( Configuration/hosts/hosts groups/add ) et affectez tous les hosts correspondant aux serveurs de base de données.

– Configurer l’accès aux ressources ( Administration/ACL/Resources Access/add)

– Affecter le groupe d’utilisateur DBA dans l’onglet : “General Information”

– Aller dans l’onglet “Hosts resources” et Affecter le groupe d’hôte “Serveur-Base-de-données”

Note : Vous pouvez également sélectionner les différents services des serveurs de base de données.

-Sauvegarder

Voilà, il ne vous reste plus qu’à tester. Pour cela, accéder à Centreon avec un compte que vous venez de créer.

 

Problème rencontré :

Après avoir fait des changements dans mes ACL, les modifications ne s’appliquaient pas. Centreon utilise un cron pour recharger les ACL. Ce cron se situe généralement ici : /etc/cron.d/centreon

La partie qui nous intéresse dans ce fichier est la suivant :

*/2 * * * * apache /usr/bin/php -q /usr/share/centreon/cron/centAcl.php >> /var/log/centreon/centAcl.log 2>&1

En gros, ce cron lance le script “/usr/share/centreon/cron/centAcl.php” toutes les 2 minutes et log le résultat de la commande dans le fichier var/log/centreon/centAcl.log

Le rafraichissement des ACL se fait donc toutes les deux minutes. Si ce rafraichissement ne se fait pas, il faut vérifier qu’il n’y a pas d’erreur dans le fichier log.

Articles similaires

Au sujet de l'auteur: Olivier Legras

Auteur de ce Blog, je partage quelques unes de mes notes que je juge utile à vous comme à moi. Je suis très heureux de voir que mon blog a de plus en plus d'affluence. Merci à vous!

12 Comments + Add Comment

  • Bonjour,
    J’ai suivi un tutoriel qui présente les mêmes étapes que les vôtres et qui marche !
    Enfin.. j’ai peut etre parlé trop vite :
    J’ai réussi la première fois, et lorsque j’ai modifié la liste des hosts à superviser (en rajoutant un groupe ou n’importe quel hôte), je ne vois pas les nouveaux hosts … :/
    J’ai regardé le fichier /var/log/centreon/centAcl.log : j’ai une liste d’erreurs (toutes les mêmes) :
    [DB Centreon connexion] DB Error connect failed

    –> Vous avez peut être une idée sur le problème ? Sachant que j’ai attendu plus de 2 minutes pour voir si les modifications apparaissait …
    Par contre, si je modifie l’affichage de menu, cela fonctionne.
    C’est juste le problème de l’affichage des nouveaux hôtes
    A noter que je peut voir le groupe d’hôte nouvellement créé (statut OK ou non avec le nombre d’hôte présents) mais que je ne peux pa visionner ses hôtes un à un.

    J’espère que j’ai été clair dans mes explications et que vous connaissez la solution 🙂

    Merci !

  • Bonjour,

    Il y’a surement un problème de configuration. soit dans le fichier de conf de centreon, soit au niveau des droits des bases Mysql.

    J’ai trouvé ce lien qui pourra peut-être vous aider :
    http://forum.centreon.com/showthread.php/8266-DB-Error-connect-failed-alors-que-successfully-connected-to-data-sink

    Tenez moi au courant.

  • Merci pour cette réponse rapide !
    Je vais regarder ça et vous tiens au courant 😉

  • Merci pour le lien,
    J’ai suivi les étapes qui ne me donnent pas les mêmes messages :

    tail -f /var/log/centreon/logAnalyser.log :
    BD::mysql::st execute failed: Table ‘instance’ is read only at /usr/share/centreon/bin/logAnalyser line 439

    tail -f /var/log/centreon/centstorage.log :
    Error:Table ‘data_bin’ is read only
    Error:Table ‘index_data’ is read only
    Error:Table ‘metrics’ is read only

    tail -f /var/log/centreon/centAcl.log
    [DB Centreon connexion] DB Error connect failed

    Alors que si je fais des requete sur les bases (nagios, centreon2, centreon2_storage ou nareto) en utilisant l’utilisateur root sans mot de passe, cela fonctionne.
    –> Le démon mysql est bien en fonctionnement (/etc/init.d mysqld status)
    –> dans le fichier /etc/centreon/centreon.conf.php à la ligne :$conf_centreon[‘hostCentreon’] = “localhost”; j’ai bien ‘localhost’ contrairement à ce que l’utilisateur disait avoir changé et que cela lui permettait de résoudre son problème …

    Je continues de chercher mais si vous avez des idées ..
    Merci 😉

  • Je suis pas sûre d’avoir bien compris. Lorsque l’utilisateur est root, les ACL fonctionnent?

    Dans le fichier /etc/centreon/centreon.conf.php c’est bien root qui est utilisé?

    En tout cas, d’après ce log :
    tail -f /var/log/centreon/centstorage.log :
    Error:Table ‘data_bin’ is read only
    Error:Table ‘index_data’ is read only
    Error:Table ‘metrics’ is read only

    On remarque qu’il y a bien des problèmes de droits mysql. Il faut vérifier que l’utilisateur utilisé par centreon pour se connecter aux bases de données ait bien tous les droits sur les bases centreon.

  • Dans le fichier /etc/centreon.conf.php, c’est bien root qui est utilisé.

    Par contre j’ai du mal m’exprimer pour les ACL :
    – Sous centreon, tout fonctionne bien quand je me connecte avec un utilisateur qui a tous les droits mais avec l’utilisateur ‘test’ auquel est affectée les ACLs, les dernier hôtes enregistrer ne sont pas visibles (sauf les groupe d’hôtes)
    – sur le serveur nagios en mode commande, d’après le log que vous avez souligné, je ne comprend pas que cela me marque read only vu que j’exécute cette commande en étant root .. et non en étant ‘test’

    Pourtant, si le log montre que la table est en read only, ca veut dire que l’on peut tout de meme lire la table non ? et donc que mon utilisateur test peut le faire ?
    Je ne vois pas trop ou je peux voir si mon utilisateur a bien accès à ces bases de données .
    mais vu que cela a fonctionné pour les premiers hôtes .. c’est bizarre. Surtout que les modification de l’ACL sur l’affichage de l’interface fonctionne bien. C’est l’affichage des hôtes qui ne fonctionne pas seulement.

    Je suis un peu novice ..

  • Si vous lancez cette commande la :
    /usr/bin/php -q /usr/share/centreon/cron/centAcl.php

    quel est le retour?

  • cette commande ne me renvoie rien du tout

    Il y a des groupes par défaut dans centreon (supervisor et guest) : il faut que j’affecte mon utilisateur test à un de ces groupes ? ou cela n’a rien à voir ?

  • si elle ne vous renvoie rien c’est que les acl devraient être prises en compte.

    Pour le voir, ajouté un hôte à un hostgroup et relancé la commande puis testez.

  • Oh merci merci merciii !
    Ca fonctionne
    cette commande permet de prendre en compte les ACL donc ?
    Il ne suffit pas juste d’aller sous centreon et faire –> Administration –> ACL –> recharger les ACLs ??
    Du coup j’avais du taper cette commande la première fois (avec plein d’autres) pour trouver pourquoi cela prenait pas en compte les ACLs.. Et je mettais dit qu’il fallait attendre surement un peu ..
    En tout cas merci beaucoup pour votre patience et vos réponses rapide (et efficace !)

  • de rien, à bientôt j’espère 🙂

  • Bonjour,

    Je vous remercie pour votre Blog.

    J’ai un problème avec les ACL de Centreon.
    J’ai la version: 2.6.3

    J’ai un groupe d’utilisateur, malgré que j’ai défini les Hosts Ressources, tous les utilisateurs faisant partis du groupe peuvent voir tous les hosts tandis que j’ai mis que 3 hosts (j’ai une vingtaine de Hosts) c’est comme si mon “Hosts Ressources” n’a pas été pris en compte:

    Administration –>ACL–> Resources Access, puis Hosts Resources.

    Avez-vous une idée?

    Je vous remercie par avance.

Laissez un commentaire