Falko Timme
2013-10-18 2d2fd172e1548dd24e1719accd0b856cff6a31a0
server/mods-available/monitor_core_module.inc.php
@@ -37,6 +37,8 @@
   var $actions_available = array();
   /** The Tools */
   private $_tools = null;
    //** time the script was called
    private $_run_time = null;
   /**
    * This function is called during ispconfig installation to determine
@@ -52,11 +54,14 @@
    */
   public function onLoad() {
      global $app;
        //* store the running time
        $this->_run_time = time();
      /*
       * Do the monitor every n minutes and write the result to the db
       */
      $min = @date('i');
      $min = @date('i', $this->_run_time);
      if (($min % $this->interval) == 0) {
         $this->_doMonitor();
      }
@@ -117,13 +122,17 @@
   }
    private function _monitorEmailQuota() {
        global $app;
        global $app, $conf;
        /*
       *  This monitoring is expensive, so do it only every 15 minutes
       */
      $min = @date('i');
      $min = @date('i', $this->_run_time);
      if ($min % 15 != 0) return;
      $app->uses('getconf');
      $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail');
      if($mail_config['mailbox_quota_stats'] == 'n') return;
      
      
      /*
@@ -134,7 +143,7 @@
        /*
         * Insert the data into the database
         */
        $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
        $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
                'VALUES (' .
                $res['server_id'] . ', ' .
                "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -159,7 +168,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -184,7 +193,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -209,7 +218,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -234,7 +243,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -259,7 +268,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -283,7 +292,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -307,7 +316,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -332,7 +341,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -357,7 +366,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -382,7 +391,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -400,7 +409,7 @@
      /*
       *  This monitoring is expensive, so do it only once an hour
       */
      $min = @date('i');
      $min = @date('i', $this->_run_time);
      if ($min != 0)
         return;
@@ -415,12 +424,13 @@
      $res = $this->_tools->monitorSystemUpdate();
      
      //* Ensure that output is encoded so that it does not break the serialize
      $res['data']['output'] = htmlentities($res['data']['output']);
      //$res['data']['output'] = htmlentities($res['data']['output']);
      $res['data']['output'] = htmlentities($res['data']['output'],ENT_QUOTES,'UTF-8');
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -445,7 +455,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -470,7 +480,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -488,8 +498,8 @@
      /*
       *  This monitoring is expensive, so do it only once a day
       */
      $min = @date('i');
      $hour = @date('H');
      $min = @date('i', $this->_run_time);
      $hour = @date('H', $this->_run_time);
      if (!($min == 0 && $hour == 23))
         return;
      /*
@@ -505,7 +515,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -530,7 +540,7 @@
        /*
         * Insert the data into the database
         */
        $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
        $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
                'VALUES (' .
                $res['server_id'] . ', ' .
                "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -556,7 +566,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -581,7 +591,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -606,7 +616,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -631,7 +641,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -656,7 +666,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -681,7 +691,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -704,12 +714,12 @@
      $res = $this->_tools->monitorISPCCronLog();
      
      //* Ensure that output is encoded so that it does not break the serialize
      $res['data']['output'] = htmlentities($res['data']['output']);
      if(is_array($res) && isset($res['data'])) $res['data'] = htmlentities($res['data']);
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -734,7 +744,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -759,7 +769,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -784,7 +794,7 @@
      /*
       * Insert the data into the database
       */
      $sql = 'INSERT INTO monitor_data (server_id, type, created, data, state) ' .
      $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' .
            'VALUES (' .
            $res['server_id'] . ', ' .
            "'" . $app->dbmaster->quote($res['type']) . "', " .
@@ -807,8 +817,10 @@
   private function _delOldRecords($type, $serverId) {
      global $app;
      $now = time();
      $old = $now - (4 * 60); // 4 minutes
      // $now = time();
      // $old = $now - (4 * 60); // 4 minutes
      $old = 'UNIX_TIMESTAMP() - 240';
      /*
       * ATTENTION if i do NOT pay attention of the server id, i delete all data (of the type)
       * of ALL servers. This means, if i have a multiserver-environment and a server has a