Announcement

Collapse
No announcement yet.

Nagvis & Centreon-Broker distribué : Solution

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nagvis & Centreon-Broker distribué : Solution

    Bonjour à tous,

    Comme certains l'on peut-être déjà remarqué, Centreon-Broker n'est pas compatible avec Nagvis (où l'inverse si vous préférez :-)).Aucun connecteur n'est disponible.

    Une solution existe et consiste à utiliser MKlivestatus sur chaque poller nagios. MKlivestatus créer un socket unix, par lequel les données peuvent être récupérées à la demande.

    Si pour une installation simple (Centreon, Nagios, Nagvis et broker sur le même serveur) cela convient, en revanche dès que l'on a plusieurs serveurs nagios satellite, çà se complique puisqu'aucun socket TCP n'est prévu pour MKlivestatus.

    Il va donc falloir, au travers de xinetd, créer ce socket TCP afin que Nagvis puisse récupérer les infos de nos remote.

    Je ne vais pas détailler l'installation des différents produits qui est des plus simple. Je vais uniquement parler de la configuration. L'installation a été faite sur une Ubuntu 10.04 LTS 64bits. A adapter à votre environnement
    1. Vous aurez besoin des paquets suivants : g++ make libc6-dev xinetd socat
    2. Téléchargement, compilation et installation de MKlivestatus http://mathias-kettner.de/download/m...1.2.0p1.tar.gz
    3. Optionnel : pour requêter via TCP le socket unix manuellement (pour une utilisation autre), vous devrez utiliser socat. En effet, sur le site de livestatus, netcat est utilisé. On a jamais réussi à requêter le socket de cette façon là. Vous en n'aurez cependant pas besoin avec Nagvis
    Un fois le tout installé, il faut créer le service livestatus pour xinetd. Ce service est à créer sur tout les serveurs Nagios. Pour plus de simplicité, créer également le service sur le serveur central.

    A Adapter à votre environnement :

    port = 5665 (choisissez celui que vous voulez)
    user = nagios (si le votre est différent)
    server = /usr/local/bin/unixcat (si le chemin est différent)
    server_args = /usr/local/nagios/var/rw/livestatus (chemin du socket unix livestatus)
    only_from = 127.0.0.1 172.16.3.71 172.16.3.40 172.16.3.39 172.16.3.38 (définissez les iP autorisées à requêter le socket)

    Code:
    service livestatus{
            type            = UNLISTED
            port            = 5665
            socket_type     = stream
            protocol        = tcp
            wait            = no
    # limit to 100 connections per second. Disable 3 secs if above.
            cps             = 100 3
    # set the number of maximum allowed parallel instances of unixcat.
    # Please make sure that this values is at least as high as
    # the number of threads defined with num_client_threads in
    # etc/mk-livestatus/nagios.cfg
            instances       = 500
    # limit the maximum number of simultaneous connections from
    # one source IP address
            per_source      = 250
    # Disable TCP delay, makes connection more responsive
            flags           = NODELAY
            user            = nagios
            server          = /usr/local/bin/unixcat
            server_args     = /usr/local/nagios/var/rw/livestatus
    # configure the IP address(es) of your Nagios server here:
            only_from       = 127.0.0.1 172.16.3.71 172.16.3.40 172.16.3.39 172.16.3.38
            disable         = no
    }
    Redémarrer ensuite xinetd et vérifier que le service écoute bien sur le port définit (netstat -taupen | grep 5665)

    Configuration de Nagios

    Il faut ajouter un broker à nagios pour utiliser livestatus.
    Pour celà, et pour chaque poller, ajouter la ligne suivante dans configuration -> Nagios -> nagios.cfg -> onglet data -> Add a new broker module

    /usr/local/nagios/bin/livestatus.o /usr/local/nagios/var/rw/livestatus

    Sauvegarder, générer les fichiers de configuration et redémarrez nagios

    Ensuite, sur chaque serveur, vérifiez les logs afin de confirmer le bon chargement du module livestatus

    Code:
    Event broker module '/usr/local/nagios/bin/cbmod.so' initialized successfully.[1341553358] livestatus: Livestatus 1.1.12p7 by Mathias Kettner. Socket: '/usr/local/nagios/var/rw/live'
    [1341553358] livestatus: Please visit us at http://mathias-kettner.de/
    [1341553358] livestatus: Hint: please try out OMD - the Open Monitoring Distribution
    [1341553358] livestatus: Please visit OMD at http://omdistro.org
    [1341553358] livestatus: Removed old left over socket file /usr/local/nagios/var/rw/live
    [1341553358] livestatus: Finished initialization. Further log messages go to /usr/local/nagios/var/livestatus.log
    [1341553358] Event broker module '/usr/local/nagios/bin/livestatus.o' initialized successfully.
    Maintenant, testons la communication avec le socket unix en local.

    Code:
    echo "GET hosts" > /tmp/query
    unixcat /usr/local/nagios/var/rw/livestatus < /tmp/query
    Si tout est OK, vous devriez avoir du contenu.

    Maintenant, testons la communication via le socket TCP (d'où l'installation de socat)

    Code:
    socat - TCP4:127.0.0.1:5665,crnl < /tmp/query
    Bien sûr. changer le n° de port en fonction de votre configuration xinetd. Si tout est OK, vous devriez avoir le même contenu que précédemment.

    Configuration de Nagvis :

    Options -> Gérer les backends -> Ajouter un backend -> backend-type : live_1

    socket : tcp:127.0.0.1:5665
    timeout : 10000
    Le reste peut être laissé vide

    Créer autant de backend que vous avez configuré de serveur nagios. Pensez à remplacer 127.0.0.1 par l'ip du serveur nagios. Attention également aux firewalls. Pensez à autoriser le flux.

    Enfin, testez l'ajout d'un host. Choisissez un des backend crée puis déroulez la liste des hosts.

    N'hésitez pas si vous avez des questions.
    Last edited by magicbret; 6th July 2012, 08:25.
    Ubuntu server 10.04 LTS 64 Bits - Haute dispo 4 serveurs centraux (réplication MySQL + VIP + Rsync)
    Nagios 3.3.1 | Centreon 2.3.9 | Centreon-Broker 2.1.1 | 2000 hôtes - 5000 services | 6 Remote Pollers

    Dev : CES 2.2 - Centengine - Centreon 2.4.1
Working...
X