From 44d2a76d4611e27d348e1c8ed89ff0675f2d262f Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Wed, 27 May 2009 08:49:48 -0400 Subject: [PATCH] Added missing error messages to the dns wizard. Improved language file loading. --- server/mods-available/monitor_core_module.inc.php | 80 ++++++++++++++++++++++++++++------------ 1 files changed, 56 insertions(+), 24 deletions(-) diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php index 717e378..9a26e83 100644 --- a/server/mods-available/monitor_core_module.inc.php +++ b/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'); + } } } @@ -320,7 +324,7 @@ $key = trim($part[0]); $value = trim($part[1]); if($key == 'processor') $processor = intval($value); - $data[$key.' '.$processor] = $value; + if($key != '') $data[$key.' '.$processor] = $value; } /* the cpu has no state. It is, what it is */ @@ -605,8 +609,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 */ @@ -697,7 +701,8 @@ * This monitoring is expensive, so do it only once a hour */ $min = date('i'); - if ($min != 0) return; + $hour = date('H'); + if ($min != 0 && $hour != 23) return; global $app; global $conf; @@ -709,8 +714,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 +768,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); @@ -1174,33 +1180,59 @@ function _getLogData($log){ - switch($log) { + + $dist = ''; + $logfile = ''; + + if(@is_file('/etc/debian_version')) $dist = 'debian'; + if(@is_file('/etc/redhat-release')) $dist = 'redhat'; + if(@is_file('/etc/SuSE-release')) $dist = 'suse'; + + switch($log) { case 'log_mail': - $logfile = '/var/log/mail.log'; + if($dist == 'debian') $logfile = '/var/log/mail.log'; + if($dist == 'redhat') $logfile = '/var/log/maillog'; + if($dist == 'suse') $logfile = '/var/log/mail.info'; break; case 'log_mail_warn': - $logfile = '/var/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'; break; case 'log_mail_err': - $logfile = '/var/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'; break; case 'log_messages': - $logfile = '/var/log/messages'; + if($dist == 'debian') $logfile = '/var/log/messages'; + if($dist == 'redhat') $logfile = '/var/log/messages'; + if($dist == 'suse') $logfile = '/var/log/messages'; break; case 'log_ispc_cron': - $logfile = '/var/log/ispconfig/cron.log'; + 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'; break; case 'log_freshclam': - $logfile = '/var/log/clamav/freshclam.log'; - break; + if($dist == 'debian') $logfile = '/var/log/clamav/freshclam.log'; + if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/freshclam.log') ? '/var/log/clamav/freshclam.log' : '/var/log/freshclam.log'); + if($dist == 'suse') $logfile = ''; + break; case 'log_clamav': - $logfile = '/var/log/clamav/clamav.log'; + if($dist == 'debian') $logfile = '/var/log/clamav/clamav.log'; + if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/clamd.log') ? '/var/log/clamav/clamd.log' : '/var/log/maillog'); + if($dist == 'suse') $logfile = ''; break; case 'log_fail2ban': - $logfile = '/var/log/fail2ban.log'; + if($dist == 'debian') $logfile = '/var/log/fail2ban.log'; + if($dist == 'redhat') $logfile = '/var/log/fail2ban.log'; + if($dist == 'suse') $logfile = '/var/log/fail2ban.log'; break; case 'log_ispconfig': - $logfile = '/var/log/ispconfig/ispconfig.log'; + 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'; break; default: $logfile = ''; @@ -1210,7 +1242,7 @@ // Getting the logfile content if($logfile != '') { $logfile = escapeshellcmd($logfile); - if(stristr($logfile, ';')) { + if(stristr($logfile, ';') or substr($logfile,0,9) != '/var/log/' or stristr($logfile, '..')) { $log = 'Logfile path error.'; } else -- Gitblit v1.9.1