Пример #1
0
 private function monitor()
 {
     if (!$this->core->is_access("sys_monitoring")) {
         $this->core->js_notify('Access Denied');
     }
     $query = $this->db->query("SELECT id, title, `text`, ip, `port` FROM `mcr_monitoring`");
     if (!$query || $this->db->num_rows($query) <= 0) {
         $this->core->js_notify('Нет доступных серверов');
     }
     $array = array();
     require_once MCR_TOOL_PATH . 'monitoring.class.php';
     $m = new monitoring($this->config->main['mon_type']);
     while ($ar = $this->db->fetch_assoc($query)) {
         $address = $this->db->HSC($ar['ip']);
         $port = intval($ar['port']);
         $m->connect($address, $port);
         $json = json_decode($m->data);
         if ($json->status == 'online') {
             $status = 'progress-info';
             $stats = $json->players . ' / ' . $json->slots;
             $progress = $json->players <= 0 ? 0 : ceil(100 / ($json->slots / $json->players));
         } else {
             $status = 'progress-danger';
             $stats = 'Сервер оффлайн';
             $progress = 100;
         }
         $data = array("ID" => intval($ar['id']), "TITLE" => $this->db->HSC($ar['title']), "TEXT" => $this->db->HSC($ar['text']), "STATUS" => $status, "STATS" => $stats);
         $array[] = array("id" => intval($ar['id']), "progress" => $progress, "form" => $this->core->sp(MCR_THEME_BLOCK . "monitor/monitor-id.html", $data));
     }
     $this->core->js_notify('Серверы успешно получены', true, $array);
 }
Пример #2
0
    foreach (explode(',', $settings['monitoring_alert']) as $n) {
        $encoded = urlencode($n);
        IPSText::getTextClass('email')->subject = "{$server['server_hostname']} (Acknowledged)";
        IPSText::getTextClass('email')->to = $n;
        IPSText::getTextClass('email')->from = $settings['monitoring_from'];
        IPSText::getTextClass('email')->message = "{$server['server_hostname']} acknowledged by {$by}<br /><br /><a href='{$settings['board_url']}/interface/monitor.php?a=r&server={$server['server_id']}&by={$encoded}'>Reset</a>";
        IPSText::getTextClass('email')->html_email = 1;
        IPSText::getTextClass('email')->sendMail();
    }
    if (file_exists(IPSLib::getAppDir('nexus') . '/sources/actions/monitor.php')) {
        require_once IPSLib::getAppDir('nexus') . '/sources/actions/monitor.php';
        monitoring::acknowledge($server, $by);
    }
} elseif ($_GET['a'] == 'r') {
    ipsRegistry::DB()->update('nexus_hosting_servers', array('server_monitor_acknowledged' => 0, 'server_monitor_fails' => 0), "server_id={$server['server_id']}");
    foreach (explode(',', $settings['monitoring_alert']) as $n) {
        $encoded = urlencode($n);
        IPSText::getTextClass('email')->subject = "{$server['server_hostname']} (Reset)";
        IPSText::getTextClass('email')->to = $n;
        IPSText::getTextClass('email')->from = $settings['monitoring_from'];
        IPSText::getTextClass('email')->message = "{$server['server_hostname']} reset by {$by}";
        IPSText::getTextClass('email')->html_email = 1;
        IPSText::getTextClass('email')->sendMail();
    }
    if (file_exists(IPSLib::getAppDir('nexus') . '/sources/actions/monitor.php')) {
        require_once IPSLib::getAppDir('nexus') . '/sources/actions/monitor.php';
        monitoring::reset($server, $by);
    }
}
echo "Done";
exit;