From f02be96750e48859cc63f1f2b64a86a9202178b4 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 22 Sep 2014 07:25:20 -0400 Subject: [PATCH] Fixed a error in OS detection code for CentOS. --- server/lib/classes/monitor_tools.inc.php | 681 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 361 insertions(+), 320 deletions(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 1913037..19f69bb 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -1,31 +1,31 @@ <?php /* - Copyright (c) 2007-2011, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com - All rights reserved. + Copyright (c) 2007-2011, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com + All rights reserved. - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. + this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. + may be used to endorse or promote products derived from this software without + specific prior written permission. - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ class monitor_tools { @@ -55,69 +55,77 @@ $distname = 'Ubuntu'; $distid = 'debian40'; $distbaseid = 'debian'; - $ver = explode(' ',$issue); + $ver = explode(' ', $issue); $ver = array_filter($ver); $ver = next($ver); - $mainver = explode('.',$ver); + $mainver = explode('.', $ver); $mainver = array_filter($mainver); $mainver = current($mainver).'.'.next($mainver); switch ($mainver){ + case "14.04": + $relname = "(Trusty Tahr)"; + break; + case "13.10": + $relname = "(Saucy Salamander)"; + break; + case "13.04": + $relname = "(Raring Ringtail)"; + break; case "12.10": $relname = "(Quantal Quetzal)"; - break; + break; case "12.04": $relname = "(Precise Pangolin)"; - break; + break; case "11.10": $relname = "(Oneiric Ocelot)"; - break; + break; case "11.14": $relname = "(Natty Narwhal)"; - break; + break; case "10.10": $relname = "(Maverick Meerkat)"; - break; + break; case "10.04": $relname = "(Lucid Lynx)"; - break; + break; case "9.10": $relname = "(Karmic Koala)"; - break; + break; case "9.04": $relname = "(Jaunty Jackpole)"; - break; + break; case "8.10": - $relname = "(Intrepid Ibex)"; - break; + $relname = "(Intrepid Ibex)"; + break; case "8.04": $relname = "(Hardy Heron)"; - break; + break; case "7.10": $relname = "(Gutsy Gibbon)"; - break; + break; case "7.04": $relname = "(Feisty Fawn)"; - break; + break; case "6.10": $relname = "(Edgy Eft)"; - break; + break; case "6.06": $relname = "(Dapper Drake)"; - break; + break; case "5.10": $relname = "(Breezy Badger)"; - break; + break; case "5.04": $relname = "(Hoary Hedgehog)"; - break; + break; case "4.10": $relname = "(Warty Warthog)"; - break; + break; default: $relname = "UNKNOWN"; } $distver = $ver.$lts." ".$relname; - swriteln("Operating System: ".$distver."\n"); } elseif(trim(file_get_contents('/etc/debian_version')) == '4.0') { $distname = 'Debian'; $distver = '4.0'; @@ -131,6 +139,11 @@ } elseif (strstr(trim(file_get_contents('/etc/debian_version')), '6.0') || trim(file_get_contents('/etc/debian_version')) == 'squeeze/sid') { $distname = 'Debian'; $distver = 'Squeeze/Sid'; + $distid = 'debian60'; + $distbaseid = 'debian'; + } elseif (strstr(trim(file_get_contents('/etc/debian_version')), '7.0') || substr(trim(file_get_contents('/etc/debian_version')),0,2) == '7.' || trim(file_get_contents('/etc/debian_version')) == 'wheezy/sid') { + $distname = 'Debian'; + $distver = 'Wheezy/Sid'; $distid = 'debian60'; $distbaseid = 'debian'; } else { @@ -197,6 +210,16 @@ $distver = '5.3'; $distid = 'centos53'; $distbaseid = 'fedora'; + } elseif(stristr($content, 'CentOS Linux release 6')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distid = 'centos53'; + $distbaseid = 'fedora'; + } elseif(stristr($content, 'CentOS Linux release 7')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distid = 'centos53'; + $distbaseid = 'fedora'; } else { $distname = 'Redhat'; $distver = 'Unknown'; @@ -222,9 +245,9 @@ return array('name' => $distname, 'version' => $distver, 'id' => $distid, 'baseid' => $distbaseid); } - //** Email Quota - public function monitorEmailQuota() { - global $conf, $app; + //** Email Quota + public function monitorEmailQuota() { + global $conf, $app; //* Initialize data array $data = array(); @@ -237,51 +260,53 @@ //* The state of the email_quota. $state = 'ok'; - + $mailboxes = $app->db->queryAllRecords("SELECT email,maildir FROM mail_user WHERE server_id = $server_id"); if(is_array($mailboxes)) { foreach($mailboxes as $mb) { $email = $mb['email']; - $email_parts = explode('@',$mb['email']); + $email_parts = explode('@', $mb['email']); $filename = $mb['maildir'].'/.quotausage'; if(file_exists($filename) && !is_link($filename)) { $quotafile = file($filename); - $data[$email]['used'] = trim($quotafile['1']); + preg_match('/storage.*?([0-9]+)/s', implode('',$quotafile), $storage_value); + $data[$email]['used'] = $storage_value[1]; + $app->log("Mail storage $email: " . $storage_value[1], LOGLEVEL_DEBUG); unset($quotafile); } else { - exec('du -s '.escapeshellcmd($mb['maildir']),$out); - $parts = explode(' ',$out[0]); + exec('du -s '.escapeshellcmd($mb['maildir']), $out); + $parts = explode(' ', $out[0]); $data[$email]['used'] = intval($parts[0])*1024; unset($out); unset($parts); } } } - + unset($mailboxes); - //* Dovecot quota check Courier in progress lathama@gmail.com + //* Dovecot quota check Courier in progress lathama@gmail.com /* - if($dir = opendir("/var/vmail")){ - while (($quotafiles = readdir($dir)) !== false){ - if(preg_match('/.\_quota$/', $quotafiles)){ - $quotafile = (file("/var/vmail/" . $quotafiles)); - $emailaddress = preg_replace('/_quota/',"", $quotafiles); - $emailaddress = preg_replace('/_/',"@", $emailaddress); - $data[$emailaddress]['used'] = trim($quotafile['1']); - } - } - closedir($dir); - } + if($dir = opendir("/var/vmail")){ + while (($quotafiles = readdir($dir)) !== false){ + if(preg_match('/.\_quota$/', $quotafiles)){ + $quotafile = (file("/var/vmail/" . $quotafiles)); + $emailaddress = preg_replace('/_quota/',"", $quotafiles); + $emailaddress = preg_replace('/_/',"@", $emailaddress); + $data[$emailaddress]['used'] = trim($quotafile['1']); + } + } + closedir($dir); + } */ $res['server_id'] = $server_id; $res['type'] = $type; $res['data'] = $data; $res['state'] = $state; - return $res; - } + return $res; + } - //** Filesystem Quota + //** Filesystem Quota public function monitorHDQuota() { global $conf; @@ -298,7 +323,7 @@ $state = 'ok'; //* Fetch the data for all users - $dfData = shell_exec('repquota -au'); + $dfData = shell_exec('repquota -au 2>/dev/null'); //* Split into array $df = explode("\n", $dfData); @@ -326,7 +351,7 @@ } //** Fetch the data for all users - $dfData = shell_exec('repquota -ag'); + $dfData = shell_exec('repquota -ag 2>/dev/null'); //* split into array $df = explode("\n", $dfData); @@ -366,10 +391,12 @@ $server_id = intval($conf['server_id']); /** The type of the data */ + + $type = 'server_load'; /* - Fetch the data into a array + Fetch the data into a array */ $procUptime = shell_exec("cat /proc/uptime | cut -f1 -d' '"); $data['up_days'] = floor($procUptime / 86400); @@ -420,7 +447,7 @@ $type = 'os_info'; /* - Fetch the data into a array + Fetch the data into a array */ $dist = $this->get_distname(); @@ -450,7 +477,7 @@ $type = 'ispc_info'; /* - Fetch the data into a array + Fetch the data into a array */ $data['name'] = ISPC_APP_TITLE; $data['version'] = ISPC_APP_VERSION; @@ -469,7 +496,7 @@ } public function monitorDiskUsage() { - global $conf; + global $app, $conf; /* the id of the server as int */ $server_id = intval($conf['server_id']); @@ -481,7 +508,10 @@ $state = 'ok'; /** Fetch the data of ALL devices into a array (needed for monitoring!) */ - $dfData = shell_exec('df -hT'); + //$dfData = shell_exec('df -hT 2>/dev/null'); + $app->uses('getconf'); + $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); + $dfData = shell_exec('df -hT|grep -v "'.$web_config['website_basedir'].'/" 2>/dev/null'); // split into array $df = explode("\n", $dfData); @@ -506,11 +536,11 @@ * calculate the state */ $usePercent = floatval($data[$i]['percent']); - + //* get the free memsize - if(substr($data[$i]['available'],-1) == 'G') { + if(substr($data[$i]['available'], -1) == 'G') { $freesize = floatval($data[$i]['available'])*1024; - } elseif(substr($data[$i]['available'],-1) == 'T') { + } elseif(substr($data[$i]['available'], -1) == 'T') { $freesize = floatval($data[$i]['available'])*1024*1024; } else { $freesize = floatval($data[$i]['available']); @@ -518,23 +548,23 @@ //* We don't want to check some filesystem which have no sensible filling levels switch ($data[$i]['type']) { - case 'iso9660': - case 'cramfs': - case 'udf': - case 'tmpfs': - case 'devtmpfs': - case 'udev': - break; - default: - if ($usePercent > 75 && $freesize < 2000) - $state = $this->_setState($state, 'info'); - if ($usePercent > 80 && $freesize < 1000) - $state = $this->_setState($state, 'warning'); - if ($usePercent > 90 && $freesize < 500) - $state = $this->_setState($state, 'critical'); - if ($usePercent > 95 && $freesize < 100) - $state = $this->_setState($state, 'error'); - break; + case 'iso9660': + case 'cramfs': + case 'udf': + case 'tmpfs': + case 'devtmpfs': + case 'udev': + break; + default: + if ($usePercent > 75 && $freesize < 2000) + $state = $this->_setState($state, 'info'); + if ($usePercent > 80 && $freesize < 1000) + $state = $this->_setState($state, 'warning'); + if ($usePercent > 90 && $freesize < 500) + $state = $this->_setState($state, 'critical'); + if ($usePercent > 95 && $freesize < 100) + $state = $this->_setState($state, 'error'); + break; } } } @@ -559,7 +589,7 @@ $type = 'mem_usage'; /* - Fetch the data into a array + Fetch the data into a array */ $miData = shell_exec('cat /proc/meminfo'); @@ -601,7 +631,7 @@ $type = 'cpu_info'; /* - Fetch the data into a array + Fetch the data into a array */ if (file_exists('/proc/cpuinfo')) { $cpuData = shell_exec('cat /proc/cpuinfo'); @@ -771,7 +801,7 @@ $type = 'openvz_veinfo'; /* - Fetch the data into a array + Fetch the data into a array */ $app->load(openvz_tools); $openVzTools = new openvz_tools(); @@ -801,7 +831,7 @@ $type = 'openvz_beancounter'; /* - Fetch the data into a array + Fetch the data into a array */ $app->load(openvz_tools); $openVzTools = new openvz_tools(); @@ -1054,7 +1084,7 @@ /* fetch the next line */ $line = $tmp[$i]; - if ((strpos($line, '[U_]') !== false) || (strpos($line, '[_U]') !== false)) { + if ((strpos($line, 'U_]') !== false) || (strpos($line, '[_U') !== false) || (strpos($line, 'U_U') !== false)) { /* One Disk is not working. * if the next line starts with "[>" or "[=" then * recovery (resync) is in state and the state is @@ -1134,61 +1164,66 @@ } } } - + /* * 3ware Controller */ + system('which tw_cli', $retval); if($retval === 0) { - - $data['output'] = shell_exec('tw_cli info c0'); + + // TYPOWORX FIX | Determine Controler-ID + $availableControlers = shell_exec('tw_cli info | grep -Eo "c[0-9]+'); + $data['output'] = shell_exec('tw_cli info ' . $availableControlers); $state = 'ok'; - foreach ($data['output'] as $item) { - if (strpos($item, 'RAID') !== false) { - if (strpos($item, ' VERIFYING ') !== false) { - $this->_setState($state, 'info'); - } - else if (strpos($item, ' MIGRATE-PAUSED ') !== false) { - $this->_setState($state, 'info'); - } - else if (strpos($item, ' MIGRATING ') !== false) { - $this->_setState($state, 'ok'); - } - else if (strpos($item, ' INITIALIZING ') !== false) { - $this->_setState($state, 'info'); - } - else if (strpos($item, ' INIT-PAUSED ') !== false) { - $this->_setState($state, 'info'); - } - else if (strpos($item, ' REBUILDING ') !== false) { - $this->_setState($state, 'info'); - } - else if (strpos($item, ' REBUILD-PAUSED ') !== false) { - $this->_setState($state, 'warning'); - } - else if (strpos($item, ' RECOVERY ') !== false) { - $this->_setState($state, 'warning'); - } - else if (strpos($item, ' DEGRADED ') !== false) { - $this->_setState($state, 'critical'); - } - else if (strpos($item, ' UNKNOWN ') !== false) { - $this->_setState($state, 'critical'); - } - else if (strpos($item, ' OK ') !== false) { - $this->_setState($state, 'ok'); - } - else if (strpos($item, ' OPTIMAL ') !== false) { - $this->_setState($state, 'ok'); - } - else { - $this->_setState($state, 'critical'); + if(is_array($data['output'])) { + foreach ($data['output'] as $item) { + if (strpos($item, 'RAID') !== false) { + if (strpos($item, ' VERIFYING ') !== false) { + $this->_setState($state, 'info'); + } + else if (strpos($item, ' MIGRATE-PAUSED ') !== false) { + $this->_setState($state, 'info'); + } + else if (strpos($item, ' MIGRATING ') !== false) { + $this->_setState($state, 'ok'); + } + else if (strpos($item, ' INITIALIZING ') !== false) { + $this->_setState($state, 'info'); + } + else if (strpos($item, ' INIT-PAUSED ') !== false) { + $this->_setState($state, 'info'); + } + else if (strpos($item, ' REBUILDING ') !== false) { + $this->_setState($state, 'info'); + } + else if (strpos($item, ' REBUILD-PAUSED ') !== false) { + $this->_setState($state, 'warning'); + } + else if (strpos($item, ' RECOVERY ') !== false) { + $this->_setState($state, 'warning'); + } + else if (strpos($item, ' DEGRADED ') !== false) { + $this->_setState($state, 'critical'); + } + else if (strpos($item, ' UNKNOWN ') !== false) { + $this->_setState($state, 'critical'); + } + else if (strpos($item, ' OK ') !== false) { + $this->_setState($state, 'ok'); + } + else if (strpos($item, ' OPTIMAL ') !== false) { + $this->_setState($state, 'ok'); + } + else { + $this->_setState($state, 'critical'); + } } } } } - + /* * Return the Result @@ -1291,54 +1326,54 @@ } public function monitorIPTables() { - global $conf; + global $conf; - /* the id of the server as int */ - $server_id = intval($conf['server_id']); + /* the id of the server as int */ + $server_id = intval($conf['server_id']); - /** The type of the data */ - $type = 'iptables_rules'; + /** The type of the data */ + $type = 'iptables_rules'; - /* This monitoring is only available if fail2ban is installed */ - system('which iptables', $retval); // Debian, Ubuntu, Fedora - if ($retval === 0) { - /* Get the data of the log */ - $data['output'] = '<h2>iptables -S (ipv4)</h2>'.shell_exec('iptables -S'); + /* This monitoring is only available if fail2ban is installed */ + system('which iptables', $retval); // Debian, Ubuntu, Fedora + if ($retval === 0) { + /* Get the data of the log */ + $data['output'] = '<h2>iptables -S (ipv4)</h2>'.shell_exec('iptables -S 2>/dev/null'); - /* - * At this moment, there is no state (maybe later) - */ - $state = 'no_state'; - } else { - $state = 'no_state'; - $data = ''; - } - - - /* This monitoring is only available if fail2ban is installed */ - system('which ip6tables', $retval); // Debian, Ubuntu, Fedora - if ($retval === 0) { - /* Get the data of the log */ - $data['output'] .= '<br><h2>ip6tables -S (ipv6)</h2>'.shell_exec('ip6tables -S'); + /* + * At this moment, there is no state (maybe later) + */ + $state = 'no_state'; + } else { + $state = 'no_state'; + $data = ''; + } - /* - * At this moment, there is no state (maybe later) - */ - $state = 'no_state'; - } else { - $state = 'no_state'; - $data = ''; - } - /* - * Return the Result - */ - $res['server_id'] = $server_id; - $res['type'] = $type; - $res['data'] = $data; - $res['state'] = $state; - return $res; - } + /* This monitoring is only available if fail2ban is installed */ + system('which ip6tables', $retval); // Debian, Ubuntu, Fedora + if ($retval === 0) { + /* Get the data of the log */ + $data['output'] .= '<br><h2>ip6tables -S (ipv6)</h2>'.shell_exec('ip6tables -S 2>/dev/null'); + + /* + * At this moment, there is no state (maybe later) + */ + $state = 'no_state'; + } else { + $state = 'no_state'; + $data = ''; + } + + /* + * Return the Result + */ + $res['server_id'] = $server_id; + $res['type'] = $type; + $res['data'] = $data; + $res['state'] = $state; + return $res; + } public function monitorSysLog() { global $app; @@ -1560,15 +1595,20 @@ * Now we have the last log in the array. * Check if the outdated-string is found... */ + $clamav_outdated_warning = false; + $clamav_bytecode_updated = false; foreach ($lastLog as $line) { - if (strpos(strtolower($line), 'outdated') !== false) { - /* - * Outdatet is only info, because if we set this to warning, the server is - * as long in state warning, as there is a new version of ClamAv which takes - * sometimes weeks! - */ - $state = $this->_setState($state, 'info'); + if (stristr($line,'outdated')) { + $clamav_outdated_warning = true; } + if(stristr($line,'main.cld is up to date')) { + $clamav_bytecode_updated = true; + } + } + + //* Warn when clamav is outdated and main.cld update failed. + if($clamav_outdated_warning == true && $clamav_bytecode_updated == false) { + $state = $this->_setState($state, 'info'); } /* @@ -1648,108 +1688,108 @@ } switch ($log) { - case 'log_mail': - if ($dist == 'debian') { - $logfile = '/var/log/mail.log'; - } elseif ($dist == 'redhat') { - $logfile = '/var/log/maillog'; - } elseif ($dist == 'suse') { - $logfile = '/var/log/mail.info'; - } elseif ($dist == 'gentoo') { - $logfile = '/var/log/maillog'; - } - break; - case 'log_mail_warn': - if ($dist == 'debian') { - $logfile = '/var/log/mail.warn'; - } elseif ($dist == 'redhat') { - $logfile = '/var/log/maillog'; - } elseif ($dist == 'suse') { - $logfile = '/var/log/mail.warn'; - } elseif ($dist == 'gentoo') { - $logfile = '/var/log/maillog'; - } - break; - case 'log_mail_err': - if ($dist == 'debian') { - $logfile = '/var/log/mail.err'; - } elseif ($dist == 'redhat') { - $logfile = '/var/log/maillog'; - } elseif ($dist == 'suse') { - $logfile = '/var/log/mail.err'; - } elseif ($dist == 'gentoo') { - $logfile = '/var/log/maillog'; - } - break; - case 'log_messages': - if ($dist == 'debian') { - $logfile = '/var/log/messages'; - } elseif ($dist == 'redhat') { - $logfile = '/var/log/messages'; - } elseif ($dist == 'suse') { - $logfile = '/var/log/messages'; - } elseif ($dist == 'gentoo') { - $logfile = '/var/log/messages'; - } - break; - case 'log_ispc_cron': - if ($dist == 'debian') { - $logfile = $conf['ispconfig_log_dir'] . '/cron.log'; - } elseif ($dist == 'redhat') { - $logfile = $conf['ispconfig_log_dir'] . '/cron.log'; - } elseif ($dist == 'suse') { - $logfile = $conf['ispconfig_log_dir'] . '/cron.log'; - } elseif ($dist == 'gentoo') { - $logfile = '/var/log/cron'; - } - break; - case 'log_freshclam': - if ($dist == 'debian') { - $logfile = '/var/log/clamav/freshclam.log'; - } elseif ($dist == 'redhat') { - $logfile = (is_file('/var/log/clamav/freshclam.log') ? '/var/log/clamav/freshclam.log' : '/var/log/freshclam.log'); - } elseif ($dist == 'suse') { - $logfile = '/var/log/freshclam.log'; - } elseif ($dist == 'gentoo') { - $logfile = '/var/log/clamav/freshclam.log'; - } - break; - case 'log_clamav': - if ($dist == 'debian') { - $logfile = '/var/log/clamav/clamav.log'; - } elseif ($dist == 'redhat') { - $logfile = (is_file('/var/log/clamav/clamd.log') ? '/var/log/clamav/clamd.log' : '/var/log/maillog'); - } elseif ($dist == 'suse') { - $logfile = '/var/log/clamd.log'; - } elseif ($dist == 'gentoo') { - $logfile = '/var/log/clamav/clamd.log'; - } - break; - case 'log_fail2ban': - if ($dist == 'debian') { - $logfile = '/var/log/fail2ban.log'; - } elseif ($dist == 'redhat') { - $logfile = '/var/log/fail2ban.log'; - } elseif ($dist == 'suse') { - $logfile = '/var/log/fail2ban.log'; - } elseif ($dist == 'gentoo') { - $logfile = '/var/log/fail2ban.log'; - } - break; - case 'log_ispconfig': - if ($dist == 'debian') { - $logfile = $conf['ispconfig_log_dir'] . '/ispconfig.log'; - } elseif ($dist == 'redhat') { - $logfile = $conf['ispconfig_log_dir'] . '/ispconfig.log'; - } elseif ($dist == 'suse') { - $logfile = $conf['ispconfig_log_dir'] . '/ispconfig.log'; - } elseif ($dist == 'gentoo') { - $logfile = $conf['ispconfig_log_dir'] . '/ispconfig.log'; - } - break; - default: - $logfile = ''; - break; + case 'log_mail': + if ($dist == 'debian') { + $logfile = '/var/log/mail.log'; + } elseif ($dist == 'redhat') { + $logfile = '/var/log/maillog'; + } elseif ($dist == 'suse') { + $logfile = '/var/log/mail.info'; + } elseif ($dist == 'gentoo') { + $logfile = '/var/log/maillog'; + } + break; + case 'log_mail_warn': + if ($dist == 'debian') { + $logfile = '/var/log/mail.warn'; + } elseif ($dist == 'redhat') { + $logfile = '/var/log/maillog'; + } elseif ($dist == 'suse') { + $logfile = '/var/log/mail.warn'; + } elseif ($dist == 'gentoo') { + $logfile = '/var/log/maillog'; + } + break; + case 'log_mail_err': + if ($dist == 'debian') { + $logfile = '/var/log/mail.err'; + } elseif ($dist == 'redhat') { + $logfile = '/var/log/maillog'; + } elseif ($dist == 'suse') { + $logfile = '/var/log/mail.err'; + } elseif ($dist == 'gentoo') { + $logfile = '/var/log/maillog'; + } + break; + case 'log_messages': + if ($dist == 'debian') { + $logfile = '/var/log/syslog'; + } elseif ($dist == 'redhat') { + $logfile = '/var/log/messages'; + } elseif ($dist == 'suse') { + $logfile = '/var/log/messages'; + } elseif ($dist == 'gentoo') { + $logfile = '/var/log/messages'; + } + break; + case 'log_ispc_cron': + if ($dist == 'debian') { + $logfile = $conf['ispconfig_log_dir'] . '/cron.log'; + } elseif ($dist == 'redhat') { + $logfile = $conf['ispconfig_log_dir'] . '/cron.log'; + } elseif ($dist == 'suse') { + $logfile = $conf['ispconfig_log_dir'] . '/cron.log'; + } elseif ($dist == 'gentoo') { + $logfile = '/var/log/cron'; + } + break; + case 'log_freshclam': + if ($dist == 'debian') { + $logfile = '/var/log/clamav/freshclam.log'; + } elseif ($dist == 'redhat') { + $logfile = (is_file('/var/log/clamav/freshclam.log') ? '/var/log/clamav/freshclam.log' : '/var/log/freshclam.log'); + } elseif ($dist == 'suse') { + $logfile = '/var/log/freshclam.log'; + } elseif ($dist == 'gentoo') { + $logfile = '/var/log/clamav/freshclam.log'; + } + break; + case 'log_clamav': + if ($dist == 'debian') { + $logfile = '/var/log/clamav/clamav.log'; + } elseif ($dist == 'redhat') { + $logfile = (is_file('/var/log/clamav/clamd.log') ? '/var/log/clamav/clamd.log' : '/var/log/maillog'); + } elseif ($dist == 'suse') { + $logfile = '/var/log/clamd.log'; + } elseif ($dist == 'gentoo') { + $logfile = '/var/log/clamav/clamd.log'; + } + break; + case 'log_fail2ban': + if ($dist == 'debian') { + $logfile = '/var/log/fail2ban.log'; + } elseif ($dist == 'redhat') { + $logfile = '/var/log/fail2ban.log'; + } elseif ($dist == 'suse') { + $logfile = '/var/log/fail2ban.log'; + } elseif ($dist == 'gentoo') { + $logfile = '/var/log/fail2ban.log'; + } + break; + case 'log_ispconfig': + if ($dist == 'debian') { + $logfile = $conf['ispconfig_log_dir'] . '/ispconfig.log'; + } elseif ($dist == 'redhat') { + $logfile = $conf['ispconfig_log_dir'] . '/ispconfig.log'; + } elseif ($dist == 'suse') { + $logfile = $conf['ispconfig_log_dir'] . '/ispconfig.log'; + } elseif ($dist == 'gentoo') { + $logfile = $conf['ispconfig_log_dir'] . '/ispconfig.log'; + } + break; + default: + $logfile = ''; + break; } // Getting the logfile content @@ -1856,39 +1896,39 @@ * Calculate the weight of the old state */ switch ($oldState) { - case 'no_state': $oldInt = 0; - break; - case 'ok': $oldInt = 1; - break; - case 'unknown': $oldInt = 2; - break; - case 'info': $oldInt = 3; - break; - case 'warning': $oldInt = 4; - break; - case 'critical': $oldInt = 5; - break; - case 'error': $oldInt = 6; - break; + case 'no_state': $oldInt = 0; + break; + case 'ok': $oldInt = 1; + break; + case 'unknown': $oldInt = 2; + break; + case 'info': $oldInt = 3; + break; + case 'warning': $oldInt = 4; + break; + case 'critical': $oldInt = 5; + break; + case 'error': $oldInt = 6; + break; } /* * Calculate the weight of the new state */ switch ($newState) { - case 'no_state': $newInt = 0; - break; - case 'ok': $newInt = 1; - break; - case 'unknown': $newInt = 2; - break; - case 'info': $newInt = 3; - break; - case 'warning': $newInt = 4; - break; - case 'critical': $newInt = 5; - break; - case 'error': $newInt = 6; - break; + case 'no_state': $newInt = 0; + break; + case 'ok': $newInt = 1; + break; + case 'unknown': $newInt = 2; + break; + case 'info': $newInt = 3; + break; + case 'warning': $newInt = 4; + break; + case 'critical': $newInt = 5; + break; + case 'error': $newInt = 6; + break; } /* @@ -1902,6 +1942,7 @@ } private function _getIntArray($line) { + /** The array of float found */ $res = array(); /* First build a array from the line */ @@ -1917,4 +1958,4 @@ } -?> \ No newline at end of file +?> -- Gitblit v1.9.1