We have done this with some custom asp code. Not that hard really.
Add a button to a device which sets some string (ie: "Maintenance
Enabled") to say the Info2 field. Make sure that Info2 not being used
for anything else.
In all of the display pages including top level, map view, device view
- check to see if the string "Maintenance Enabled" is there and use
If..then..else blocks to change colors (we use orange) to illustrate
the alerting is disabled. Use the %ALERTSET% to disable alerts.
For example, the code to change to Maintenance Enabled would be...
<HTML>
<HEAD>
<%include% StandardPageHeader.asp>
<TITLE>WhatsUp Gold - Maintenance</TITLE>
<%CURRENT_MAP% (%URL_VALUE% map)>
<%CURRENT_DEVICE% (%URL_VALUE% device)>
<meta http-equiv="Refresh"
content="1; URL=Device.asp?map=<%URL_ENCODE% (%MAP%
FILENAME)>&device=<%URL_ENCODE% (%DEVICE% UNIQUE_ID)>">
</HEAD>
<BODY>
<h3><FONT COLOR="#ff4433"><%DEVICE% DISPLAY_NAME></FONT> is being put
into Maintenance Mode.<P>All alerts disabled.</h3>
<%ALERTSET% (ALERTS_ENABLED,0)>
<%DEVICESET% (INFO_LINE_2, *** Maintenance Enabled ***>
<%LOG_USER_EVENT% LOG_CHANGED_HOST>
</BODY></HTML>
And the code to remove would be..
<HTML>
<HEAD>
<%include% StandardPageHeader.asp>
<TITLE>WhatsUp Gold - Maintenance</TITLE>
<%CURRENT_MAP% (%URL_VALUE% map)>
<%CURRENT_DEVICE% (%URL_VALUE% device)>
<meta http-equiv="Refresh"
content="1; URL=Device.asp?map=<%URL_ENCODE% (%MAP%
FILENAME)>&device=<%URL_ENCODE% (%DEVICE% UNIQUE_ID)>">
</HEAD>
<BODY>
<h3><FONT COLOR="#ff4433"><%DEVICE% DISPLAY_NAME></FONT> is being
removed from Maintenance Mode.<P>All alerts will be reinstated.</h3>
<%ALERTSET% (ALERTS_ENABLED,1)>
<%DEVICESET% (INFO_LINE_2, >
<%LOG_USER_EVENT% LOG_CHANGED_HOST>
</BODY></HTML>
Works like a charm for us where we have 3+ geographically-dispersed
Network Operations Centers.
-Jason
By the way - I am dissapointed that not more people share custom pages
- so here is my favorite - a combination of code put together over the
past several years... I call it my AllDown page which only shows
devices, services that are in exception, plus any maintenance items...
<%include% StandardPageHeader.asp>
<html>
<head>
<TITLE>Network Issues</TITLE>
<META http-equiv="REFRESH" content="60">
</HEAD>
<body onLoad="goforit()">
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"
SRC="wugjavascript.js"></SCRIPT>
<LINK REL="stylesheet" type="text/css" href="wugstyle.css">
<SCRIPT>
var dayarray=new
Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
var montharray=new
Array("January","February","March","April","May","June","July","August","September","October","November","December")
function getthedate(){
var mydate=new Date()
var year=mydate.getYear()
if (year < 1000)
year+=1900
var day=mydate.getDay()
var month=mydate.getMonth()
var daym=mydate.getDate()
if (daym<10)
daym="0"+daym
var hours=mydate.getHours()
var minutes=mydate.getMinutes()
var seconds=mydate.getSeconds()
var dn="AM"
if (hours>=12)
dn="PM"
if (hours>12){
hours=hours-12
}
if (hours==0)
hours=12
if (minutes<=9)
minutes="0"+minutes
if (seconds<=9)
seconds="0"+seconds
//change font size here
var cdate=dayarray[day]+", "+montharray[month]+" "+daym+",
"+year+"<br><b>"+hours+":"+minutes+":"+seconds+" "+dn+"</b>"
if (document.all)
document.all.clock.innerHTML=cdate
else if (document.getElementById)
document.getElementById("clock").innerHTML=cdate
else
document.write(cdate)
}
if (!document.all&&!document.getElementById)
getthedate()
function goforit(){
if (document.all||document.getElementById)
setInterval("getthedate()",1000)
}
</SCRIPT>
<BODY bgColor="#ffffff">
<TABLE width="100%" cellSpacing=0 cellPadding=3 bgColor="#c0c0c0" border=2>
<TR>
<TD bgColor="#0080c0"><B>NOC - Data Center A</B><br>Network Issues &
Down Devices</TD>
<TD align=right>
<FONT SIZE=2 COLOR=BLACK><span id="clock"></span>
</TD>
<tr><td bgColor="#c0c0c0">
</table>
<table width="100%" cellSpacing=2 cellPadding=1 bgColor="#c0c0c0" border=1>
<tr><td
width="20"> </td><td><b><center>Device</center></b><td><b><center>Status</center></b><td><b><center>Down
since</center></b><td><b><center>Missed
Polls</center></b><td><b><center>Map
Name</center></b><td><b><center>Total Down Time</center></b></tr>
<font bgColor="#FF7777">
<%START_LOADED_MAP_LIST%>
<%START_DEVICE_LIST%>
<%IFNOT% IS_DEVICE_UP>
<tr>
<TD align="center">
<%IF% (%MATCH% (%DEVICE% ALERT_COUNT, 0))>
<%ELSE%>
<%IFNOT% (%MATCH% (%DEVICE% INFO_LINE_2, "***
Maintenance Enabled ***"))>
<IMG ID="plus<%DEVICE% UNIQUE_ID>"
STYLE="visibility: visible;
display: inline" SRC="plus.gif" onClick="displayImageMe(1,'<%DEVICE%
UNIQUE_ID>');" WIDTH="11" HEIGHT="10"><IMG ID="minus<%DEVICE%
UNIQUE_ID>" STYLE="visibility: hidden; display: none" SRC="minus.gif"
onClick="displayImageMe(0,'<%DEVICE% UNIQUE_ID>');" WIDTH="11"
HEIGHT="10">
<%ENDIF%>
<%ENDIF%>
</TD>
<td bgcolor="<%DEVICE% STATE_COLOR>"><a
href="/device.asp?map=<%MAP% FILENAME>&device=<%DEVICE%UNIQUE_ID>">
<B><%DEVICE% DISPLAY_NAME></B></a> [<%DEVICE% HOST_TYPE>]</TD>
<%IF% (%MATCH% (%DEVICE% INFO_LINE_2, "*** Maintenance Enabled ***"))>
<TD bgcolor="FFCC66" align=center>
Maintenance Mode
</TD>
<TD bgcolor="FFCC66" align=center><%DEVICE%
TIME_OF_LAST_STATE_CHANGE></TD>
<TD bgcolor="FFCC66" align=center><%DEVICE%
CURRENT_DOWN_COUNT> </TD>
<TD bgcolor="FFCC66" align=center><a
href=/map2.asp?map=<%MAP%
FILENAME>> <%MAP% NAME> </a>
<TD bgcolor="FFCC66" align=right><%DEVICE%
DOWN_TIME></TD>
<%ELSE%>
<TD><center><%DEVICE% STATUS></center></TD>
<TD align=center><%DEVICE%
TIME_OF_LAST_STATE_CHANGE></TD>
<TD align=center><%DEVICE%
CURRENT_DOWN_COUNT> </TD>
<TD align=center><a href=/map2.asp?map=<%MAP%
FILENAME>>
<%MAP% NAME> </a>
<TD align=right><%DEVICE% DOWN_TIME></TD>
<%ENDIF%>
</tr>
<%IF% (%MATCH% (%DEVICE% ALERT_COUNT, 0))>
<%ELSE%>
<TBODY ID="dropView<%DEVICE% UNIQUE_ID>" STYLE="visibility:
hidden; display: none">
<%START_ALERT_LIST%>
<TR BGCOLOR="#ECECEC">
<TD ALIGN="left" border="0"
BGCOLOR="#c0c0c0" colspan=3><!--
Leave COLUMN1 Blank --> </TD>
<TD ALIGN="left" BGCOLOR="#71e1fe"
colspan=4> <FONT
SIZE=-1><%DEVICE_ALERT% ENCODED_STRING></FONT></TD>
</TR>
<%END_ALERT_LIST%>
</TBODY>
<%ENDIF%>
<%ENDIF%>
<%END_DEVICE_LIST%>
<%START_DEVICE_LIST%>
<%START_DEVICE_SERVICE_DOWN_LIST%>
<tr>
<TD align="center">
<%IF% (%MATCH% (%DEVICE% ALERT_COUNT, 0))>
<%ELSE%>
<IMG ID="plus<%DEVICE% UNIQUE_ID>"
STYLE="visibility: visible;
display: inline" SRC="plus.gif" onClick="displayImageMe(1,'<%DEVICE%
UNIQUE_ID>');" WIDTH="11" HEIGHT="10"><IMG ID="minus<%DEVICE%
UNIQUE_ID>" STYLE="visibility: hidden; display: none" SRC="minus.gif"
onClick="displayImageMe(0,'<%DEVICE% UNIQUE_ID>');" WIDTH="11"
HEIGHT="10">
<%ENDIF%>
</TD>
<td><a href="/device.asp?map=<%MAP%
FILENAME>&device=<%DEVICE%UNIQUE_ID>">
<B><%DEVICE% DISPLAY_NAME></B></a></br> </TD>
<TD><center>Service Down</center></TD>
<TD align=center bgcolor="#ff77ff" colspan=2><%SERVICE% FULLNAME></TD>
<td><a href=/map2.asp?map=<%MAP% FILENAME>> <%MAP% NAME> </a>
<TD align=right><%DEVICE% %SERVICE_STATISTICS% DOWN_TIME></TD>
</TR>
<%IF% (%MATCH% (%DEVICE% ALERT_COUNT, 0))>
<%ELSE%>
<TBODY ID="dropView<%DEVICE% UNIQUE_ID>" STYLE="visibility:
hidden; display: none">
<%START_ALERT_LIST%>
<TR BGCOLOR="#ECECEC">
<TD ALIGN="left" border="0"
BGCOLOR="#c0c0c0" colspan=3><!--
Leave COLUMN1 Blank --> </TD>
<TD ALIGN="left" BGCOLOR="#71e1fe"
colspan=4> <FONT
SIZE=-1><%DEVICE_ALERT% ENCODED_STRING></FONT></TD>
</TR>
<%END_ALERT_LIST%>
</TBODY>
<%ENDIF%>
<%END_DEVICE_SERVICE_DOWN_LIST%>
<%END_DEVICE_LIST%>
<%START_DEVICE_LIST%>
<%IF% (%MATCH% (%DEVICE% INFO_LINE_2, "*** Maintenance Enabled ***"))>
<%IF% IS_DEVICE_UP>
<tr>
<TD align="center">
<%IF% (%MATCH% (%DEVICE% ALERT_COUNT, 0))>
<%ELSE%>
<%IFNOT% (%MATCH% (%DEVICE% INFO_LINE_2, "***
Maintenance Enabled ***"))>
<TD align="center">
<IMG ID="plus<%DEVICE% UNIQUE_ID>"
STYLE="visibility: visible;
display: inline" SRC="plus.gif" onClick="displayImageMe(1,'<%DEVICE%
UNIQUE_ID>');" WIDTH="11" HEIGHT="10"><IMG ID="minus<%DEVICE%
UNIQUE_ID>" STYLE="visibility: hidden; display: none" SRC="minus.gif"
onClick="displayImageMe(0,'<%DEVICE% UNIQUE_ID>');" WIDTH="11"
HEIGHT="10">
<%ENDIF%>
<%ENDIF%>
</TD>
<td bgcolor="<%DEVICE% STATE_COLOR>"><a
href="/device.asp?map=<%MAP% FILENAME>&device=<%DEVICE%UNIQUE_ID>">
<B><%DEVICE% DISPLAY_NAME></B></a> [<%DEVICE% HOST_TYPE>]</TD>
<%IF% (%MATCH% (%DEVICE% INFO_LINE_2, "*** Maintenance Enabled ***"))>
<TD bgcolor="FFCC66" align=center>
Maintenance Mode
</TD>
<%ELSE%>
<TD><center><%DEVICE% STATUS></center></TD>
<%ENDIF%>
<TD bgcolor="FFCC66" align=center></TD>
<TD bgcolor="FFCC66" align=center></TD>
<TD bgcolor="FFCC66" align=center><a href=/map2.asp?map=<%MAP%
FILENAME>> <%MAP% NAME> </a>
<TD bgcolor="FFCC66" align=right></TD>
</tr>
<%ENDIF%>
<%ENDIF%>
<%END_DEVICE_LIST%>
<%END_LOADED_MAP_LIST%>
</font> </p>
</table>
</td></tr>
</table> <br>
<center>
<B>Helpful Links</b><br>
<a href="/">Whatsup Top Page</a><br>
<script language="javascript">
var wugGMTOffset = 4;
var wugTime = "<%time% current_time>"
var wugHours = wugTime.substring(0,2);
var wugMinutes = wugTime.substring(3,5);
var wugDate = "<%time% current_date>"
var wugYear = wugDate.substring(0,4);
var wugMonth = wugDate.substring(5,7);
var wugDay = wugDate.substring(8,10);
var wugMonthx = wugMonth -1;
var wuglocalTime = new
Date(wugYear,wugMonthx,wugDay,wugHours,wugMinutes);
var localTime = new Date();
var localGMTOffset = localTime.getTimezoneOffset() /60;
// If you use wuglocalTime.toLocaleString, you get the clock from
WUG's clock displayed with the local time offset
// but the seconds portion will always display 00.
// document.write(localTime.toLocaleString());
// document.write("<BR>" + " GMT Time Zone Offset is " +
localGMTOffset + " " + "Hours");
document.write("<BR>" + " The Timezone difference between WUG
and this station is " + (localGMTOffset - wugGMTOffset) + " " +
"Hours");
</script>
<P>
</center>
</body>
</html>
On Wed, 03 Nov 2004 10:56:05 -0500, James Amann <[EMAIL PROTECTED]> wrote:
> Is there anything in WUG or WUG pro to allow an operator to place an
> object in a "Hold State" of some kind?
>
> Specifically;
>
> t1. Device is replying to ping
>
> t2. Device no longer replies to ping, considered "down"
>
> t3. Device is placed in hold state - Device will be polled but no
> longer propogate alerts (visual / audio).
>
> **SEE WISH LIST BELOW
>
> t4. Operator contacts administrator to resolve issue
>
> t5. Administrator resolves issue, contacts operator with updated
> status
>
> t6. Operator removes object from hold state, normal polling and
> alerting continues.
>
> ***WISH LIST
>
> At this point a log entry is created noting the objects status,
> multiple possible status' would be helpful (unscheduled outage,
> maintenance, etc)
>
> Web-based status page might display objects in a hold state for
> operator reference
>
> reminders from object would be helpful too, i.e. when object is placed
> in "hold" operator must enter estimated time of recovery. At that time
> some form of ntification may be sent to the admin and or operator
> requesting updated status.
>
> Anyone?
>
> Please visit http://www.ipswitch.com/support/mailing-lists.html
> to be removed from this list.
>
> An Archive of this list is available at:
> http://www.mail-archive.com/whatsup_forum%40list.ipswitch.com/
>
Please visit http://www.ipswitch.com/support/mailing-lists.html
to be removed from this list.
An Archive of this list is available at:
http://www.mail-archive.com/whatsup_forum%40list.ipswitch.com/