Jouer avec les CGI

Les fichiers CGI de Nagios permettent d'afficher les résultats des “script de check” de manière formaté dans des pages HTML. Un problème majeur est qu'il n'est pas possible de changer, modifier des classes CSS dans le fichier HTML généré par un CGI tout en gardant l'interface d'origine !

Dans mon étude je propose de re-compiler le “status.cgi” avec des nouvelles classes CSS pour un affichage différent de Nagios sans modifier les CSS et CGI d'origine. Ceci afin de proposer une vue simplifiée de Nagios pour les personnes en charge de l'exploitation du réseau.

1 - Récupérer les sources

2 - Les manipulations habituelles

root@desktop:/tmp# tar xvzf nagios-3.2.3.tar.gz
root@desktop:/tmp/nagios-3.2.3# cd nagios-3.2.3
root@desktop:/tmp/nagios-3.2.3# mkdir /usr/local/nagios
root@desktop:/tmp/nagios-3.2.3# adduser nagios
root@desktop:/tmp/nagios-3.2.3# chown nagios: /usr/local/nagios
root@desktop:/tmp/nagios-3.2.3# ./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios/ --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagios

3 - On customise le CGI

On modifie le fichier existant “status.c” en “statusNEW.c” en remplacant des styles :

root@desktop:/tmp/nagios-3.2.3/cgi# sed -e 's/serviceTotals/serviceTotalsNEW/g' status.c > statusTMP.c 
root@desktop:/tmp/nagios-3.2.3/cgi# sed -e 's/hostTotals/hostTotalsNEW/g' statusTMP.c > statusNEW.c 

4 - Modification du MakeFile

Le Makefile est modifié pour appeler le nouveau fichier source “statusNEW.c”.

[...]
# On ajoute le nouveau fichier "statusNEW.cgi" à la variable CGIS
CGIS=avail.cgi cmd.cgi config.cgi extinfo.cgi history.cgi notifications.cgi outages.cgi showlog.cgi status.cgi status.cgi statusNEW.cgi statuswml.cgi summary.cgi tac.cgi $(CGIEXTRAS)
[...]
# On ajoute les instructions suivantes pour compiler le nouveau fichier "statusNEW.c" en "statusNEW.cgi"
statusNEW.cgi: statusNEW.c $(CGIDEPS) $(CDATADEPS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ statusNEW.c $(CGILIBS) $(CDATALIBS) $(LIBS)
[...]

5 - Modification du CSS

On ajoute les propriétés voulues au nouveau fichier CSS en relation avec celles définies dans le fichier source “statusNEW.c”

root@desktop:/usr/local/nagios/share/stylesheets# grep "serviceTotals " status.css | sed -e 's/serviceTotals/serviceTotalsNEW/g' > statusTMP.css 
root@desktop:/usr/local/nagios/share/stylesheets# grep "hostTotals " status.css | sed -e 's/hostTotals/hostTotalsNEW/g' > statusTMP2.css
root@desktop:/usr/local/nagios/share/stylesheets# cat statusTMP.css statusTMP2.css > statusNEW.css ; rm statusTM*; chown nagios:nagios statusNEW.css

6 - Compilation

root@desktop:/tmp/nagios-3.2.3/cgi# make
ou si on utilise un autre MakeFile
root@desktop:/tmp/nagios-3.2.3/cgi# make -f MakefileNEW

7 - Fin

On constate que notre nouveau fichier “statusNEW.cgi” a été créé. Il ne reste plus qu'à l'appeler dans le “side.php” !

root@desktop:/tmp/nagios-3.2.3/cgi# ls -l statusNEW*
-rw-r--r-- 1  501  501 196695 2011-03-13 18:32 statusNEW.c
-rwxr-xr-x 1 root root 638226 2011-03-13 21:48 statusNEW.cgi

 
asr/sys/modifier_l_interface_nagios/jouer_avec_les_cgi.txt · Dernière modification: 2016/03/29 23:37 (édition externe)
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki