From 0da99ab8674724662940fbdddd917f48892c250f Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Mon, 22 Jul 2013 07:14:10 -0400
Subject: [PATCH] - Integrated munin into Monitoring module.
---
interface/web/admin/lib/lang/de_server_config.lng | 5 +
interface/web/monitor/lib/lang/en.lng | 3 +
interface/web/monitor/templates/show_monit.htm | 2
interface/web/monitor/show_munin.php | 82 +++++++++++++++++++++++++++
interface/web/monitor/lib/lang/de.lng | 3 +
interface/web/admin/lib/lang/en_server_config.lng | 5 +
interface/web/monitor/templates/show_munin.htm | 10 +++
install/tpl/server.ini.master | 3 +
interface/web/monitor/lib/module.conf.php | 5 +
interface/web/admin/form/server_config.tform.php | 28 +++++++++
interface/web/admin/templates/server_config_server_edit.htm | 12 ++++
11 files changed, 157 insertions(+), 1 deletions(-)
diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index 81f7ae3..b822131 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -19,6 +19,9 @@
monit_url=
monit_user=
monit_password=
+munin_url=
+munin_user=
+munin_password=
[mail]
module=postfix_mysql
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index ef08bf5..c2adbdc 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -207,6 +207,34 @@
'width' => '40',
'maxlength' => '255'
),
+ 'munin_url' => array(
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'validators' => array ( 0 => array ( 'type' => 'REGEX',
+ 'regex' => '/^[0-9a-zA-Z\:\/\-\.\[\]]{0,255}$/',
+ 'errmsg'=> 'munin_url_error_regex'),
+ ),
+ 'value' => '',
+ 'width' => '40',
+ 'maxlength' => '255'
+ ),
+ 'munin_user' => array(
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '40',
+ 'maxlength' => '255'
+ ),
+ 'munin_password' => array(
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '40',
+ 'maxlength' => '255'
+ ),
##################################
# ENDE Datatable fields
##################################
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 10ea815..b6f1051 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -183,4 +183,9 @@
$wb['monit_password_txt'] = 'Monit-Passwort';
$wb['monit_url_error_regex'] = 'Ungültige Monit-URL';
$wb['monit_url_note_txt'] = 'Platzhalter:';
+$wb['munin_url_txt'] = 'Munin-URL';
+$wb['munin_user_txt'] = 'Munin-Benutzer';
+$wb['munin_password_txt'] = 'Munin-Passwort';
+$wb['munin_url_error_regex'] = 'Ungültige Munin-URL';
+$wb['munin_url_note_txt'] = 'Platzhalter:';
?>
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 37bd389..36a6791 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -183,4 +183,9 @@
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
+$wb['munin_url_txt'] = 'Munin URL';
+$wb['munin_user_txt'] = 'Munin User';
+$wb['munin_password_txt'] = 'Munin Password';
+$wb['munin_url_error_regex'] = 'Invalid Munin URL';
+$wb['munin_url_note_txt'] = 'Placeholder:';
?>
diff --git a/interface/web/admin/templates/server_config_server_edit.htm b/interface/web/admin/templates/server_config_server_edit.htm
index 3de1453..93158d7 100644
--- a/interface/web/admin/templates/server_config_server_edit.htm
+++ b/interface/web/admin/templates/server_config_server_edit.htm
@@ -77,6 +77,18 @@
<label for="monit_password">{tmpl_var name='monit_password_txt'}</label>
<input name="monit_password" id="monit_password" value="{tmpl_var name='monit_password'}" size="40" maxlength="255" type="text" class="textInput" />
</div>
+ <div class="ctrlHolder">
+ <label for="munin_url">{tmpl_var name='munin_url_txt'}</label>
+ <input name="munin_url" id="munin_url" value="{tmpl_var name='munin_url'}" size="40" maxlength="255" type="text" class="textInput" /> {tmpl_var name='munin_url_note_txt'} <a href="javascript:void(0);" class="addPlaceholder">[SERVERNAME]</a>
+ </div>
+ <div class="ctrlHolder">
+ <label for="munin_user">{tmpl_var name='munin_user_txt'}</label>
+ <input name="munin_user" id="munin_user" value="{tmpl_var name='munin_user'}" size="40" maxlength="255" type="text" class="textInput" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="munin_password">{tmpl_var name='munin_password_txt'}</label>
+ <input name="munin_password" id="munin_password" value="{tmpl_var name='munin_password'}" size="40" maxlength="255" type="text" class="textInput" />
+ </div>
</fieldset>
<input type="hidden" name="id" value="{tmpl_var name='id'}">
diff --git a/interface/web/monitor/lib/lang/de.lng b/interface/web/monitor/lib/lang/de.lng
index 4b62cd3..cf9621f 100644
--- a/interface/web/monitor/lib/lang/de.lng
+++ b/interface/web/monitor/lib/lang/de.lng
@@ -149,4 +149,7 @@
$wb['Show Monit'] = 'Monit anzeigen';
$wb['no_monit_url_defined_txt'] = 'Keine Monit-URL definiert.';
$wb['no_permissions_to_view_monit_txt'] = 'Sie haben nicht die Berechtigung, auf Monit zuzugreifen.';
+$wb['Show Munin'] = 'Munin anzeigen';
+$wb['no_munin_url_defined_txt'] = 'Keine Munin-URL definiert.';
+$wb['no_permissions_to_view_munin_txt'] = 'Sie haben nicht die Berechtigung, auf Munin zuzugreifen.';
?>
diff --git a/interface/web/monitor/lib/lang/en.lng b/interface/web/monitor/lib/lang/en.lng
index 2596369..20cf1fb 100644
--- a/interface/web/monitor/lib/lang/en.lng
+++ b/interface/web/monitor/lib/lang/en.lng
@@ -149,4 +149,7 @@
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
+$wb['Show Munin'] = 'Show Munin';
+$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
+$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
diff --git a/interface/web/monitor/lib/module.conf.php b/interface/web/monitor/lib/module.conf.php
index dc99001..1d4e5e1 100644
--- a/interface/web/monitor/lib/module.conf.php
+++ b/interface/web/monitor/lib/module.conf.php
@@ -125,6 +125,11 @@
'target' => 'content',
'link' => 'monitor/show_data.php?type=openvz_beancounter',
'html_id' => 'openvz_beancounter');
+
+$items[] = array( 'title' => "Show Munin",
+ 'target' => 'content',
+ 'link' => 'monitor/show_munin.php',
+ 'html_id' => 'monit');
$module["nav"][] = array( 'title' => 'Server State',
'open' => 1,
diff --git a/interface/web/monitor/show_munin.php b/interface/web/monitor/show_munin.php
new file mode 100644
index 0000000..b193d58
--- /dev/null
+++ b/interface/web/monitor/show_munin.php
@@ -0,0 +1,82 @@
+<?php
+
+/*
+Copyright (c) 2007-2008, 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:
+
+ * Redistributions of source code must retain the above copyright notice,
+ 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.
+ * 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.
+
+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.
+*/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+//* Check permissions for module
+$app->auth->check_module_permissions('monitor');
+
+$app->uses('tools_monitor');
+
+// Loading the template
+$app->uses('tpl');
+$app->tpl->newTemplate("form.tpl.htm");
+$app->tpl->setInclude('content_tpl', 'templates/show_munin.htm');
+
+$monTransSrv = $app->lng("monitor_settings_server_txt");
+$title = 'Munin ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')';
+
+$app->tpl->setVar("list_head_txt", $title);
+
+if($_SESSION["s"]["user"]["typ"] == 'admin'){
+
+ $app->uses('getconf');
+ $server_config = $app->getconf->get_server_config($_SESSION['monitor']['server_id'],'server');
+
+ $munin_url = trim($server_config['munin_url']);
+ if($munin_url != ''){
+ $munin_url = str_replace('[SERVERNAME]', $_SESSION['monitor']['server_name'], $munin_url);
+ $munin_user = trim($server_config['munin_user']);
+ $munin_password = trim($server_config['munin_password']);
+ $auth_string = '';
+ if($munin_user != ''){
+ $auth_string = $munin_user;
+ }
+ if($munin_user != '' && $munin_password != ''){
+ $auth_string .= ':'.$munin_password;
+ }
+ if($auth_string != '') $auth_string .= '@';
+
+ $munin_url_parts = parse_url($munin_url);
+
+ $munin_url = $munin_url_parts['scheme'].'://'.$auth_string.$munin_url_parts['host'].(isset($munin_url_parts['port']) ? ':' . $munin_url_parts['port'] : '').(isset($munin_url_parts['path']) ? $munin_url_parts['path'] : '').(isset($munin_url_parts['query']) ? '?' . $munin_url_parts['query'] : '').(isset($munin_url_parts['fragment']) ? '#' . $munin_url_parts['fragment'] : '');
+
+ $app->tpl->setVar("munin_url", $munin_url);
+ } else {
+ $app->tpl->setVar("no_munin_url_defined_txt", $app->lng("no_munin_url_defined_txt"));
+ }
+} else {
+ $app->tpl->setVar("no_permissions_to_view_munin_txt", $app->lng("no_permissions_to_view_munin_txt"));
+}
+
+$app->tpl_defaults();
+$app->tpl->pparse();
+?>
diff --git a/interface/web/monitor/templates/show_monit.htm b/interface/web/monitor/templates/show_monit.htm
index e0a2923..27265bd 100644
--- a/interface/web/monitor/templates/show_monit.htm
+++ b/interface/web/monitor/templates/show_monit.htm
@@ -3,7 +3,7 @@
<div class="panel panel_system">
<tmpl_if name='monit_url'>
- <iframe src="{tmpl_var name="monit_url"}" width="100%" height="1000" frameborder="0" style="overflow:visible;"></iframe>
+ <iframe src="{tmpl_var name='monit_url'}" width="100%" height="1000" frameborder="0" style="overflow:visible;"></iframe>
<tmpl_else>
<div id="errorMsg"><h3>ERROR</h3><ol><li>{tmpl_var name="no_monit_url_defined_txt"} {tmpl_var name="no_permissions_to_view_monit_txt"}<br></li></ol></div>
</tmpl_if>
diff --git a/interface/web/monitor/templates/show_munin.htm b/interface/web/monitor/templates/show_munin.htm
new file mode 100644
index 0000000..86d33f1
--- /dev/null
+++ b/interface/web/monitor/templates/show_munin.htm
@@ -0,0 +1,10 @@
+<h2><tmpl_var name="list_head_txt"></h2>
+<p><tmpl_var name="list_desc_txt"></p>
+
+<div class="panel panel_system">
+<tmpl_if name='munin_url'>
+ <iframe src="{tmpl_var name='munin_url'}" width="100%" height="1000" frameborder="0" style="overflow:visible;"></iframe>
+<tmpl_else>
+ <div id="errorMsg"><h3>ERROR</h3><ol><li>{tmpl_var name="no_munin_url_defined_txt"} {tmpl_var name="no_permissions_to_view_munin_txt"}<br></li></ol></div>
+</tmpl_if>
+</div>
\ No newline at end of file
--
Gitblit v1.9.1