A brief intro to the Naemon checkresult spoolfolder
The purpose of the checkresult spoolfolder as set by the check_result_path
configuration option is a fast and scalable option to submit active and
passive host and service results. It is usually an internal API, but
it can be used to submit check results from 3rd party scripts as well.
There is more than one way to submit check results. The spoolfolder should be used if one of the following criteria matches:
check_result_path
.The spoolfile must match the pattern cXXXXXX
. It must start with a literal
c
and the filename must be 7 bytes long.
The file contains a header block like this:
### Active Check Result File ###
file_time=<unix timestamp>
Naemon will discard and remove the file if the timestamp is older than max_check_result_file_age
.
Followed by one or multiple check results:
host_name=host
service_description=servicename
check_type=0
check_options=0
scheduled_check=1
latency=0.0
start_time=1617969160.0
finish_time=1617969169.0
early_timeout=0
exited_ok=1
return_code=0
output=...
When the file is finished and closed, create an empty file cXXXXXX.ok
using
the same filename as the actual checkresult and append .ok
.
host_name
: Contains the host name.
service_description
: Contains the service description. (Optional, skip for host results).
check_type
: Can be either 0
for active check results or 1
for passive check results.
check_options
: Should be 0.
scheduled_check
: Should be 1. But does not make any difference otherwise.
latency
: Latency in seconds (with fractions)..
start_time
: Unix timestamp (with fractions) when the check started.
finish_time
: Unix timestamp (with fractions) when the check finished.
early_timeout
: Should be 0, otherwise Naemon will create a generic timeout result.
exited_ok
: Should be 1. If 0, Naemon will discard the result and put a error message into the plugin output.
return_code
: The check plugin return code as 0:OK, 1:WARNING, 2:CRTICIAL and 3:UNKNOWN
output
: Contains the plugin output (with performance data) in a single line. Newlines must be escaped as \n
.
host_name=naemon.io
service_description=HTTP
check_type=1
check_options=0
latency=0.0
start_time=1617971364.4
finish_time=1617971364.5
return_code=0
output=HTTP OK: HTTP/1.1 302 Moved Temporarily - 324 bytes in 0.165 second response time |time=0.165422s;;;0.000000;10.000000 size=324B;;;0
Here is a incomplete lists of libraries using this API: