[hobbit] Ack events sent to multiple BBDISP (issue with bback.cgi and cookies)
Nicolas
nico at crysto.org
Wed Apr 1 20:50:08 CEST 2009
Hi,
A co-worker worked on the multiple BBDISP ack problem i posted here in
February, and i'd like to share his work :-)
Here his investigation results and the fix :
1. Hobbit does not allow ack's without the correct acknowledgement number
as it is this acknum that is used to look up the {HOST}.{TEST} to be
acknowledged. So there was no way that the simple trick of using the main/
area section in hobbitserver.cfg was going to work. A side note....
-{ACKNUM} will acknowledge all events for {HOST}
2. The code only ever forwards to the first IP listed in BBDISPLAYS if the
messages type is not one of those as defined in lib/sendmsg.c:multircptcmds.
static char *multircptcmds[] = { "status", "combo", "meta", "data",
"notify", "enable", "disable", "drop", "rename", "client", NULL };
3. The ordering of the parameters in hobbitcfg.conf is critical. The --area
must be prior to the --env file parameter so that the correct environment
is selected.
4. We need to use --nopin
5. We can keep the cookies enabled
The Fix :D
The new bb-ack.cgi now does the following:
1. Grab a list of all acknowledgable events from the list of Hobbit
BBDISPLAY servers.
2. Present the normal looking "Acknowledge Alert" page, showing the list of
events and entry fields to send acknowledgements.
3. Send the acknowledgements to the relevant BBDISPLAY servers.
4. Provide feedback as normal for the acknowledgements sent.
The Configuration:
1. Change the CGI_ACK_OPTS setting in /opt/hobbit/server/etc/hobbitcgi.conf
to:-
CGI_ACK_OPTS="--area=maint --env=/opt/hobbit/server/etc/hobbitserver.cfg
--no-pin"
2. Add to ~hobbit/server/etc/hobbitserver.conf
# acks for others hobbit servers
maint/BBDISP="0.0.0.0"
maint/BBDISPLAYS="$BBSERVERIP 10.0.0.2 10.0.0.3"
# acks end
Known Issues:
1. Not fully tested =-o
Could be issues with performance if the BBDISPLAY list is long.
If a BBDISPLAY does not respond (IP is unbound, etc.) then there is a
delay while the TCP connect timesout [order of a few seconds].
Theoretical possibility of timing issue between alerts being 'raised'
and acknowledged while the alerts are being propogated between BBDISPLAYS.
2. CGI code is not fantastically 'safe' but I think that's constant with
the rest of the code (i.e. I haven't made it any worse!) :/.
Find the new bb-ack.c in attachment. The modifications done are commented
between /* Begin Changes for multiBBDISPLAYS for acks */ tag.
Henrik, if this fix is ok for you, it could be good to add it into xymon.
Regards,
Nico
On 11/02/09 20:19, "nico" <nico at crysto.org> wrote:
> Hi,
> Sorry, i'm sending again this email because when i wrote the last, i didn't
> see it has been merged in another thread :-(
> I'd like to send ack events to multiple BBDISPLAY.
>
> To do that, i did a change on hobbitserver.cfg with this configuration:
>
> http://www.hswn.dk/hobbiton/2005/10/msg00203.html
>
> 1) In hobbitserver.cfg on both display servers, after the BBDISPLAY
> setting add
> # For the enable/disable and acknowledge scripts.
> maint/BBDISP="0.0.0.0"
> maint/BBDISPLAYS="10.0.0.1 172.16.12.10"
> (replace with your display-server IP-adresses)
> 2) In hobbitcgi.cfg, change the line for the bb-ack.cgi tool:
> # bb-ack.cgi options
> CGI_ACK_OPTS="--area=maint
> --env=/usr/lib/hobbit/server/etc/hobbitserver.cfg"
>
> The first problem is that it seems to not send acks events to the multiples
> IP but only to local.
>
> The second problem is that when i modified BBDISP with the IP of another
> hobbit server, we got an error:
>
> 2009-02-11 17:02:52 Cookie 338777 not found, dropping ack
> 2009-02-11 17:06:34 Cookie 338777 not found, dropping ack
>
> The reason is that the cookie is different for the same host/test:
>
> serverA$ ${BB} ${BBSERVERIP}:${BBPORT} "hobbitdboard color=red,yellow
> fields=hostname,testname,cookie"
> cusaa-ws02|ftp|640796
>
> serverB$ ${BB} ${BBSERVERIP}:${BBPORT} "hobbitdboard color=red,yellow
> fields=hostname,testname,cookie"
> cusaa-ws02|ftp|338777
>
> We tried to disable cookie by adding "--no-cookies" into CGI_ACK_OPTS
> variable of hobbitcgi.cfg but the problem still happens.
>
> Is there any way to fix it please ?
> Thanks.
> Regards,
> nicolas
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20090401/ad0788ed/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bb-ack.c
Type: video/x-ms-wm
Size: 18454 bytes
Desc: not available
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20090401/ad0788ed/attachment.wm>
More information about the Xymon
mailing list