====== [HOWTO] Serverstats ======
====== Descripción ======
Como poner a trabajar la herramienta [[http://serverstats.berlios.de|serverstats]]
====== Plugins adicionales ======
===== diskinfo =====
He modificado el plugin ya que tenía alguna función deprecated en php y fallaba al situar los parámetros devueltos por "''df''"
==== Instalación ====
* Copiar el php del plugin a ''sources/''
* Editar el fichero ''config/sources.php'' y añadir la linea:
$config['diskinfo']['module'] = new diskinfo('/dev/mapper/partition');
* Editar el fichero ''config/graph.php'' y añadir:
* Para una gráfica porcentual:
$config['list'][] = array(
'title' => '% /partition',
'upperLimit' => 100,
'lowerLimit' => 0,
'altAutoscaleMax' => true,
'content' => array(
array(
'type' => 'AREA',
'source' => 'diskinfo',
'ds' => 'usedpercentage',
'cf' => 'AVERAGE',
'legend' => '%',
'color' => 'FF0000'
)
)
);
* Para una gráfica con datos reales:
$config['list'][] = array(
'title' => 'Disk Usage /partition',
'lowerLimit' => 0,
'altAutoscaleMax' => true,
'content' => array(
array(
'type' => 'AREA',
'source' => 'diskinfo',
'ds' => 'freediskspace',
'cf' => 'AVERAGE',
'legend' => 'Free Disk',
'color' => 'FF0000'
),
array(
'type' => 'AREA',
'source' => 'diskinfo',
'ds' => 'availablediskspace',
'cf' => 'AVERAGE',
'legend' => 'Total Diskspace',
'color' => 'FFFF00'
)
)
);
graph.php
simple.php
==== Codigo ====
disk = $disk;
}
public function refreshData()
{
$return = 0;
$datarows = array();
exec("df -m ".$this->disk." | grep -v Filesystem| tail -1 | awk '{printf int($1)\"::\"int($2)\"::\"int($3)\"::\"int($4)}'", $datarows, $return);
// exec("df -m ".$this->disk." | grep -v Filesystem| tail -1 | awk '{printf int($2)::int($3)::int($4)::int($5)}'", $datarows, $return);
if ($return !== 0)
{
throw new Exception('Could not read from "' . $this->disk . '"');
}
$cmdoutput = implode(' ', $datarows);
$parts = explode("::",$cmdoutput);
foreach ($parts as $key => $part) {
//$parts[$key] = ereg_replace("[^0-9]", "", $part);
$parts[$key] = preg_replace('[^0-9]', '', $part);
// printf("$parts[$key]\n");
}
$this->availablespace = $parts[0]/1024;
$this->usedspace = $parts[1]/1024;
$this->freespace = $parts[2]/1024;
$this->percentage = $parts[3];
}
public function initRRD(rrd $rrd)
{
$rrd->addDatasource('availablediskspace', 'GAUGE', null, 0);
$rrd->addDatasource('freediskspace', 'GAUGE', null, 0);
$rrd->addDatasource('useddiskspace', 'GAUGE', null, 0);
$rrd->addDatasource('usedpercentage', 'GAUGE', null, 0);
}
public function fetchValues()
{
$values = array();
$values['availablediskspace'] = $this->availablespace;
$values['useddiskspace'] = $this->usedspace;
$values['freediskspace'] = $this->freespace;
$values['usedpercentage'] = $this->percentage;
return $values;
}
}
?>