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(); }
* 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");