Marius Burkard
2016-02-11 a7796bec1be01b51f400e9a3a698535b12b636aa
interface/web/monitor/show_data.php
@@ -28,303 +28,152 @@
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
require_once('../../lib/config.inc.php');
require_once('../../lib/app.inc.php');
require_once '../../lib/config.inc.php';
require_once '../../lib/app.inc.php';
//* Check permissions for module
$app->auth->check_module_permissions('monitor');
$app->uses('tools_monitor');
/* Get the dataType to show */
$dataType = $_GET["type"];
/* Change the Server if needed */
if (isset($_GET['server'])){
   $server = explode('|', $_GET['server'], 2);
   $_SESSION['monitor']['server_id'] = $server[0];
   $_SESSION['monitor']['server_name'] = $server[1];
}
/* Get some translations */
$monTransDate = $app->lng("monitor_settings_datafromdate_txt");
$monTransSrv = $app->lng("monitor_settings_server_txt");
$output = '';
switch($dataType) {
   case 'server_load':
      $template = 'templates/show_data.htm';
      $output .= showServerLoad();
      $title = 'Server Load (Server: ' . $_SESSION['monitor']['server_name'] . ')';
      $description = '';
      break;
   case 'disk_usage':
      $template = 'templates/show_data.htm';
      $output .= showDiskUsage();
      $title = 'Disk usage (Server: ' . $_SESSION['monitor']['server_name'] . ')';
      $description = '';
      break;
   case 'mem_usage':
      $template = 'templates/show_data.htm';
      $output .= showMemUsage();
      $title = 'Memory usage (Server: ' . $_SESSION['monitor']['server_name'] . ')';
      $description = '';
      break;
   case 'cpu_info':
      $template = 'templates/show_data.htm';
      $output .= showCpuInfo();
      $title = 'CPU info (Server: ' . $_SESSION['monitor']['server_name'] . ')';
      $description = '';
      break;
   case 'services':
      $template = 'templates/show_data.htm';
      $output .= showServices();
      $title = 'Status of services (Server: ' . $_SESSION['monitor']['server_name'] . ')';
      $description = '';
      break;
   case 'overview':
      $template = 'templates/show_data.htm';
      $output .= showServerLoad();
      $output .= ' '. showDiskUsage();
      $output .= ' '.showServices();
      $title = 'System Monitor (Server: ' . $_SESSION['monitor']['server_name'] . ')';
      $description = '';
      break;
   default:
      $template = '';
      break;
case 'server_load':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showServerLoad();
   $time = $app->tools_monitor->getDataTime('server_load');
   $title = $app->lng("Server Load").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   $add_padding = true;
   break;
case 'disk_usage':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showDiskUsage();
   $time = $app->tools_monitor->getDataTime('disk_usage');
   $title = $app->lng("Disk usage").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   break;
case 'database_size':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showDatabaseSize();
   $time = $app->tools_monitor->getDataTime('database_size');
   $title = $app->lng("Database size").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   break;
case 'mem_usage':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showMemUsage();
   $time = $app->tools_monitor->getDataTime('mem_usage');
   $title = $app->lng("Memory usage").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   break;
case 'cpu_info':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showCpuInfo();
   $time = $app->tools_monitor->getDataTime('cpu_info');
   $title = $app->lng("monitor_title_cpuinfo_txt").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   break;
case 'services':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showServices();
   $time = $app->tools_monitor->getDataTime('services');
   $title = $app->lng("Status of services").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   break;
case 'openvz_beancounter':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showOpenVzBeanCounter();
   $time = $app->tools_monitor->getDataTime('openvz_beancounter');
   $title = $app->lng("monitor_title_beancounter_txt") . ' (' . $monTransSrv . ' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   $add_padding = true;
   break;
case 'system_update':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showSystemUpdate();
   $time = $app->tools_monitor->getDataTime('system_update');
   $title = $app->lng("monitor_title_updatestate_txt"). ' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   $add_padding = true;
   break;
case 'mailq':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showMailq();
   $time = $app->tools_monitor->getDataTime('mailq');
   $title = $app->lng("monitor_title_mailq_txt"). ' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   $add_padding = true;
   break;
case 'raid_state':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showRaidState();
   $time = $app->tools_monitor->getDataTime('raid_state');
   $title = $app->lng("monitor_title_raidstate_txt"). ' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   $add_padding = true;
   break;
case 'rkhunter':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showRKHunter();
   $time = $app->tools_monitor->getDataTime('rkhunter');
   $title = $app->lng("monitor_title_rkhunterlog_txt"). ' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   $add_padding = true;
   break;
case 'fail2ban':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showFail2ban();
   $time = $app->tools_monitor->getDataTime('log_fail2ban');
   $title = $app->lng("monitor_title_fail2ban_txt") . ' (' . $monTransSrv . ' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   $add_padding = true;
   break;
case 'mongodb':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showMongoDB();
   $time = $app->tools_monitor->getDataTime('log_mongodb');
   $title = $app->lng("monitor_title_mongodb_txt") . ' (' . $monTransSrv . ' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   break;
case 'iptables':
   $template = 'templates/show_data.htm';
   $output .= $app->tools_monitor->showIPTables();
   $time = $app->tools_monitor->getDataTime('iptables_rules');
   $title = $app->lng("monitor_title_iptables_txt") . ' (' . $monTransSrv . ' : ' . $_SESSION['monitor']['server_name'] . ')';
   $description = '';
   $add_padding = true;
   break;
default:
   $template = '';
   break;
}
if($add_padding == true) {
$output = '<div style="padding:20px;">'.$output.'</div>';
}
// Loading the template
$app->uses('tpl');
$app->tpl->newTemplate("form.tpl.htm");
$app->tpl->setInclude('content_tpl',$template);
$app->tpl->setInclude('content_tpl', $template);
$app->tpl->setVar("output",$output);
$app->tpl->setVar("title",$title);
$app->tpl->setVar("description",$description);
$app->tpl->setVar("output", $output);
$app->tpl->setVar("list_head_txt", $title);
$app->tpl->setVar("list_desc_txt", $description);
$app->tpl->setVar("time", $time);
$app->tpl->setVar("monTransDate", $monTransDate);
$app->tpl_defaults();
$app->tpl->pparse();
function showServerLoad(){
   global $app;
   /* fetch the Data from the DB */
   $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'server_load' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
   if(isset($record['data'])) {
      $data = unserialize($record['data']);
      /*
       Format the data
      */
      $html .=
      '<table id="system_load">
         <tr>
         <td>' . $app->lng("Server online since").':</td>
         <td>' . $data['up_days'] . ' days, ' . $data['up_hours'] . ':' . $data['up_minutes'] . ' hours</center></td>
         </tr>
         <tr>
         <td>' . $app->lng("Users online").':</td>
         <td>' . $data['user_online'] . '</td>
         </tr>' .
         '<tr>
         <td>' . $app->lng("System load 1 minute") . ':</td>
         <td>' . $data['load_1'] . '</td>
         </tr>
         <tr>
         <td>' . $app->lng("System load 5 minutes") . ':</td>
         <td>' . $data['load_5'] . '</td>
         </tr>
         <tr>
         <td>'.$app->lng("System load 15 minutes").':</td>
         <td>' . $data['load_15'] . '</td>
         </tr>
         </table>';
   } else {
      $html = '<p>'.$app->lng("no_data_serverload_txt").'</p>';
   }
   return $html;
}
function showDiskUsage () {
   global $app;
   /* fetch the Data from the DB */
   $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'disk_usage' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
   if(isset($record['data'])) {
      $data = unserialize($record['data']);
      /*
       Format the data
      */
      $html .= '<table id="system_disk">';
      foreach($data as $line) {
         $html .= '<tr>';
         foreach ($line as $item) {
            $html .= '<td>' . $item . '</td>';
         }
         $html .= '</tr>';
      }
      $html .= '</table>';
   } else {
      $html = '<p>'.$app->lng("no_data_diskusage_txt").'</p>';
   }
   return $html;
}
function showMemUsage ()
{
   global $app;
   /* fetch the Data from the DB */
   $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'mem_usage' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
   if(isset($record['data'])) {
      $data = unserialize($record['data']);
      /*
       Format the data
      */
      $html .= '<table id="system_memusage">';
      foreach($data as $key => $value){
         if ($key != '') {
            $html .= '<tr>
               <td>' . $key . ':</td>
               <td>' . $value . '</td>
               </tr>';
         }
      }
      $html .= '</table>';
   } else {
      $html = '<p>'.$app->lng("no_data_memusage_txt").'</p>';
   }
   return $html;
}
function showCpuInfo ()
{
   global $app;
   /* fetch the Data from the DB */
   $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'cpu_info' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
   if(isset($record['data'])) {
      $data = unserialize($record['data']);
      /*
       Format the data
      */
      $html .= '<table id="system_cpu">';
      foreach($data as $key => $value){
         if ($key != '') {
            $html .= '<tr>
               <td>' . $key . ':</td>
               <td>' . $value . '</td>
               </tr>';
         }
      }
      $html .= '</table>';
   } else {
      $html = '<p>'.$app->lng("no_data_cpuinfo_txt").'</p>';
   }
   return $html;
}
function showServices ()
{
   global $app;
   /* fetch the Data from the DB */
   $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'services' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
   if(isset($record['data'])) {
      $data = unserialize($record['data']);
      /*
       Format the data
      */
      $html .= '<table id="system_services">';
      if($data['webserver'] == true) {
         $status = '<span class="online">Online</span>';
      } else {
         $status = '<span class="offline">Offline</span>';
      }
      $html .= '<tr>
         <td>Web-Server:</td>
         <td>'.$status.'</td>
         </tr>';
      if($data['ftpserver'] == true) {
         $status = '<span class="online">Online</span>';
      } else {
         $status = '<span class="offline">Offline</span>';
      }
      $html .= '<tr>
         <td>FTP-Server:</td>
         <td>'.$status.'</td>
         </tr>';
      if($data['smtpserver'] == true) {
         $status = '<span class="online">Online</span>';
      } else {
         $status = '<span class="offline">Offline</span>';
      }
      $html .= '<tr>
         <td>SMTP-Server:</td>
         <td>'.$status.'</td>
         </tr>';
      if($data['pop3server'] == true) {
         $status = '<span class="online">Online</span>';
      } else {
         $status = '<span class="offline">Offline</span>';
      }
      $html .= '<tr>
         <td>POP3-Server:</td>
         <td>'.$status.'</td>
         </tr>';
      if($data['bindserver'] == true) {
         $status = '<span class="online">Online</span>';
      } else {
         $status = '<span class="offline">Offline</span>';
      }
      $html .= '<tr>
         <td>DNS-Server:</td>
         <td>'.$status.'</td>
         </tr>';
      if($data['mysqlserver'] == true) {
         $status = '<span class="online">Online</span>';
      } else {
         $status = '<span class="offline">Offline</span>';
      }
      $html .= '<tr>
         <td>mySQL-Server:</td>
         <td>'.$status.'</td>
         </tr>';
      $html .= '</table></div>';
   } else {
      $html = '<p>'.$app->lng("no_data_services_txt").'</p>';
   }
   return $html;
}
?>
?>