From: <abe...@us...> - 2014-12-17 16:03:58
|
Revision: 6856 http://sourceforge.net/p/astlinux/code/6856 Author: abelbeck Date: 2014-12-17 16:03:55 +0000 (Wed, 17 Dec 2014) Log Message: ----------- web interface, add Monit support Modified Paths: -------------- branches/1.0/package/webinterface/altweb/admin/dnscrypt.php branches/1.0/package/webinterface/altweb/admin/edit.php branches/1.0/package/webinterface/altweb/admin/network.php branches/1.0/package/webinterface/altweb/admin/prefs.php branches/1.0/package/webinterface/altweb/admin/system.php branches/1.0/package/webinterface/altweb/common/header.php branches/1.0/package/webinterface/altweb/common/license-packages.txt branches/1.0/package/webinterface/altweb/common/version.php Added Paths: ----------- branches/1.0/package/webinterface/altweb/admin/monit.php branches/1.0/package/webinterface/altweb/admin/monitconfig.php Modified: branches/1.0/package/webinterface/altweb/admin/dnscrypt.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/dnscrypt.php 2014-12-16 17:31:11 UTC (rev 6855) +++ branches/1.0/package/webinterface/altweb/admin/dnscrypt.php 2014-12-17 16:03:55 UTC (rev 6856) @@ -118,7 +118,7 @@ <table width="100%" class="stdtable"> <tr><td style="text-align: center;" colspan="2"> <h2>DNSCrypt Proxy Server Configuration:</h2> - </td></tr><tr><td width="240" style="text-align: center;"> + </td></tr><tr><td width="280" style="text-align: center;"> <input type="submit" class="formbtn" value="Save Settings" name="submit_save" /> </td><td class="dialogText" style="text-align: center;"> <input type="submit" class="formbtn" value="Restart DNSCrypt" name="submit_restart" /> Modified: branches/1.0/package/webinterface/altweb/admin/edit.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/edit.php 2014-12-16 17:31:11 UTC (rev 6855) +++ branches/1.0/package/webinterface/altweb/admin/edit.php 2014-12-17 16:03:55 UTC (rev 6856) @@ -31,6 +31,7 @@ 'pptpd' => 'Restart PPTP VPN Server', 'ldap' => 'Reload LDAP Client', 'slapd' => 'Restart LDAP Server', + 'monit' => 'Restart Monit Monitor', 'darkstat' => 'Restart NetStat Server', 'snmpd' => 'Restart SNMP Server', 'stunnel' => 'Restart Stunnel Proxy', @@ -250,6 +251,8 @@ $result = restartPROCESS($process, 44, $result, 'init'); } elseif ($process === 'kamailio') { $result = restartPROCESS($process, 45, $result, 'init'); + } elseif ($process === 'monit') { + $result = restartPROCESS($process, 46, $result, 'init'); } elseif ($process === 'cron') { $result = updateCRON('root', 30, $result); } @@ -292,6 +295,8 @@ $dir === '/mnt/kd/snmp' || $dir === '/mnt/kd/fop2' || $dir === '/mnt/kd/kamailio' || + $dir === '/mnt/kd/monit' || + $dir === '/mnt/kd/monit/monit.d' || $dir === '/mnt/kd/ups' || $dir === '/mnt/kd/prosody' || $dir === '/mnt/kd/docs' || @@ -382,6 +387,8 @@ putHtml('<p style="color: green;">NetStat Server (darkstat)'.statusPROCESS('darkstat').'.</p>'); } elseif ($result == 45) { putHtml('<p style="color: green;">Kamailio SIP Server'.statusPROCESS('kamailio').'.</p>'); + } elseif ($result == 46) { + putHtml('<p style="color: green;">Monit Monitoring'.statusPROCESS('monit').'.</p>'); } elseif ($result == 99) { putHtml('<p style="color: red;">Action Failed.</p>'); } elseif ($result == 999) { @@ -560,6 +567,20 @@ } putHtml('</optgroup>'); } + if (is_dir('/mnt/kd/monit/monit.d') && count($globfiles = glob('/mnt/kd/monit/monit.d/*')) > 0) { + putHtml('<optgroup label="———— Monit Monitoring Configs ————">'); + foreach ($globfiles as $globfile) { + if (is_file($globfile) && is_writable($globfile)) { + $sel = ($globfile === $openfile) ? ' selected="selected"' : ''; + putHtml('<option value="'.$globfile.'"'.$sel.'>monit.d/'.basename($globfile).' - Monit Configuration</option>'); + } + } + if (is_writable($file = '/mnt/kd/monit/monitrc')) { + $sel = ($file === $openfile) ? ' selected="selected"' : ''; + putHtml('<option value="'.$file.'"'.$sel.'>'.basename($file).' - Monit Base Configuration</option>'); + } + putHtml('</optgroup>'); + } if (is_dir('/mnt/kd/docs') && count($globfiles = glob('/mnt/kd/docs/*')) > 0) { putHtml('<optgroup label="———— Documentation ————">'); foreach ($globfiles as $globfile) { Added: branches/1.0/package/webinterface/altweb/admin/monit.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/monit.php (rev 0) +++ branches/1.0/package/webinterface/altweb/admin/monit.php 2014-12-17 16:03:55 UTC (rev 6856) @@ -0,0 +1,73 @@ +<?php + +// Copyright (C) 2014 Lonnie Abelbeck +// This is free software, licensed under the GNU General Public License +// version 3 as published by the Free Software Foundation; you can +// redistribute it and/or modify it under the terms of the GNU +// General Public License; and comes with ABSOLUTELY NO WARRANTY. + +// monit.php for AstLinux +// 12-16-2014 +// + +$myself = $_SERVER['PHP_SELF']; + +require_once '../common/functions.php'; + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $result = 1; + if (! $global_admin) { + $result = 999; + } + header('Location: '.$myself.'?result='.$result); + exit; +} else { // Start of HTTP GET +$ACCESS_RIGHTS = 'admin'; +require_once '../common/header.php'; + + putHtml("<center>"); + putHtml('<p> </p>'); + putHtml("</center>"); +?> + <script language="JavaScript" type="text/javascript"> + //<![CDATA[ + + function setIFheight() { + var iframe = document.getElementById("monit"); + var winH = 460; + if (document.documentElement && document.documentElement.offsetHeight) { + winH = document.documentElement.offsetHeight; + } + if (window.innerHeight) { + winH = window.innerHeight; + } + var offset = 160; + if (iframe.getBoundingClientRect) { + offset = iframe.getBoundingClientRect().top + 22; + } + + iframe.height = winH - offset; + window.onresize = setIFheight; + } + //]]> + </script> + <center> + <table class="layoutNOpad" width="100%"><tr><td><center> +<?php + + putHtml('<table class="stdtable" width="100%"><tr><td style="text-align: center;">'); + if (is_file('/var/run/monit.pid')) { + echo '<iframe id="monit" src="/admin/monit/" frameborder="1" width="100%" onload="setIFheight();">'; + putHtml('</iframe>'); + } elseif (! is_file('/etc/init.d/monit')) { + putHtml('<p style="color: red;">Monit is not available on your AstLinux image.</p>'); + } else { + putHtml('<p style="color: red;">The Monit Server is not running, enable via the Network Tab.</p>'); + } + putHtml('</td></tr></table>'); + putHtml("</center></td></tr></table>"); + putHtml("</center>"); +} // End of HTTP GET +require_once '../common/footer.php'; + +?> Property changes on: branches/1.0/package/webinterface/altweb/admin/monit.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: branches/1.0/package/webinterface/altweb/admin/monitconfig.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/monitconfig.php (rev 0) +++ branches/1.0/package/webinterface/altweb/admin/monitconfig.php 2014-12-17 16:03:55 UTC (rev 6856) @@ -0,0 +1,161 @@ +<?php + +// Copyright (C) 2014 Lonnie Abelbeck +// This is free software, licensed under the GNU General Public License +// version 3 as published by the Free Software Foundation; you can +// redistribute it and/or modify it under the terms of the GNU +// General Public License; and comes with ABSOLUTELY NO WARRANTY. + +// monitconfig.php for AstLinux +// 12-16-2014 +// +// System location of rc.conf file +$CONFFILE = '/etc/rc.conf'; +// System location of /mnt/kd/rc.conf.d directory +$MONITCONFDIR = '/mnt/kd/rc.conf.d'; +// System location of gui.monit.conf file +$MONITCONFFILE = '/mnt/kd/rc.conf.d/gui.monit.conf'; + +$myself = $_SERVER['PHP_SELF']; + +require_once '../common/functions.php'; + +// Function: saveMONITsettings +// +function saveMONITsettings($conf_dir, $conf_file) { + + $result = 11; + + if (! is_dir($conf_dir)) { + return(3); + } + if (($fp = @fopen($conf_file,"wb")) === FALSE) { + return(3); + } + fwrite($fp, "### gui.monit.conf - start ###\n###\n"); + + $value = 'MONIT_SERVER="'.$_POST['monit_server'].'"'; + fwrite($fp, "### Monit Server\n".$value."\n"); + + fwrite($fp, "### Notifications\n"); + $value = 'MONIT_NOTIFY="'.tuq($_POST['monit_notify']).'"'; + fwrite($fp, $value."\n"); + + $value = 'MONIT_NOTIFY_FROM="'.tuq($_POST['monit_notify_from']).'"'; + fwrite($fp, $value."\n"); + + fwrite($fp, "### gui.monit.conf - end ###\n"); + fclose($fp); + + return($result); +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $result = 1; + if (! $global_admin) { + $result = 999; + } elseif (isset($_POST['submit_save'])) { + $result = saveMONITsettings($MONITCONFDIR, $MONITCONFFILE); + } elseif (isset($_POST['submit_restart'])) { + $result = 99; + if (isset($_POST['confirm_restart'])) { + $result = restartPROCESS('monit', 10, $result, 'init'); + } else { + $result = 2; + } + } + header('Location: '.$myself.'?result='.$result); + exit; +} else { // Start of HTTP GET +$ACCESS_RIGHTS = 'admin'; +require_once '../common/header.php'; + + if (is_file($MONITCONFFILE)) { + $db = parseRCconf($MONITCONFFILE); + $cur_db = parseRCconf($CONFFILE); + } else { + $db = parseRCconf($CONFFILE); + $cur_db = NULL; + } + + putHtml("<center>"); + if (isset($_GET['result'])) { + $result = $_GET['result']; + if ($result == 2) { + putHtml('<p style="color: red;">No Action, check "Confirm" for this action.</p>'); + } elseif ($result == 3) { + putHtml('<p style="color: red;">Error creating file.</p>'); + } elseif ($result == 10) { + putHtml('<p style="color: green;">Monit Monitoring'.statusPROCESS('monit').'.</p>'); + } elseif ($result == 11) { + putHtml('<p style="color: green;">Settings saved, click "Restart Monit" to apply any changed settings.</p>'); + } elseif ($result == 99) { + putHtml('<p style="color: red;">Action Failed.</p>'); + } elseif ($result == 999) { + putHtml('<p style="color: red;">Permission denied for user "'.$global_user.'".</p>'); + } else { + putHtml('<p style="color: orange;">No Action.</p>'); + } + } else { + putHtml('<p> </p>'); + } + putHtml("</center>"); +?> + <center> + <table class="layout"><tr><td><center> + <form method="post" action="<?php echo $myself;?>"> + <table width="100%" class="stdtable"> + <tr><td style="text-align: center;" colspan="2"> + <h2>Monit Monitoring Configuration:</h2> + </td></tr><tr><td width="280" style="text-align: center;"> + <input type="submit" class="formbtn" value="Save Settings" name="submit_save" /> + </td><td class="dialogText" style="text-align: center;"> + <input type="submit" class="formbtn" value="Restart Monit" name="submit_restart" /> + – + <input type="checkbox" value="restart" name="confirm_restart" /> Confirm + </td></tr></table> + <table class="stdtable"> + <tr class="dtrow0"><td width="60"> </td><td width="100"> </td><td width="100"> </td><td> </td><td width="100"> </td><td width="80"> </td></tr> +<?php + putHtml('<tr class="dtrow0"><td class="dialogText" style="text-align: left;" colspan="6">'); + putHtml('<strong>Monit Server:</strong>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Monitoring:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $monit_server = getVARdef($db, 'MONIT_SERVER', $cur_db); + putHtml('<select name="monit_server">'); + putHtml('<option value="no">disabled</option>'); + $sel = ($monit_server === 'yes') ? ' selected="selected"' : ''; + putHtml('<option value="yes"'.$sel.'>enabled</option>'); + putHtml('</select>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow0"><td class="dialogText" style="text-align: left;" colspan="6">'); + putHtml('<strong>Monit Notifications:</strong>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Email Address To:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'MONIT_NOTIFY', $cur_db); + putHtml('<input type="text" size="72" maxlength="256" value="'.$value.'" name="monit_notify" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Email Address From:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'MONIT_NOTIFY_FROM', $cur_db); + putHtml('<input type="text" size="36" maxlength="128" value="'.$value.'" name="monit_notify_from" />'); + putHtml('</td></tr>'); + + putHtml('</table>'); + putHtml('</form>'); + + putHtml('</center></td></tr></table>'); + putHtml('</center>'); +} // End of HTTP GET +require_once '../common/footer.php'; + +?> Property changes on: branches/1.0/package/webinterface/altweb/admin/monitconfig.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Modified: branches/1.0/package/webinterface/altweb/admin/network.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/network.php 2014-12-16 17:31:11 UTC (rev 6855) +++ branches/1.0/package/webinterface/altweb/admin/network.php 2014-12-17 16:03:55 UTC (rev 6856) @@ -34,6 +34,7 @@ // 09-23-2013, Added ddclient support // 10-21-2013, Added LDAP server support // 01-04-2014, Added NUT UPS Monitoring support +// 12-16-2014, Added Monit Monitoring support // // System location of rc.conf file $CONFFILE = '/etc/rc.conf'; @@ -900,6 +901,10 @@ header('Location: /admin/edit.php?file='.$file); exit; } + } elseif (isset($_POST['submit_monit'])) { + $result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE); + header('Location: /admin/monitconfig.php'); + exit; } elseif (isset($_POST['submit_zabbix'])) { $result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE); header('Location: /admin/zabbix.php'); @@ -1025,6 +1030,8 @@ $result = restartPROCESS($process, 44, $result, 'init'); } elseif ($process === 'kamailio') { $result = restartPROCESS($process, 45, $result, 'init'); + } elseif ($process === 'monit') { + $result = restartPROCESS($process, 46, $result, 'init'); } } else { $result = 2; @@ -1113,6 +1120,8 @@ putHtml('<p style="color: green;">NetStat Server (darkstat)'.statusPROCESS('darkstat').'.</p>'); } elseif ($result == 45) { putHtml('<p style="color: green;">Kamailio SIP Server'.statusPROCESS('kamailio').'.</p>'); + } elseif ($result == 46) { + putHtml('<p style="color: green;">Monit Monitoring'.statusPROCESS('monit').'.</p>'); } elseif ($result == 99) { putHtml('<p style="color: red;">Action Failed.</p>'); } elseif ($result == 100) { @@ -1194,6 +1203,8 @@ putHtml('<option value="ldap"'.$sel.'>Reload LDAP Client</option>'); $sel = ($reboot_restart === 'slapd') ? ' selected="selected"' : ''; putHtml('<option value="slapd"'.$sel.'>Restart LDAP Server</option>'); + $sel = ($reboot_restart === 'monit') ? ' selected="selected"' : ''; + putHtml('<option value="monit"'.$sel.'>Restart Monit Monitor</option>'); $sel = ($reboot_restart === 'darkstat') ? ' selected="selected"' : ''; putHtml('<option value="darkstat"'.$sel.'>Restart NetStat Server</option>'); $sel = ($reboot_restart === 'snmpd') ? ' selected="selected"' : ''; @@ -1644,6 +1655,11 @@ putHtml('SNMP Agent Server:'); putHtml('<input type="submit" value="Configure SNMP Agent" name="submit_snmp_agent" class="button" /></td></tr>'); } + if (is_file('/etc/init.d/monit')) { + putHtml('<tr class="dtrow1"><td style="text-align: left;" colspan="6">'); + putHtml('Monit Monitoring:'); + putHtml('<input type="submit" value="Configure Monit" name="submit_monit" class="button" /></td></tr>'); + } if (is_file('/etc/init.d/zabbix')) { putHtml('<tr class="dtrow1"><td style="text-align: left;" colspan="6">'); putHtml('Zabbix Monitoring:'); Modified: branches/1.0/package/webinterface/altweb/admin/prefs.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/prefs.php 2014-12-16 17:31:11 UTC (rev 6855) +++ branches/1.0/package/webinterface/altweb/admin/prefs.php 2014-12-17 16:03:55 UTC (rev 6856) @@ -18,6 +18,7 @@ // 01-20-2013, Added Show XMPP Server Status // 09-06-2013, Added Edit Tab Shortcut support // 09-04-2014, Added Show Kamailio SIP Server Status +// 12-16-2014, Added Show Monit Tab // $myself = $_SERVER['PHP_SELF']; @@ -499,6 +500,10 @@ $value = 'tab_netstat_show = yes'; fwrite($fp, $value."\n"); } + if (isset($_POST['tab_monit'])) { + $value = 'tab_monit_show = yes'; + fwrite($fp, $value."\n"); + } if (! isset($_POST['tab_staff'])) { $value = 'tab_staff_disable_staff = yes'; fwrite($fp, $value."\n"); @@ -1180,6 +1185,10 @@ putHtml('<input type="checkbox" value="tab_netstat" name="tab_netstat"'.$sel.' /></td><td colspan="5">Show NetStat Tab</td></tr>'); putHtml('<tr class="dtrow1"><td style="text-align: right;">'); + $sel = (getPREFdef($global_prefs, 'tab_monit_show') === 'yes') ? ' checked="checked"' : ''; + putHtml('<input type="checkbox" value="tab_monit" name="tab_monit"'.$sel.' /></td><td colspan="5">Show Monit Tab</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;">'); $sel = (getPREFdef($global_prefs, 'tab_network_show') !== 'no') ? ' checked="checked"' : ''; putHtml('<input type="checkbox" value="tab_network" name="tab_network"'.$sel.' /></td><td colspan="5">Show Network Tab</td></tr>'); Modified: branches/1.0/package/webinterface/altweb/admin/system.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/system.php 2014-12-16 17:31:11 UTC (rev 6855) +++ branches/1.0/package/webinterface/altweb/admin/system.php 2014-12-17 16:03:55 UTC (rev 6856) @@ -196,7 +196,7 @@ $srcfile .= ' -e "s/^blocked-hosts$/&/p" -e "s/^dnsmasq.static$/&/p" -e "s/^hosts$/&/p" -e "s/^ethers$/&/p"'; $srcfile .= ' -e "s/^rc.local$/&/p" -e "s/^rc.local.stop$/&/p" -e "s/^rc.elocal$/&/p" -e "s/^rc.ledcontrol$/&/p"'; $srcfile .= ' -e "s/^wan-failover.script$/&/p"'; - $srcfile .= ' -e "s/^crontabs$/&/p" -e "s/^snmp$/&/p" -e "s/^fop2$/&/p" -e "s/^kamailio$/&/p"'; + $srcfile .= ' -e "s/^crontabs$/&/p" -e "s/^snmp$/&/p" -e "s/^fop2$/&/p" -e "s/^kamailio$/&/p" -e "s/^monit$/&/p"'; $srcfile .= ' -e "s/^openvpn$/&/p" -e "s/^ipsec$/&/p" -e "s/^dahdi$/&/p" -e "s/^ssl$/&/p" -e "s/^ups$/&/p")'; $srcfile .= $firewall; $srcfile .= $templates; Modified: branches/1.0/package/webinterface/altweb/common/header.php =================================================================== --- branches/1.0/package/webinterface/altweb/common/header.php 2014-12-16 17:31:11 UTC (rev 6855) +++ branches/1.0/package/webinterface/altweb/common/header.php 2014-12-17 16:03:55 UTC (rev 6856) @@ -258,6 +258,9 @@ } } } + if ($global_admin && (getPREFdef($global_prefs, 'tab_monit_show') === 'yes')) { + putHtml('<li><a href="/admin/monit.php"><span>Monit</span></a></li>'); + } if ($global_admin && (getPREFdef($global_prefs, 'tab_network_show') !== 'no')) { putHtml('<li><a href="/admin/network.php"><span>Network</span></a></li>'); } Modified: branches/1.0/package/webinterface/altweb/common/license-packages.txt =================================================================== --- branches/1.0/package/webinterface/altweb/common/license-packages.txt 2014-12-16 17:31:11 UTC (rev 6855) +++ branches/1.0/package/webinterface/altweb/common/license-packages.txt 2014-12-17 16:03:55 UTC (rev 6856) @@ -52,3 +52,4 @@ libsodium~Copyright (c) 2013-2014 Frank Denis phoneprov-tools~Copyright (c) 2014 Lonnie Abelbeck and Michael Keuter. smartmontools~Copyright (c) 2002-2014, Bruce Allen, Christian Franke, et al. +Monit~Copyright (c) 2001-2014, Tildeslash. All rights reserved Modified: branches/1.0/package/webinterface/altweb/common/version.php =================================================================== --- branches/1.0/package/webinterface/altweb/common/version.php 2014-12-16 17:31:11 UTC (rev 6855) +++ branches/1.0/package/webinterface/altweb/common/version.php 2014-12-17 16:03:55 UTC (rev 6856) @@ -1,6 +1,6 @@ <?php // version.php for AstLinux Alternate Web Interface -$GUI_VERSION = '1.8.31'; +$GUI_VERSION = '1.8.32'; ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |