Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Problématique

Par défaut, NagVis est présenté à l'utilisateur via Apache sur le port 80.

Il peut arriver dans certaines infrastructures de vouloir changer ce comportement par défaut pour des raisons de sécurité par exemple. Cette configuration s'effectue alors directement au niveau d'Apache qui est responsable de la disponibilité de NagVis.

Configuration du port


Le fichier de configuration à modifier dépend de l'addon pour lequel on effectue la configuration:

  • Addon nagvis-shinken-architecture: /etc/httpd/conf.d/nagvis_etc.conf
  • Addon nagvis: /etc/httpd/conf.hd/nagvis_opt.conf

Ce fichier se présente de la façon suivante:

Code Block
firstline/etc/httpd/conf.d/nagvis_etc.conf
Alias /shinken-core-map "/var/lib/shinken-nagvis//share"
<Directory "/var/lib/shinken-nagvis//share">
  Options FollowSymLinks
  AllowOverride None


  ...
  ...
  ...
</Directory>                                                                                                                                                                


Pour changer le port, il faut englober cette définition dans un élément VirtualHost Apache. Par exemple, pour changer le port d'écoute 80 par 8080, le fichier de configuration sera comme suivant:

Code Block
Listen 8080
<VirtualHost *:8080>
    Alias /shinken-core-map "/var/lib/shinken-nagvis//share"
    <Directory "/var/lib/shinken-nagvis//share">
      Options FollowSymLinks
      AllowOverride None


      ...
      ...
      ...
    </Directory>
</VirtualHost>                                                                                                   


La configuration ci-dessus rend disponible NagVis sur le port 8080 sur toutes les interfaces.

Pour limiter l'écoute du port sur certaines interfaces, il est possible de spécifier une interface sur laquelle NagVis sera disponible exclusivement. Dans l'exemple suivant, NagVis sera disponible sur le port 8080 uniquement sur l'interface d'adresse 1.2.3.4.

Code Block
...


Listen 8080
<VirtualHost 1.2.3.4:8080>


...


Pour rendre ces changements effectifs, il faut ensuite redémarrer Apache:

  • Sous CentOS 6

    Code Block
    service httpd restart


  • Sous CentOS 7

    Code Block
    systemctl restart httpd


Problèmes courants

Lors du redémarrage d'Apache, il est possible d'obtenir des erreurs.  Cette section recense les cas d'erreur les plus communs ainsi que leur résolution

Port déjà utilisé

Le problème le plus courant est d'essayer d'attribuer à NagVis un port qui est déjà utilisé par une autre application. Dans ce cas, Apache refuse de démarrer.

Pour résoudre l'erreur, il existe 2 solutions:

  • Changer de port utilisé
  • Changer de port utilisé sur l'application qui utilise déjà le port tant convoité


Il est possible de déterminer si un port "<NB_PORT>" est utilisé et le cas échéant le processus qui l'utilise avec la commande suivante:

Code Block
netstat -laputen | grep <NB_PORT>


SELinux

Il se peut que le port configuré ne soit pas utilisé mais qu'Apache ne puisse toujours pas l'utiliser. Dans ce cas, le problème peut provenir de SELinux.

Sous CentOS 6, SELinux est désactivé par Shinken lors de l'installation, mais sous CentOS 7, il reste actif.


Par défaut, un certain nombre de ports sont autorisés par SELinux. La commande suivante permet de lister ces ports:

Code Block
semanage port -l | grep http


Si le port <NB_PORT> ne se trouve pas dans la liste, il est possible de l'ajouter comme suivant:

Code Block
semanage port -a -t http_port_t -p tcp <NB_PORT>