====== [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; } } ?>