Par défaut, NagVis est présenté à l'utilisateur via Apache sur le port 80, via HTTP.
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.
Le fichier de configuration à modifier dépend de l'addon pour lequel on effectue la configuration:
Ce fichier se présente de la façon suivante:
Alias /shinken-map "/opt/nagvis/share" <Directory "/opt/nagvis/share"> ... ... ... </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:
Listen 8080
<VirtualHost *:8080>
Alias /shinken-core-map "/opt/nagvis/share"
<Directory "/opt/nagvis/share">
...
...
...
</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.
Listen 8080 <VirtualHost 1.2.3.4:8080> ... |
Pour rendre ces changements effectifs, il faut ensuite redémarrer Apache:
systemctl restart httpd |
Comme pour le choix du port, le fichier de configuration à modifier dépend de l'addon pour lequel on effectue la configuration:
On englobera également la configuration présente par défaut dans un élément VirtualHost si nécessaire, en ajoutant les 3 instructions permettant d'activer SSL et de spécifier les chemins d'accès au certificat.
Le fichier de configuration d'origine se présente comme suivant.
Alias /shinken-core-map "/opt/nagvis/share" <Directory "/opt/nagvis/share"> Options FollowSymLinks AllowOverride None <RESTE DU CONTENU DU FICHIER> </Directory> |
Après modification, on obtient donc un fichier de la forme suivante:
<VirtualHost *:443>
SSLEngine ON
SSLCertificateFile /etc/shinken/certs/server.cert
SSLCertificateKeyFile /etc/shinken/certs/server.key
Alias /shinken-core-map "/opt/nagvis/share"
<Directory "/opt/nagvis/share">
Options FollowSymLinks
AllowOverride None
<RESTE DU CONTENU DU FICHIER>
</Directory>
</VirtualHost> |
L'exemple ci-dessus active le chiffrement SSL en utilisant les certificats livrés par Shinken (autosignés). Il est donc recommandé d'utiliser ses propres certificats dans un véritable environnement de production.
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
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:
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:
netstat -laputen | grep <NB_PORT> |
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.
Par défaut, un certain nombre de ports sont autorisés par SELinux. La commande suivante permet de lister ces ports:
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:
semanage port -a -t http_port_t -p tcp <NB_PORT> |