On 30 January 2013 04:36, Simmons Clint <C.Simmons at criflending.com> wrote:
I’m having a problem trying to disable over 1000+ hosts and tests at one time for maintenance windows. I’ve even tried disabling in groups of 100-200 but it will still miss a group of servers here and there. It seems that when I click “apply” and once the screen refreshes could possibly stop running the enadis.sh/cgi script in the background (??)
I'm thinking that there's some limit being reached, perhaps maximum rate of commands to xymond (although I'm not aware of any such thing), maximum CGI request size, or maximum CGI lifetime.
First, check your xymond logs for warnings. Also, check the Apache logs. If nothing, then run the following command:
xymond_channel --channel=enadis sh -c 'cat >/tmp/enadis-msgs.dump'
Then do your disable from the web interface. When it's all finished (perhaps when the last of the servers show as disabled), stop the above process and review the dump file, looking for the hosts that didn't get disabled. If they show up in the dump, the problem might be in the xymond process handling the disable commands. This would be tricky to diagnose, and might require a review of the code, or running xymond with debugging on.
If the hosts didn't show up in the dump, the problem might be in the CGI process (enadis.cgi). You could replace enadis.sh with a modified version that first copies STDIN to a dump file before sending it on the normal path to the CGI. Such as adding the "cat" line below immediately before the "exec" line like so:
#!/bin/sh
This is a wrapper for the Xymon enadis script
. /usr/lib/xymon/server/etc/cgioptions.cfg cat > /tmp/enadis-cgi.dump; cat /tmp/enadis-cgi.dump | exec /usr/lib/xymon/server/bin/enadis.cgi $CGI_ENADIS_OPTS
Also, you might see if sending the disable messages from the command-line all at once also produces the same behaviour. If it does, then the CGI is not your problem, and is more likely to be the xymond process.
J