Les templates spéciaux de PNP4NAGIOS
07/08/14 14:32 Classé dans: Techniques
PNP4Nagios 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.
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
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
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.
Ensuite, il suffira de saisir dans le template spécial, la ligne suivante
et pour chaque objet ou l'on insère une couleur, on rajoute
Voici un autre exemple complet avec des couleurs personnalisées loop.php
et le graphique associé
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