Example #1
0
 public function Index_Action()
 {
     $ip = $this->_getRequest()->get('ip');
     $server = $this->db->fetchAssoc("SELECT * FROM servers WHERE ip = ?", array($ip));
     if ($server) {
         $server['graphics_dir'] = '/graphs/' . md5($server['ip']) . '/';
         $server['protocol'] = Asker::getProtocols($server['protocol']);
         $softwares = $this->db->fetchAll("SELECT * FROM softwares WHERE server_id = ?", array($server['id']));
         $server['softwares'] = $softwares;
         return $this->twig->render('server/details.twig', array('server' => $server));
     }
     return $this->_halt();
 }
Example #2
0
  * Setup rrd DB
  */
 $options = array("--start", "N", "--step", "60", "DS:input:COUNTER:600:U:U", "DS:output:COUNTER:600:U:U", "RRA:AVERAGE:0.5:1:600", "RRA:AVERAGE:0.5:6:700", "RRA:AVERAGE:0.5:24:775", "RRA:AVERAGE:0.5:288:797", "RRA:MAX:0.5:1:600", "RRA:MAX:0.5:6:700", "RRA:MAX:0.5:24:775", "RRA:MAX:0.5:288:797");
 $rrd['traffic']->setup()->setOptions($options)->execute();
 $options = array("--start", "N", "--step", "60", "DS:mem_total:GAUGE:600:0:U", "DS:mem_free:GAUGE:600:0:U", "DS:swap_total:GAUGE:600:0:U", "DS:swap_free:GAUGE:600:0:U", "RRA:AVERAGE:0.5:1:1440", "RRA:AVERAGE:0.5:10:1008", "RRA:AVERAGE:0.5:60:744");
 $rrd['memory']->setup()->setOptions($options)->execute();
 $options = array("--start", "N", "--step", "60", "DS:uptime1:GAUGE:600:0:90", "DS:uptime5:GAUGE:600:0:90", "DS:uptime15:GAUGE:600:0:90", "RRA:MIN:0.5:12:1440", "RRA:MAX:0.5:12:1440", "RRA:AVERAGE:0.5:1:1440");
 $rrd['uptime']->setup()->setOptions($options)->execute();
 $options = array("--start", "N", "--step", "60", "DS:cpu_user:COUNTER:600:0:100", "DS:cpu_nice:COUNTER:600:0:100", "DS:cpu_system:COUNTER:600:0:100", "DS:cpu_idle:COUNTER:600:0:100", "DS:cpu_iowait:COUNTER:600:0:100", "DS:cpu_irq:COUNTER:600:0:100", "DS:cpu_softirq:COUNTER:600:0:100", "RRA:AVERAGE:0.5:1:1440", "RRA:AVERAGE:0.5:10:1008", "RRA:AVERAGE:0.5:60:744");
 $rrd['cpu']->setup()->setOptions($options)->execute();
 /**
  * Get Informations AND Add new informations to RDDTOOL DBs
  */
 try {
     $krypt = new Krypt();
     if ($asker = Asker::factory($server['protocol'], $server['ip'], $krypt->decrypt($server['params']))) {
         $rrd['traffic']->update()->setDatas($asker->getTraffic())->execute();
         $rrd['memory']->update()->setDatas($asker->getMemory())->execute();
         $rrd['uptime']->update()->setDatas($asker->getUptime())->execute();
         $rrd['cpu']->update()->setDatas($asker->getCpu())->execute();
     }
 } catch (Exception $e) {
     $app['monolog']->addWarning($e->getMessage());
     if (APPLICATION_ENV == 'development') {
         print $e->getMessage() . PHP_EOL;
     }
 }
 /**
  * Generates RRDTOOL Graphs
  */
 $options = array("--start", "-1d", "--title", "Eth0 Traffic of " . $server['servername'] . " (average of 5min)", "--vertical-label=B/s", "--width", "500", "--height", "200", "DEF:inoctets=" . $rrd['traffic']->getDbPath() . ":input:AVERAGE", "DEF:outoctets=" . $rrd['traffic']->getDbPath() . ":output:AVERAGE", "CDEF:outoctets_line=outoctets,-1,*", "AREA:inoctets#00FF00:In traffic", "CDEF:inbits=inoctets,8,*", "GPRINT:inbits:AVERAGE:Avg\\:%6.2lf %Sbps", "COMMENT:  ", "GPRINT:inbits:MIN:Min\\:%6.2lf %Sbps", "COMMENT:  ", "GPRINT:inbits:MAX:Max\\:%6.2lf %Sbps\\r", "LINE1:outoctets#0000FF:Out traffic", "CDEF:outbits=outoctets,8,*", "GPRINT:outbits:AVERAGE:Avg\\:%6.2lf %Sbps", "COMMENT:  ", "GPRINT:outbits:MIN:Min\\:%6.2lf %Sbps", "COMMENT:  ", "GPRINT:outbits:MAX:Max\\:%6.2lf %Sbps\\r");