oilyflutesalad
2010-01-16 66d94a0790fb96e85debe5809d5ad48f0f27f798
server/mods-available/monitor_core_module.inc.php
@@ -219,10 +219,14 @@
                 * calculate the state
                 */
                $usePercent = floatval($data[$i]['percent']);
                if ($usePercent > 75) $state = $this->_setState($state, 'info');
                if ($usePercent > 80) $state = $this->_setState($state, 'warning');
                if ($usePercent > 90) $state = $this->_setState($state, 'critical');
                if ($usePercent > 95) $state = $this->_setState($state, 'error');
            //* We dont want to check the cdrom drive as a cd / dvd is always 100% full
            if($data[$i]['type'] != 'iso9660' && $data[$i]['type'] != 'cramfs' && $data[$i]['type'] != 'udf') {
                   if ($usePercent > 75) $state = $this->_setState($state, 'info');
                   if ($usePercent > 80) $state = $this->_setState($state, 'warning');
                   if ($usePercent > 90) $state = $this->_setState($state, 'critical');
                   if ($usePercent > 95) $state = $this->_setState($state, 'error');
            }
            }
        }
@@ -516,6 +520,34 @@
             */
            $data['output'] = shell_exec('apt-get -s -q dist-upgrade');
        }
        elseif (file_exists("/etc/gentoo-release")) {
           /*
            * first update the portage tree
            */
           shell_exec('emerge --sync --quiet');
           /*
             * Then test the upgrade.
             * if there is any output, then there is a needed update
             */
            $emergeData = shell_exec('emerge -puDNt --color n --nospinner --quiet world');
           if ($emergeData == '')
            {
                /* There is nothing to update! */
                $state = 'ok';
            }
            else
            {
                /* There is something to update! */
                $state = 'warning';
            }
            /*
             * Fetch the output
             */
            $data['output'] = shell_exec('emerge -pvuDNt --color n --nospinner world');
        }
        else {
            /*
             * It is not debian/Ubuntu, so there is no data and no state
@@ -605,8 +637,8 @@
        $type = 'raid_state';
        /* This monitoring is only available if mdadm is installed */
        $location = shell_exec('which mdadm');
        if($location != ''){
        $location = system('which mdadm', $retval);
        if($retval === 0){
            /*
             * Fetch the output
             */
@@ -694,10 +726,11 @@
    function monitorRkHunter(){
        /*
         *  This monitoring is expensive, so do it only once a hour
         *  This monitoring is expensive, so do it only once a day
         */
        $min = date('i');
        if ($min != 0) return;
        $hour = date('H');
        if (!($min == 0 && $hour == 23)) return;
        global $app;
        global $conf;
@@ -709,8 +742,8 @@
        $type = 'rkhunter';
        /* This monitoring is only available if rkhunter is installed */
        $location = shell_exec('which rkhunter');
        if($location != ''){
        $location = system('which rkhunter', $retval);
        if($retval === 0){
            /*
             * Fetch the output
             */
@@ -763,8 +796,9 @@
        $type = 'log_fail2ban';
        /* This monitoring is only available if fail2ban is installed */
        $location = shell_exec('which fail2ban-client');
        if($location != ''){
        $location = system('which fail2ban-client', $retval); // Debian, Ubuntu, Fedora
      if($retval !== 0) $location = system('which fail2ban', $retval); // CentOS
        if($retval === 0){
         /*  Get the data of the log */
         $data = $this->_getLogData($type);
@@ -1180,43 +1214,63 @@
      
      if(@is_file('/etc/debian_version')) $dist = 'debian';
      if(@is_file('/etc/redhat-release')) $dist = 'redhat';
      if(@is_file('/etc/SuSE-release')) $dist = 'suse';
      if(@is_file('/etc/gentoo-release')) $dist = 'gentoo';
      
      switch($log) {
            case 'log_mail':
                if($dist == 'debian') $logfile = '/var/log/mail.log';
            if($dist == 'redhat') $logfile = '/var/log/maillog';
            if($dist == 'suse') $logfile = '/var/log/mail.info';
            if($dist == 'gentoo') $logfile = '/var/log/maillog';
                break;
            case 'log_mail_warn':
                if($dist == 'debian') $logfile = '/var/log/mail.warn';
            if($dist == 'redhat') $logfile = '/var/log/maillog';
            if($dist == 'suse') $logfile = '/var/log/mail.warn';
            if($dist == 'gentoo') $logfile = '/var/log/maillog';
                break;
            case 'log_mail_err':
                if($dist == 'debian') $logfile = '/var/log/mail.err';
            if($dist == 'redhat') $logfile = '/var/log/maillog';
            if($dist == 'suse') $logfile = '/var/log/mail.err';
            if($dist == 'gentoo') $logfile = '/var/log/maillog';
                break;
            case 'log_messages':
                if($dist == 'debian') $logfile = '/var/log/messages';
            if($dist == 'redhat') $logfile = '/var/log/messages';
            if($dist == 'suse') $logfile = '/var/log/messages';
            if($dist == 'gentoo') $logfile = '/var/log/messages';
                break;
            case 'log_ispc_cron':
                if($dist == 'debian') $logfile = '/var/log/ispconfig/cron.log';
            if($dist == 'redhat') $logfile = '/var/log/ispconfig/cron.log';
            if($dist == 'suse') $logfile = '/var/log/ispconfig/cron.log';
            if($dist == 'gentoo') $logfile = '/var/log/cron';
                break;
            case 'log_freshclam':
                if($dist == 'debian') $logfile = '/var/log/clamav/freshclam.log';
            if($dist == 'redhat') $logfile = '/var/log/freshclam.log';
                break;
            if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/freshclam.log') ? '/var/log/clamav/freshclam.log' : '/var/log/freshclam.log');
                if($dist == 'suse') $logfile = '';
                if($dist == 'gentoo') $logfile = '/var/log/clamav/freshclam.log';
            break;
            case 'log_clamav':
                if($dist == 'debian') $logfile = '/var/log/clamav/clamav.log';
            if($dist == 'redhat') $logfile = '/var/log/maillog';
            if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/clamd.log') ? '/var/log/clamav/clamd.log' : '/var/log/maillog');
            if($dist == 'suse') $logfile = '';
            if($dist == 'gentoo') $logfile = '/var/log/clamav/clamd.log';
                break;
            case 'log_fail2ban':
                if($dist == 'debian') $logfile = '/var/log/fail2ban.log';
            if($dist == 'redhat') $logfile = '/var/log/fail2ban.log';
            if($dist == 'suse') $logfile = '/var/log/fail2ban.log';
            if($dist == 'gentoo') $logfile = '/var/log/fail2ban.log';
                break;
            case 'log_ispconfig':
                if($dist == 'debian') $logfile = '/var/log/ispconfig/ispconfig.log';
            if($dist == 'redhat') $logfile = '/var/log/ispconfig/ispconfig.log';
            if($dist == 'suse') $logfile = '/var/log/ispconfig/ispconfig.log';
            if($dist == 'gentoo') $logfile = '/var/log/ispconfig/ispconfig.log';
                break;
            default:
                $logfile = '';