Krake Code
Status: Alpha
Brought to you by:
paulyang09
=Overview= Krake is a health monitor which can check the server's health status. By now, krake has supported the following checkers, each checker can perform a specific network protocol: *) icmp *) tcp *) http/https Krake runs as a daemon and can be configured by a xml styled configuration file. Krake can run in most Unix like environment, incl. Linux and xBSD. =Installation= Read the INSTALL file in the source code tree. =General Usage= The krake daemon supports the following options: --config/-c Assign the configruation file --reload/-r Reload the configruation file --show/-s Show health status, -s all for all monitor, -s monitor_name for one monitor --quit/-q Shutdown krake --version/-v Show Krake version --help/-h Show this help =Configuration= Default configuration file: $prefix/etc/krake.conf, the $prefix refers to the parameter passed to configure script while compile the source code. Example: <?xml version="1.0"?> <krk_config> <monitor> <!--Keyword for krake configuration, monitor can more than one--> <name>monitor1</name> <!--name of a monitor--> <status>enable</status> <!--Only can be enable or disable; when enable, also starts the monitor's timer; when disable, also stops the monitor's timer--> <checker>http</checker> <!--specify a checker using by a monitor--> <checker_param>b</checker_param> <!--checker's parameters--> <interval>5</interval> <!--interval of monitor's timer in seconds--> <timeout>3</timeout> <!--time out value of checked host in seconds--> <failure_threshold>3</failure_threshold> <!--how many times of failures happen, marking host as down--> <success_threshold>3</success_threshold> <!--how many times of successes happen, marking host as up--> <node> <host>10.1.1.2</host> <!--ip address of a checked host, either ipv4 address is valid--> <port>8080</port> <!--port number of a checked host, range is 1 ~ 65535--> </node> <node> <host>10.1.1.3</host> <!--ip address of a checked host, either ipv4 address is valid--> <port>8080</port> <!--port number of a checked host, range is 1 ~ 65535--> </node> <script>h</script> <!--failure notification, if user specify this option, when a failure of a checked host is deteceted, krake will call this script--> </monitor> <log> <!--set logging attributes--> <logtype>syslog</logtype> <!--set the type of logs that krake sends, value can be file, syslog--> <loglevel>2</loglevel> <!--set the level of logs, under which the logs will not be sent out--> </log> </krk_config> If don't want to use this file, you can assign another xml file by krake command line After you make some modifications to the configuration file, you can use "krake -r" to force the daemon reload the configuration file without stopping the current detection. =Configuration of the Checkers= At current stage, only http checker has the checker parameters. http checker: <checker-param>send-file:/path/to/a/file expected-file:/path/to/a/file</checker-param> This let you to specify what to send and what to expected to receive when you use the http checker. You can write the http packet into a send file and tell Krake what to send. If these parameters are missing, then Krake will send a minimum http request packet as: GET / HTTP/1.0 Host: Backend Connection: Close and expect only the 200 status of the http response. http checker now only supports HTTP 1.0 protocol.