Skip to content

Commit 7ae9f9d

Browse files
committed
Added monitoring module.
1 parent e326996 commit 7ae9f9d

File tree

8 files changed

+619
-0
lines changed

8 files changed

+619
-0
lines changed

interface/web/js/scrigo.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
redirect = '';
22

3+
function loadContentRefresh(pagename) {
4+
var pageContentCallbackRefresh = {
5+
success: function(o) {
6+
document.getElementById('pageContent').innerHTML = o.responseText;
7+
},
8+
failure: function(o) {
9+
alert('Ajax Request was not successful.');
10+
}
11+
}
12+
13+
if(document.getElementById('refreshinterval').value > 0) {
14+
var pageContentObject2 = YAHOO.util.Connect.asyncRequest('GET', pagename+"&refresh="+document.getElementById('refreshinterval').value, pageContentCallbackRefresh);
15+
setTimeout( "loadContentRefresh('"+pagename+"&refresh="+document.getElementById('refreshinterval').value+"')", document.getElementById('refreshinterval').value*1000 );
16+
}
17+
}
318

419
function capp(module) {
520
var cappCallback = {
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<?php
2+
?>
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<?php
2+
3+
$module["name"] = "monitor";
4+
$module["title"] = "Monitor";
5+
$module["template"] = "module.tpl.htm";
6+
$module["startpage"] = "monitor/system.php?mod=index";
7+
$module["tab_width"] = '';
8+
9+
/*
10+
Logmonitoring module
11+
*/
12+
13+
$items[] = array( 'title' => "Load",
14+
'target' => 'content',
15+
'link' => 'monitor/system.php?mod=load');
16+
17+
$items[] = array( 'title' => "Harddisk",
18+
'target' => 'content',
19+
'link' => 'monitor/system.php?mod=disk');
20+
21+
$items[] = array( 'title' => "Memory usage",
22+
'target' => 'content',
23+
'link' => 'monitor/system.php?mod=memusage');
24+
25+
$items[] = array( 'title' => "CPU",
26+
'target' => 'content',
27+
'link' => 'monitor/system.php?mod=cpu');
28+
29+
$items[] = array( 'title' => "Services",
30+
'target' => 'content',
31+
'link' => 'monitor/system.php?mod=services');
32+
33+
34+
$module["nav"][] = array( 'title' => 'System',
35+
'open' => 1,
36+
'items' => $items);
37+
38+
// aufräumen
39+
unset($items);
40+
41+
/*
42+
Logmonitoring module
43+
*/
44+
45+
$items[] = array( 'title' => "Mail log",
46+
'target' => 'content',
47+
'link' => 'monitor/logview.php?log=mail_log');
48+
49+
$items[] = array( 'title' => "Mail warn",
50+
'target' => 'content',
51+
'link' => 'monitor/logview.php?log=mail_warn');
52+
53+
$items[] = array( 'title' => "Mail err",
54+
'target' => 'content',
55+
'link' => 'monitor/logview.php?log=mail_err');
56+
57+
$items[] = array( 'title' => "Messages",
58+
'target' => 'content',
59+
'link' => 'monitor/logview.php?log=messages');
60+
61+
$items[] = array( 'title' => "Freshclam",
62+
'target' => 'content',
63+
'link' => 'monitor/logview.php?log=freshclam');
64+
65+
$items[] = array( 'title' => "Clamav",
66+
'target' => 'content',
67+
'link' => 'monitor/logview.php?log=clamav');
68+
69+
70+
$module["nav"][] = array( 'title' => 'Logfiles',
71+
'open' => 1,
72+
'items' => $items);
73+
74+
// aufräumen
75+
unset($items);
76+
?>

interface/web/monitor/logview.php

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
<?php
2+
3+
/*
4+
Copyright (c) 2007, Till Brehm, projektfarm Gmbh
5+
All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without modification,
8+
are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
* Neither the name of ISPConfig nor the names of its contributors
16+
may be used to endorse or promote products derived from this software without
17+
specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
require_once('../../lib/config.inc.php');
32+
require_once('../../lib/app.inc.php');
33+
34+
// Checke Berechtigungen für Modul
35+
if(!stristr($_SESSION["s"]["user"]["modules"],'monitor')) {
36+
header("Location: ../index.php");
37+
exit;
38+
}
39+
40+
// Loading the template
41+
$app->uses('tpl');
42+
$app->tpl->newTemplate("form.tpl.htm");
43+
$app->tpl->setInclude('content_tpl','templates/logview.htm');
44+
45+
// Importing the GET values
46+
$refresh = intval($_GET["refresh"]);
47+
$logfile_id = $_GET["log"];
48+
49+
// Creating the array with the refresh intervals
50+
$refresh_values = array('0' => '- No Refresh -','2' => '2','5' => '5','10' => '10','15' => '15','30' => '30','60' => '60');
51+
$tmp = '';
52+
foreach($refresh_values as $key => $val) {
53+
if($key == $refresh) {
54+
$tmp .= "<option value='$key' SELECTED>$val</option>";
55+
} else {
56+
$tmp .= "<option value='$key'>$val</option>";
57+
}
58+
}
59+
$app->tpl->setVar("refresh",$tmp);
60+
61+
// Selecting the logfile
62+
switch($logfile_id) {
63+
case 'mail_log':
64+
$logfile = '/var/log/mail.log';
65+
break;
66+
case 'mail_warn':
67+
$logfile = '/var/log/mail.warn';
68+
break;
69+
case 'mail_err':
70+
$logfile = '/var/log/mail.err';
71+
break;
72+
case 'messages':
73+
$logfile = '/var/log/messages';
74+
break;
75+
case 'freshclam':
76+
$logfile = '/var/log/clamav/freshclam.log';
77+
break;
78+
case 'clamav':
79+
$logfile = '/var/log/clamav/clamav.log';
80+
break;
81+
default:
82+
$logfile = '';
83+
break;
84+
}
85+
86+
// Getting the logfile content
87+
if($logfile != '') {
88+
$logfile = escapeshellcmd($logfile);
89+
if(stristr($logfile,';')) die('Logfile path error.');
90+
91+
$log = '';
92+
if(is_readable($logfile)) {
93+
if($fd = popen("tail -n 30 $logfile", 'r')) {
94+
while (!feof($fd)) {
95+
$log .= fgets($fd, 4096);
96+
$n++;
97+
if($n > 1000) break;
98+
}
99+
fclose($fd);
100+
}
101+
} else {
102+
$log = 'Unable to read '.$logfile;
103+
}
104+
}
105+
106+
$log = nl2br($log);
107+
108+
$app->tpl->setVar("log",$log);
109+
$app->tpl->setVar("logfile",$logfile);
110+
111+
112+
$app->tpl_defaults();
113+
$app->tpl->pparse();
114+
?>

0 commit comments

Comments
 (0)