From c5d25fd51a759c2ae3fe75674a0296c4918bf181 Mon Sep 17 00:00:00 2001 From: wyrie <wyrie@ispconfig3> Date: Wed, 30 Dec 2009 02:58:09 -0500 Subject: [PATCH] Implemented: FS#1009 - ptr records powerdns plugin --- server/mods-available/monitor_core_module.inc.php | 80 +++++++++++++++++++++++++++++++++------ 1 files changed, 67 insertions(+), 13 deletions(-) diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php index 270f92e..cc95772 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'); + } } } @@ -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 = (is_file('/var/log/clamav/freshclam.log') ? '/var/log/clamav/freshclam.log' : '/var/log/freshclam.log'); - break; + 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 = (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 = ''; -- Gitblit v1.9.1