Marius Burkard
2016-07-10 e1ceb050e19c7574bca146a8da7047ee4ff456b5
interface/lib/classes/tools_monitor.inc.php
@@ -33,7 +33,7 @@
      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");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'server_load' AND server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $data = unserialize($record['data']);
@@ -80,7 +80,7 @@
      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");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'disk_usage' AND server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $data = unserialize($record['data']);
@@ -91,16 +91,18 @@
         $html =
            '<div class="systemmonitor-state state-'.$record['state'].'">
                <div class="systemmonitor-content icons32 ico-'.$record['state'].'">
                <table>
                <table class="table">
                <thead class="dark">
                <tr>
                <td>'.$app->lng("monitor_diskusage_filesystem_txt").'</td>
            <td>'.$app->lng("monitor_diskusage_type_txt").'</td>
                <td>'.$app->lng("monitor_diskusage_size_txt").'</td>
                <td>'.$app->lng("monitor_diskusage_used_txt").'</td>
                <td>'.$app->lng("monitor_diskusage_available_txt").'</td>
                <td>'.$app->lng("monitor_diskusage_usage_txt").'</td>
                <td>'.$app->lng("monitor_diskusage_mounted_txt").'</td>
                </tr>';
                <th>'.$app->lng("monitor_diskusage_filesystem_txt").'</th>
            <th class="small-col">'.$app->lng("monitor_diskusage_type_txt").'</th>
                <th class="tiny-col">'.$app->lng("monitor_diskusage_size_txt").'</th>
                <th class="tiny-col">'.$app->lng("monitor_diskusage_used_txt").'</th>
                <th class="tiny-col">'.$app->lng("monitor_diskusage_available_txt").'</th>
                <th class="tiny-col">'.$app->lng("monitor_diskusage_usage_txt").'</th>
                <th>'.$app->lng("monitor_diskusage_mounted_txt").'</th>
                </tr></thead>
                <tbody>';
         foreach($data as $line) {
            $html .= '<tr>';
            foreach ($line as $item) {
@@ -108,7 +110,7 @@
            }
            $html .= '</tr>';
         }
         $html .= '</table>';
         $html .= '</tbody></table>';
         $html .= '</div></div>';
      } else {
         $html = '<p>'.$app->lng("no_data_diskusage_txt").'</p>';
@@ -118,11 +120,55 @@
      return $html;
   }
   function showDatabaseSize () {
      global $app;
      /* fetch the Data from the DB */
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'database_size' AND server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $data = unserialize($record['data']);
         //* format the data
         $html =
            '<div class="systemmonitor-state state-'.$record['state'].'">
                   <div class="systemmonitor-content icons32 ico-'.$record['state'].'">
                   <table class="table"><thead class="dark"><tr>
                   <th>'.$app->lng("monitor_database_name_txt").'</th>
                   <th class="tiny-col">'.$app->lng("monitor_database_size_txt").'</th>
                   <th>'.$app->lng("monitor_database_client_txt").'</th>
               <th>'.$app->lng("monitor_database_domain_txt").'</th>
                   </tr></thead>
                   <tbody>';
         foreach($data as $line) {
            $html .= '<tr>';
            if ($line['size'] > 0) $line['size'] = $app->functions->formatBytes($line['size']);
            //* get the client
            $tmp = $app->db->queryOneRecord("SELECT client.username FROM web_database, sys_group, client WHERE web_database.sys_groupid = sys_group.groupid AND sys_group.client_id = client.client_id AND web_database.database_name=?", $line['database_name']);
            $line['client'] = $tmp['username'];
            //* get the domain
            $tmp = $app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id=(SELECT parent_domain_id FROM web_database WHERE database_name=?", $line['database_name']);
            $line['domain'] = $tmp['domain'];
            //* remove the sys_groupid from output
            unset($line['sys_groupid']);
            foreach ($line as $item) {
               $html .= '<td>' . $item . '</td>';
            }
            $html .= '</tr>';
         }
         $html .= '</tbody></table></div></div>';
      } else {
         $html = '<p>'.$app->lng("no_data_database_size_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");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'mem_usage' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $data = unserialize($record['data']);
@@ -133,7 +179,8 @@
         $html =
            '<div class="systemmonitor-state state-'.$record['state'].'">
                <div class="systemmonitor-content icons32 ico-'.$record['state'].'">
                <table>';
                <table class="table">
                <tbody>';
         foreach($data as $key => $value) {
            if ($key != '') {
@@ -143,7 +190,7 @@
                        </tr>';
            }
         }
         $html .= '</table>';
         $html .= '</tbody></table>';
         $html .= '</div></div>';
      } else {
@@ -157,7 +204,7 @@
      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");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'cpu_info' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $data = unserialize($record['data']);
@@ -168,7 +215,8 @@
         $html =
            '<div class="systemmonitor-state state-'.$record['state'].'">
                <div class="systemmonitor-content icons32 ico-'.$record['state'].'">
                <table>';
                <table class="table">
                <tbody>';
         foreach($data as $key => $value) {
            if ($key != '') {
               $html .= '<tr>
@@ -177,7 +225,7 @@
                        </tr>';
            }
         }
         $html .= '</table>';
         $html .= '</tbody></table>';
         $html .= '</div></div>';
      } else {
         $html = '<p>'.$app->lng("no_data_cpuinfo_txt").'</p>';
@@ -190,7 +238,7 @@
      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");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'services' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $data = unserialize($record['data']);
@@ -201,7 +249,8 @@
         $html =
            '<div class="systemmonitor-state state-'.$record['state'].'">
                <div class="systemmonitor-content icons32 ico-'.$record['state'].'">
                <table>';
                <table class="table">
                <tbody>';
         if($data['webserver'] != -1) {
            if($data['webserver'] == 1) {
@@ -289,7 +338,7 @@
         }
         $html .= '</table></div></div>';
         $html .= '</tbody></table></div></div>';
      } else {
         $html = '<p>'.$app->lng("no_data_services_txt").'</p>';
      }
@@ -302,7 +351,7 @@
      global $app;
      /* fetch the Data from the DB */
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'system_update' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'system_update' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $html =
@@ -332,7 +381,7 @@
      global $app;
      /* fetch the Data from the DB */
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'openvz_beancounter' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'openvz_beancounter' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $html =
@@ -361,7 +410,7 @@
      global $app;
      /* fetch the Data from the DB */
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'raid_state' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'raid_state' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $html =
@@ -377,7 +426,9 @@
         }
         else {
            $data = unserialize($record['data']);
            $html .= nl2br($data['output']);
            // improve view @Author <info@typoworx.de>
            //-- $html .= nl2br($data['output']);
            $html .= '<xmp>' . $data['output'] . '</xmp>';
         }
         $html .= '</div></div>';
@@ -392,7 +443,7 @@
      global $app;
      /* fetch the Data from the DB */
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'rkhunter' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'rkhunter' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $html =
@@ -423,7 +474,7 @@
      global $app;
      /* fetch the Data from the DB */
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'log_fail2ban' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'log_fail2ban' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $html =
@@ -437,8 +488,41 @@
         $data = unserialize($record['data']);
         if ($data == '') {
            $html .= '<p>'.
               'fail2ban is not installed at this server.<br />' .
               'fail2ban is not installed on this server.<br />' .
               'See more (for debian) <a href="http://www.howtoforge.com/fail2ban_debian_etch" target="htf">here...</a>'.
               '</p>';
         }
         else {
            $html .= nl2br($data);
         }
         $html .= '</div></div>';
      } else {
         $html = '<p>There is no data available at the moment.</p>';
      }
      return $html;
   }
   function showMongoDB() {
      global $app;
      /* fetch the Data from the DB */
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'log_mongodb' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $html =
            '<div class="systemmonitor-state state-'.$record['state'].'">
                <div class="systemmonitor-content icons32 ico-'.$record['state'].'">';
         /*
             * First, we have to detect, if there is any monitoring-data.
             * If not (because mongodb is not installed) show this.
            */
         $data = unserialize($record['data']);
         if ($data == '') {
            $html .= '<p>'.
               'MongoDB is not installed on this server.<br />' .
               '</p>';
         }
         else {
@@ -455,7 +539,7 @@
   function showIPTables() {
      global $app;
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'iptables_rules' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'iptables_rules' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $html =
            '<div class="systemmonitor-state state-'.$record['state'].'">
@@ -479,7 +563,7 @@
      global $app;
      /* fetch the Data from the DB */
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'mailq' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
      $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'mailq' and server_id = ? ORDER BY created DESC", $_SESSION['monitor']['server_id']);
      if(isset($record['data'])) {
         $data = unserialize($record['data']);
@@ -495,7 +579,7 @@
      global $app;
      /* fetch the Data from the DB */
      $record = $app->db->queryOneRecord("SELECT created FROM monitor_data WHERE type = '" . $type . "' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
      $record = $app->db->queryOneRecord("SELECT created FROM monitor_data WHERE type = ? and server_id = ? ORDER BY created DESC", $type, $_SESSION['monitor']['server_id']);
      /* TODO: datetimeformat should be set somewhat other way */
      $dateTimeFormat = $app->lng("monitor_settings_datetimeformat_txt");