On Mon, Nov 2, 2009 at 8:58 AM, der.hans wrote: > moin moin, > > added monitoring for a borken web server to hobbit last night and a 403 > forbidden is giving a green status. Seems foolish that a hard error would > be marked as OK. > > How do I get hobbit to correctly mark a 403 as being down? > > I don't see anything about this in the bb-hosts man page :(. > This is a possible but only through a source code change (and rebuild): in bbnet/httpresult.c there's this : in bbnet / httpresult.c there's this: switch(status) { switch (status) ( case 000: /* transportlayer reports error */ case 000: / * transportlayer reports error * / result = (h->dialup ? COL_CLEAR : COL_RED); result = (h-> dialup? COL_CLEAR: COL_RED); break; break; case 100: /* Continue - should be ok */ case 100: / * Continue - should be ok * / case 200: case 201: case 202: case 203: case 204: case 205: case 206: case 200: case 201: case 202: case 203: case 204: case 205: case 206: case 301: case 302: case 303: case 307: case 301: case 302: case 303: case 307: case 401: case 403: /* Is "Forbidden" an OK status ? */ case 401: case 403: / * Is "Forbidden" an OK status? * / result = COL_GREEN; result = COL_GREEN; break; break; case 400: case 404: case 405: case 406: case 400: case 404: case 405: case 406: result = COL_RED; /* Trouble getting page */ result = COL_RED; / * Trouble getting page * / break; break; case 500: case 500: case 501: case 501: case 502: /* Proxy error */ case 502: / * Proxy error * / case 503: case 503: case 504: case 504: case 505: case 505: result = COL_RED; /* Server error */ result = COL_RED; / * Server error * / break; break; You can modify it and rebuild your Hobbit server. You can modify it and rebuild your Hobbit server. -- -- ■/hobbit-4.2.0/bbnet/httpresult.c ■ / hobbit-4.2.0/bbnet/httpresult.c : : static char rcsid[] = "$Id: httpresult.c,v 1.25 2006/07/20 16:06:41 henrik Rel $"; static char rcsid [] = "$ Id: httpresult.c, v 1.25 2006/07/20 16:06:41 henrik Rel $"; #include # include #include # include #include # include #include # include #include # include #include # include #include # include #include "libbbgen.h" # include "libbbgen.h" #include "bbtest-net.h" # include "bbtest-net.h" #include "contest.h" # include "contest.h" #include "httpresult.h" # include "httpresult.h" static int statuscolor(testedhost_t *h, long status) static int statuscolor (testedhost_t * h, long status) { ( int result; int result; switch(status) { switch (status) ( case 000: /* transportlayer reports error */ case 000: / * transportlayer reports error * / result = (h->dialup ? COL_CLEAR : COL_RED); result = (h-> dialup? COL_CLEAR: COL_RED); break; break; case 100: /* Continue - should be ok */ case 100: / * Continue - should be ok * / case 200: case 201: case 202: case 203: case 204: case 205: case 206: case 200: case 201: case 202: case 203: case 204: case 205: case 206: case 301: case 302: case 303: case 307: case 301: case 302: case 303: case 307: case 401: case 403: /* Is "Forbidden" an OK status ? */ case 401: case 403: / * Is "Forbidden" an OK status? * / result = COL_GREEN; result = COL_GREEN; break; break; case 400: case 404: case 405: case 406: case 400: case 404: case 405: case 406: result = COL_RED; /* Trouble getting page */ result = COL_RED; / * Trouble getting page * / break; break; case 500: case 500: case 501: case 501: case 502: /* Proxy error */ case 502: / * Proxy error * / case 503: case 503: case 504: case 504: case 505: case 505: result = COL_RED; /* Server error */ result = COL_RED; / * Server error * / break; break; case STATUS_CONTENTMATCH_FAILED: case STATUS_CONTENTMATCH_FAILED: result = COL_RED; /* Pseudo status: content match fails */ result = COL_RED; / * Pseudo status: content match fails * / break; break; case STATUS_CONTENTMATCH_BADREGEX: /* Pseudo status: bad regex to match against */ case STATUS_CONTENTMATCH_BADREGEX: / * Pseudo status: bad regex to match against * / case STATUS_CONTENTMATCH_NOFILE: /* Pseudo status: content match requested, but no match-file */ case STATUS_CONTENTMATCH_NOFILE: / * Pseudo status: content match requested, but no match-file * / result = COL_YELLOW; result = COL_YELLOW; break; break; default: default: result = COL_YELLOW; /* Unknown status */ result = COL_YELLOW; / * Unknown status * / break; break; } ) return result; return result; } ) : : : : : : Reference: http://fungk.exblog.jp/i3 You can modify it and rebuild source. Get the source code and lock the package in your distro, like we do for custom (Server Tokens) Apache2, or LAMP builds. ciao, > > der.hans > -- > # http://www.LuftHans.com/ http://www.ABLEconf.com/ > # Director of Engineering, FonWallet Transaction Solutions, Inc. > # Intelligence without compassion is a waste. -- der.hans > --------------------------------------------------- > PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us > To subscribe, unsubscribe, or to change your mail settings: > http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss > -- Skype: (623)239-3392 AT&T: (503)754-4452 www.obnosis.com