Vous êtes ici:

Menu

Les templates spéciaux de PNP4NAGIOS

Pnp4nagiosPNP4Nagios permet l'affichage des graphes en utilisant les données de performances. Avec l'installation standard, nous affichons les services pour chaque hôte comme indiqué dans l'article suivant. Mais il est possible d'afficher des graphes personnalisés en utilisant les templates spéciaux.

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.

graphepnp4nagios

Vous obtiendrez la vue suivante

templatespecial

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é

graphespecial

blog comments powered by Disqus
 Vous êtes ici: