Nov 5, 2009 1:22 PM
Event Console - Server Connection Error
-
Like (0)
Among my already reported broken things since upgrading to 2.5, here's another:
The "Event Console" from the left-hand menu doesn't work. It just displays "Error - Server Connection Error" in the bottom right hand corner. However, clicking on any individual device in the "Device Issues" part of the Dashboard shows the event console for that device just fine.
Is anyone else getting this?
I think every one got this problem if events more then hundred.
Is there any way not to use broken Event Console?
I probably have several thousand (at least tens of thousands) events and the console worked for several days until I did a reindex on the Zope db this morning. (Not sure if the reindex is coincidental or not.) The only issue I had before was when I tried to move many, many events to history at once it would timeout. Now the whole Event Console fails to load. I can only view individual device events.
On a side note, I think the old (pre-2.5.0) event console interface was more intuitive, was visually superior and was more user friendly than this one. I'm just not crazy about this one. This new version has slick bells and whistles but overall is less appealing to me - I guess it doesn't help that I'm having all these problems with it.
Chock
My apologies. The problem is not the numbers of events but encoding of event. I've found this in event.log.
------
2009-11-06T18:33:29 ERROR Zope.SiteErrorLog http://bim.mts.com.ua:8080/zport/dmd/Events/evconsole_router
Traceback (innermost last):
Module ZPublisher.Publish, line 119, in publish
Module ZPublisher.mapply, line 88, in mapply
Module ZPublisher.Publish, line 42, in call_object
Module Products.ZenUtils.Ext, line 107, in __call__
Module Products.ZenUtils.json, line 49, in json
Module simplejson, line 230, in dumps
Module simplejson.encoder, line 200, in encode
Module simplejson.encoder, line 260, in iterencode
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 127: unexpected end of data
This cause problem with Event Console.
I've surrounded code in Products/ZenUtils/Ext.py in try except block and Event Console works now. (see attachment)
Of cource I can't see bgous events and the real solution lies match deeper.
Added:
In attachment script which fix bogus events in database.
Put it in your ~zenoss/zenoss directory, edit connection parameter to your mysql database and execute as python fix-utf-events.py
The problem in Products/ZenEvents/MySqlSendEvent.py when it calculates summary it simply trim's first 127 characters but with utf-8 encoded strings doing so is totally wrong and leads to bugs like this:
$python
Python 2.4.4 (#1, Oct 13 2009, 04:36:48)
[GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-56)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'фвыа'[:3]
ф?
>>> print u'фвыа'[:3]
фвы
>>>
Message was edited by: pavelmart
I'm not seeing those event.log logs either. I did open firebug in firefox and then tried to view the event console and noticed two occurences of this under the firebug console tab:
POST https://[my.zenoss.host]/zport/dmd/Events/evconsole_router 404 Not found
Those started this morning right when my event console stopped loading.
Chock
Ok. Weird stuff. I did another reindex() via zendmd and now my event console works again. Maybe you should try the same.
Chock
maybe i foud the cause:
UnicodeDecodeError: 'utf8' codec can't decode bytes
look my detail
in my firebug when i've server connection error i can found where script stop
about zenoss.js
},
load: function(event_id){
Zenoss.remote.EventConsole.detail({
evid:event_id,
history:this.isHistory
},
function(result){
var event = result.event[0];
this.update(event);
this.bind();
this.show();
}, this
);
}
and under firebug net debug
Server | Zope/(Zope 2.11.2-final, python 2.4.4, linux2) ZServer/1.1 |
Date | Tue, 10 Nov 2009 06:40:56 GMT |
Bobo-Exception-Line | 260 |
Content-Length | 11821 |
Bobo-Exception-Value | See the server error log for details |
Bobo-Exception-File | encoder.py |
Bobo-Exception-Type | UnicodeDecodeError |
Content-Type | application/json; charset=utf-8 |
this in my request
Host | ipmonitoring.lais.it:8080 |
User-Agent | Mozilla/5.0 (Windows; U; Windows NT 6.0; it; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729 ) |
Accept | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
Accept-Language | it-it,it;q=0.8,en-us;q=0.5,en;q=0.3 |
Accept-Encoding | gzip,deflate |
Accept-Charset | ISO-8859-1,utf-8;q=0.7,*;q=0.7 |
Keep-Alive | 300 |
Connection | keep-alive |
Content-Type | application/json; charset=UTF-8 |
X-Requested-With | XMLHttpRequest |
Referer | http://ipmonitoring.lais.it:8080/zport/dmd/Groups/Lais/viewEvents |
Content-Length | 162 |
Cookie | ys-detail_panel=o%3Acollapsed%3Db%253A0; ys-evconsole=o%3Acolumns%3Da%253Ao%25253Aid%25253Ds%2525253AeventState %25255Ewidth%25253Dn%2525253A60%255Eo%25253Aid%25253Ds%2525253Aseverity%25255Ewidth%25253Dn%2525253A60 %255Eo%25253Aid%25253Ds%2525253Adevice%25255Ewidth%25253Dn%2525253A100%255Eo%25253Aid%25253Ds%2525253Acomponent %25255Ewidth%25253Dn%2525253A100%255Eo%25253Aid%25253Ds%2525253AeventClass%25255Ewidth%25253Dn%2525253A100 %255Eo%25253Aid%25253Ds%2525253Asummary%25255Ewidth%25253Dn%2525253A557%255Eo%25253Aid%25253Ds%2525253AfirstTime %25255Ewidth%25253Dn%2525253A120%255Eo%25253Aid%25253Ds%2525253AlastTime%25255Ewidth%25253Dn%2525253A120 %255Eo%25253Aid%25253Ds%2525253Acount%25255Ewidth%25253Dn%2525253A60%5Esort%3Do%253Afield%253Ds%25253Aseverity %255Edirection%253Ds%25253ADESC%5Efilters%3Do%253AdisplayFilters%253Db%25253A1%255Eoptions%253Do%25253AeventState %25253Da%2525253An%252525253A0%2525255En%252525253A1%25255Eseverity%25253Da%2525253An%252525253A5%2525255En %252525253A4%2525255En%252525253A3%2525255En%252525253A2; ys-evc_refresh=n%3A5; ys-histconsole=o%3Acolumns %3Da%253Ao%25253Aid%25253Ds%2525253AeventState%25255Ewidth%25253Dn%2525253A60%255Eo%25253Aid%25253Ds %2525253Aseverity%25255Ewidth%25253Dn%2525253A60%255Eo%25253Aid%25253Ds%2525253Acomponent%25255Ewidth %25253Dn%2525253A100%255Eo%25253Aid%25253Ds%2525253AeventClass%25255Ewidth%25253Dn%2525253A100%255Eo %25253Aid%25253Ds%2525253Asummary%25255Ewidth%25253Dn%2525253A657%255Eo%25253Aid%25253Ds%2525253AfirstTime %25255Ewidth%25253Dn%2525253A120%255Eo%25253Aid%25253Ds%2525253AlastTime%25255Ewidth%25253Dn%2525253A120 %255Eo%25253Aid%25253Ds%2525253Acount%25255Ewidth%25253Dn%2525253A60%5Esort%3Do%253Afield%253Ds%25253AeventClass %255Edirection%253Ds%25253AASC%5Efilters%3Do%253AdisplayFilters%253Db%25253A1%255Eoptions%253Do%25253AeventState %25253Da%2525253An%252525253A0%2525255En%252525253A1%2525255En%252525253A2%25255Eseverity%25253Da%2525253An %252525253A5%2525255En%252525253A4%2525255En%252525253A3%2525255En%252525253A2%2525255En%252525253A1 %2525255En%252525253A0; ys-rowcolor=b%3A0; __ginger_snap="NjE2NDZkNjk2ZTo2MTY0NmQ2OTZlNmM2MTY5NzMzMDMzMzA %3D"; _ZopeId="99389688A4H2XnFcg0Q" |
Pragma | no-cache |
Cache-Control | no-cache |
the post
{"action":"EventConsole","method":"detail","data":[{"evid":"53314e8c-e425-4b1c-9b94-0b3bf4fe40d9","history"
:false}],"type":"rpc","tid":4,"asof":1257835254.939803}
and the reply
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html>
<head>
<title>
Zenoss: dmd
</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="/zport/dmd/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="yui/reset-fonts-grids/reset-fonts-grids.css" />
<link rel="stylesheet" href="yui/base/base-min.css" />
<link rel="stylesheet" href="/zport/portal_skins/zenoss.css">
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" title="zenoss"
href="zenoss_ie.css" >
<![endif]-->
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" title="zenoss"
href="zenoss_ie6.css" >
<![endif]-->
<script>
var DEBUG_MODE = false;
var VERSION_ID = '250';
</script>
<script type="text/javascript" src="js/MochiKit.js"></script>
<script type="text/javascript" language="javascript" src="/zport/dmd/yui/yahoo/yahoo-min.js"></script
>
<script type="text/javascript" language="javascript" src="/zport/dmd/yui/yuiloader/yuiloader-min
.js"></script>
<script type="text/javascript" src="javascript/zenoss-core.js"></script>
<script>
var loader = YAHOO.zenoss.getLoader();
loader.require(['zenossutils', 'uifeedback']);
loader.insert({onSuccess:function(){
removeElementAutoCompletes();
applyBrowserSpecificStyles();
addSelectionBar();
checkForCollapsed();
connectCheckboxListeners();
notifyParentOfNewUrl();
zenPageInit();
YAHOO.zenoss.Messenger.initialize();
}});
</script>
<script>
var submitFormToMethod = function(formname, method) {
//Basically for use in menu items, to obviate creating dummy forms
//or menu items that are actually buttons.
f = document.forms[formname];
f.action = '/zport/dmd/' + method;
f.submit();
}
var goExport = function() {
var params = {};
if (eventZenGrid.lastparams['severity'])
params['sev'] = eventZenGrid.lastparams['severity'];
if (eventZenGrid.lastparams['state'])
params['state'] = eventZenGrid.lastparams['state'];
if (eventZenGrid.lastparams['filter'])
params['filter'] = eventZenGrid.lastparams['filter'];
if (eventZenGrid.lastparams['startdate'])
params['startdate'] = eventZenGrid.lastparams['startdate'];
if (eventZenGrid.lastparams['enddate'])
params['enddate'] = eventZenGrid.lastparams['enddate'];
if (eventZenGrid.lastparams['orderby'])
params['orderby'] = eventZenGrid.lastparams['orderby'];
log(keys(params));
log(queryString(params));
url = '/zport/dmd/exportEvents?' + queryString(params);
parent.location = url;
}
addLoadEvent(function() {
YAHOO.zenoss.templateFreeURL = '/zport/dmd';
});
</script>
</head>
<body class="yui-skin-sam">
<form method="post" name="proxyForm" action="here/absolute_url">
<input type="hidden" name="zenScreenName"
value="zenoss_feedback_error_message" />
</form>
<div id="dialog" class="dialog" style="visibility:hidden;position:absolute">
<div id="dialog_innercontent">
<div style="text-align:center">
<h2>Loading...</h2>
<br />
<img src="img/spinning_wheel_throbber.gif" />
</div>
</div>
<img id="dialog_close" src="img/close.gif" class="dialog_close" />
</div>
<script>
loader = YAHOO.zenoss.getLoader();
loader.require(['zenossutils']);
loader.insert({
onSuccess: function(){
mydialog = new Dialog.Box($('dialog'));
connect('dialog_close','onclick', mydialog.box.hide);
$('dialog').style.visibility = '';
}
});
</script>
<div id="frame">
<form name="proxy_form" id="proxy_form"
style="position:absolute;visibility:hidden"
action="/zport/dmd"></form>
<div id="topPane">
<a href="/zport/dmd/Dashboard">
<div class="logo">
</div>
</a>
<div id="settings">
<ul>
<li>
<span id="header-username">
admin
</span>
</li>
<li>
<a href="/zport/dmd/ZenUsers/admin">
Preferences</a>
</li>
<li>
<a href="/zport/dmd/logoutUser">Logout</a>
</li>
<li>
<a target="_blank"
href="
http://www.zenoss.com/help?version=2.5.0
">Help</a>
</li>
</ul>
<div class="searchbox">
<form action="/zport/dmd/deviceSearchResults" method="POST" name="searchform">
<span class="searchform-label" id="searchform-label">Device/IP Search</span>
<input type="text" name="query"
onkeypress="submitViaEnter(event)"
onclick="select(this.value)" value="" />
</form>
</div>
</div>
<div id="system_clock_container">Zenoss server time:
<span id="system_clock">Now o'clock</span>
<script> var start_time = '2009-11-10 07:40:59';</script>
<script>
var server_time = isoTimestamp(start_time).getTime();
function server_now() {
return new Date(server_time);
}
function getServerTime() {
return toISOTime(server_now());
}
function getServerTimestamp() {
return toISOTimestamp(server_now());
}
function updateTime(){
server_time += 1000;
$('system_clock').innerHTML = getServerTime();
callLater(1, updateTime)
}
addLoadEvent(updateTime);
</script>
</div>
</div>
<div id="infoBar">
<div id="leftPaneToggle"></div>
<div id="breadCrumbPane">
</div>
</div>
<div id="paneToggle">
</div>
<div id="leftPane">
<div id="leftPane-container">
<p id="mainviews">Main Views</p>
<ul>
<li><a href="/zport/dmd/Dashboard">Dashboard</a></li>
<li><a href="/zport/dmd/Events/viewEvents?notabs=1">Event Console</a></li>
<li><a href="/zport/dmd/Devices/deviceList?notabs=1">Device List</a></li>
<li><a href="/zport/dmd/viewNetworkMap">Network Map</a></li>
</ul>
<p id="mainviews">Classes</p>
<ul>
<li><a href="/zport/dmd/Events">Events</a></li>
<li><a href="/zport/dmd/Devices">Devices</a></li>
<li><a href="/zport/dmd/Services">Services</a></li>
<li><a href="/zport/dmd/Processes">Processes</a></li>
<li><a href="/zport/dmd/Manufacturers">Products</a></li>
</ul>
<p id="browseby">Browse By</p>
<ul>
<li><a href="/zport/dmd/Systems">Systems</a></li>
<li><a href="/zport/dmd/Groups">Groups</a></li>
<li><a href="/zport/dmd/Locations">Locations</a></li>
<li><a href="/zport/dmd/Networks">Networks</a></li>
<li><a href="/zport/dmd/Reports">Reports</a></li>
</ul>
<p id="Management">Management</p>
<ul>
<li><a href="/zport/dmd/addDevice">Add Device</a></li>
<li><a href="/zport/dmd/Mibs">Mibs</a></li>
<li><a href="/zport/dmd/Monitors">Collectors</a></li>
<li><a href="/zport/dmd/editSettings">Settings</a></li>
<li><a href="/zport/dmd/ZenEventManager">Event Manager</a></li>
</ul>
<p id="Management">TrafficoRete</p>
<ul>
<li><a href="/zport/dmd/Indice">IndiceMappe</a></li>
</ul>
</div>
<div id="leftPane-bottom"> </div>
</div>
<div id="rightPane">
<div id="contentPane">
<span>
<h2>A Zenoss error has occurred</h2>
<script>
function toggleReqBox() {
if ($('request_box').style.display=='none') {
showElement('request_box');
setStyle('request_toggle', {'background-image':'url(/zport/dmd/img/arrow.d.gif)'});
} else {
hideElement('request_box');
setStyle('request_toggle', {'background-image':'url(/zport/dmd/img/arrow.r.gif)'});
}
}
</script>
<style>#request_box{width:95%;border:2px dotted #666;margin-top:10px;background-color:white;color
:#333;font-size:0.8em;padding:1em;overflow:hidden;}#request_toggle{color:darkblue;padding-left:25px;margin-top
:20px;font-weight:bold;cursor:pointer;cursor:hand;background:transparent url('/zport/dmd/img/arrow.r
.gif') 5px 5px no-repeat;} </style>
<div id="more_info">
<div id="request_toggle" onclick="toggleReqBox()">View Error Details</div>
<div id="request_box">
<p>
<strong>Type: UnicodeDecodeError
</strong><br />
<strong>Value: 'utf8' codec can't decode bytes in position 4-6: invalid data
</strong><br />
<p>Traceback (innermost last):
<ul>
<li> Module ZPublisher.Publish, line 119, in publish</li>
<li> Module ZPublisher.mapply, line 88, in mapply</li>
<li> Module ZPublisher.Publish, line 42, in call_object</li>
<li> Module Products.ZenUtils.Ext, line 107, in __call__</li>
<li> Module Products.ZenUtils.json, line 49, in json</li>
<li> Module simplejson, line 230, in dumps</li>
<li> Module simplejson.encoder, line 200, in encode</li>
<li> Module simplejson.encoder, line 260, in iterencode</li>
</ul>UnicodeDecodeError: 'utf8' codec can't decode bytes in position 4-6: invalid data
</p>
</p>
</div>
<script>toggleReqBox()</script>
</div>
<p>An error was encountered while publishing this resource. Please use the
form below to submit details of this error to Zenoss, Inc. This information
helps us identify and fix issues with the software, though we are unable
to respond individually to all submissions.
</p>
<p>The Zenoss <a href="http://community.zenoss.com/forums/">community forums</a>
are very active and a good resource for
solving problems and answering questions. Zenoss also provides
<a href="http://zenoss.com/support/">commercial
services and support packages</a>.
</p>
<form method="post" action="/zport/dmd">
<p>The following fields are optional. This information will only be used
to contact you if further information is needed regarding this error.
</p>
Your name:<br />
<input type="text" size="50" name="contactName" /><br />
Your email address:<br />
<input type="text" size="50" name="contactEmail" /><br />
Additional info you would like to provide:<br />
<textarea name="comments" rows="6" cols="50"></textarea><br />
<br />
<p>Click this button to send the above information to Zenoss, Inc.</p>
<input type="hidden" name="errorType"
value="UnicodeDecodeError" />
<input type="hidden" name="errorValue"
value="'utf8' codec can't decode bytes in position 4-6: invalid data" />
<input type="hidden" name="errorTrace"
value="<p>Traceback (innermost last):
<ul>
<li> Module ZPublisher.Publish, line 119, in publish</li>
<li> Module ZPublisher.mapply, line 88, in mapply</li>
<li> Module ZPublisher.Publish, line 42, in call_object</li>
<li> Module Products.ZenUtils.Ext, line 107, in __call__</li>
<li> Module Products.ZenUtils.json, line 49, in json</li>
<li> Module simplejson, line 230, in dumps</li>
<li> Module simplejson.encoder, line 200, in encode</li>
<li> Module simplejson.encoder, line 260, in iterencode</li>
</ul>UnicodeDecodeError: 'utf8' codec can't decode bytes in position 4-6: invalid data
</p>" />
<input type="hidden" name="errorUrl"
value="http://ipmonitoring.lais.it:8080/zport/dmd/Groups/Lais/evconsole_router" />
<input type="submit" name="reportError:method" value="Send Error Details" />
</form>
</span>
</div>
</div>
</div>
</body>
</html>
Would this fix apply to the error in this post: thread/11915?tstart=75
and/or this bug trac ticket: http://dev.zenoss.com/trac/ticket/5795 ??
Thank you
.. i think so...
so if i remove old event from mysql i fix my issue?
Follow Us On Twitter »
|
Latest from the Zenoss Blog » | Community | Products | Services Resources | Customers Partners | About Us | ||
Copyright © 2005-2011 Zenoss, Inc.
|
||||||||