Intégration de Munin à Drupal

Intégration de Munin à Drupal

Mugshots aléatoires

From Anonymous

From Anonymous
Votre note: None Note: 5 (2 votes)

Réseaux






Voici un rapide script pour remonter les graphiques des sondes de Munin sur une page Drupal. Pour donner un exemple, ça donne qui ce trouve sur cette page.

Donc pour commencer, il faut avoir une installation de Drupal et de Munin. Il faut ensuite faire un bon vieux lien symbolique du répertoire ou sont générés les fichiers de munin vers un répertoire visible du web, par exemple de le répertoire 'misc' de Drupal.

@ /var/www/munin/ln -s bonvga.net /var/www/bonvga_v71/misc/munin_dedibox/bonvga.net

Il faut alors créer une nouvelle page sur Drupal avec un format d'entrée de type 'PHP Code' et y copier le suivant :

<?php
// configuration
$path = "/var/www/bonvga_v7/misc/munin_dedibox/bonvga.net/";
$www_path_munin = "http://www.bonvga.net/sites/www.bonvga.net/files/munin_dedibox/bonvga.net/";
$www_path_drupal = "http://www.bonvga.net/sites/www.bonvga.net/files/munin_dedibox/bonvga.net/";
$frequency = "day";
$extention = "png";

// aquisition des fichiers
$munin_list = array();
$munin_list_index = array();
if (
is_dir($path))
{
    if (
$dh = opendir($path))
    {
        while ((
$file = readdir($dh)) !== false)
        {
            if (
ereg("-".$frequency.".".$extention."$",$file))
            {
               
$line = array();
               
$line["file"] = $file;
               
$tmp = explode("-",$file);
               
$line["name"] = $tmp[1];
               
$line["display_name"] = ucfirst(strtolower(str_replace("_"," ",$line["name"])));
               
$line["www_file"] = $www_path_drupal.$file;
               
$line["html"] = str_replace(array($extention,"-".$frequency),array("html",""),$file);
               
$line["www_html"] = $www_path_drupal.$line["html"];
               
$munin_list[] = $line;
               
$munin_list_index[$line["name"]] = count($munin_list)-1;
            }       
        }
       
closedir($dh);
    }
}

if (
count($munin_list)>0)
{
   
// classement alphabetique
   
ksort($munin_list_index);
   
$munin_list_index_keys = array_keys($munin_list_index);
   
    echo
'<div align="right"><a href="http://munin.sourceforge.net/">';
    echo
'<img src="http://www.bonvga.net/sites/www.bonvga.net/files/munin/logo.png" /></a></div>';
    echo
'<p>Liste des graphiques disponibles :</p>';
   
   
// construction de l'index
   
echo '<a id="munin_top" />';
    echo
'<ul>';
    for (
$i=0;$i<count($munin_list_index_keys);$i++)
    {
        echo
'<li>';
        echo
'<a href="'.$_SERVER["REQUEST_URI"].'#'.$munin_list[$munin_list_index[$munin_list_index_keys[$i]]]["name"].'">';
        echo
$munin_list[$munin_list_index[$munin_list_index_keys[$i]]]["display_name"];
        echo
'</a>';
        echo
'</li>';
    }
    echo
'</ul>';
   
   
// construction de la liste d'image
   
for ($i=0;$i<count($munin_list_index_keys);$i++)
    {
        echo
'<div>';
        echo
'<a id="'.$munin_list[$munin_list_index[$munin_list_index_keys[$i]]]["name"].'" />';
        echo
'<h1>'.$munin_list[$munin_list_index[$munin_list_index_keys[$i]]]["display_name"].'</h1>';
        echo
'<a href="'.$munin_list[$munin_list_index[$munin_list_index_keys[$i]]]["www_html"].'" target="munin">';
        echo
'<img src="'.$munin_list[$munin_list_index[$munin_list_index_keys[$i]]]["www_file"].'" />';
        echo
'</a>';
        echo
'<br />';
        echo
'<em>'.$munin_list[$munin_list_index[$munin_list_index_keys[$i]]]["display_name"].'</em>';
        echo
' | <a href="'.$_SERVER["REQUEST_URI"].'#munin_top">Top</a>';
        echo
'</div>';
        echo
'<br />';
    }
}
else
{
    echo
'<p>Pas de statistique pour le moment...</p>';   
}
?>

Il ne reste plus qu'a paramètrer les variables de chemin :

<?php
// chemin absolu vers le contenu de Munin
$path = "/var/www/bonvga_v7/misc/munin_dedibox/bonvga.net/";

// url absolue vers le contenu de Munin (depuis Munin ou Drupal)
$www_path_munin = "http://www.bonvga.net/sites/www.bonvga.net/files/munin_dedibox/bonvga.net/";

// url absolue vers le contenu de Munin (depuis Drupal)
$www_path_drupal = "http://www.bonvga.net/sites/www.bonvga.net/files/munin_dedibox/bonvga.net/";

// type de graphique à remonter (day, week, month ou year)
$frequency = "day";

// extention des images (voir dans la configuration de Munin)
$extention = "png";
?>

Pour terminer, il suffit de sauver la page.

Pour voir une démonstration : cliquez ici.

Tags
Commentaires

Poster un nouveau commentaire

Le contenu de ce champ ne sera pas montré publiquement.
  • Balises HTML autorisées: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <img> <strike> <blockquote>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Vous pouvez publier du code en utilisant les balises <code>...</code> (generic) ou bien <?php ... ?> (PHP colorié).
  • Les smileys texte sont replacés par des smyleys images.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les liens d'images avec le tag 'rel="lightbox"' dans la balise <a> apparaîtrons dans une Lightbox.

Plus d'informations sur les options de formatage