Les templates spéciaux de PNP4NAGIOS
07/08/14 14:32 Classé dans: Techniques

Un exemple concret
Prenons le cas où nous désirons avoir tous les graphes de charge de tous nos serveurs supervisés. Il suffira de copier le fichier load.php ci-dessous dans le dossier /usr/local/pnp4nagios/share/templates.special
?php
#
#
#
$this->MACRO['TITLE'] = "Charge serveur";
$this->MACRO['COMMENT'] = "Pour tous les serveurs";
#
# Define the Service we want to graph
$services = $this->tplGetServices("","Load");
#
# The Datasource Name for Graph 1 ( index 0 )
$ds_name[0] = "LOADAVERAGE";
$opt[0] = "--title \"Charge Serveur\"";
$def[0] = "";
#
# Iterate through the list of hosts
foreach($services as $key=>$val){
#
# get the data for a given Host/Service
$data = $this->tplGetData($val['host'],$val['service']);
$hostname = rrd::cut($data['MACRO']['HOSTNAME']);
$def[0] .= rrd::def("var$key" ,$data['DS'][0]['RRDFILE'], $data['DS'][0]['DS'], "AVERAGE");
$def[0] .= rrd::line1("var$key", rrd::color($key), $hostname);
$def[0] .= rrd::gprint("var$key", array("MAX", "AVERAGE"));
}
?>
Pour visualiser les graphes, deux solutions :
- la première, saisir l'URL http://http://172.16.209.235/pnp4nagios/special?tpl=load (attention ne pas mettre l'extension)
- la deuxième, afficher la page d'accueil php4nagios de votre serveur et cliquer sur l'icône ci-dessous.

Vous obtiendrez la vue suivante

Modifier les couleurs
Les couleurs par défaut ne vous plaisent pas ? Pas de problème, vous pouvez utiliser des modèles de couleurs grâce à la table des couleurs $scheme[ ]. Vous pouvez utilisez les tableaux déjà enregistrés ou créer vos propres couleurs en ajoutant cette ligne dans le fichier /usr/local/pnp4nagios/etc/config_local.php.
$scheme['special'] = array ('#FB6A4A','#74C476','#6BAED6','#FD8D3C');
Ensuite, il suffira de saisir dans le template spécial, la ligne suivante
$schema = $this->config->scheme['special'];
et pour chaque objet ou l'on insère une couleur, on rajoute
rrd::color($key,'',$schema)
Voici un autre exemple complet avec des couleurs personnalisées loop.php
?php
#
#
#
$this->MACRO['TITLE'] = "The Title";
$this->MACRO['COMMENT'] = "A Comment";
#
# Define the Service we want to graph
$service = '_HOST_';
#
# Define a List of Host
$hosts = array('localhost','supervision','server3','weblamp');
#
# The Datasource Name for Graph 1 ( index 0 )
$ds_name[0] = "RTA Times";
$opt[0] = "--title \"Stacked RTA Times\"";
$def[0] = "";
$schema = $this->config->scheme['special'];
#
# Iterate through the list of hosts
foreach($hosts as $key=>$host){
#
# get the data for a given Host/Service
$a = $this->tplGetData($host,$service);
$def[0] .= rrd::def("a$key" ,$a['DS'][0]['RRDFILE'], $a['DS'][0]['DS'], "AVERAGE");
$def[0] .= rrd::line1("a$key", rrd::color($key,'',$schema), $a['MACRO']['HOSTNAME']);
$def[0] .= rrd::gprint("a$key", array("MIN", "MAX", "LAST"), "%.2lf%s");
}
?>
et le graphique associé

blog comments powered by Disqus