Develop:Events
Developing Event Handlers
You can put your own PHP scripts containing functions to be called when specific events occur within FreeNATS. Each event handler function takes a single data array parameter containing specific indexed values.
To create an event handler you simple create a PHP file containing one (or more functions), place it in the server/base/site/events directory (all .php files are included from this directory on startup as long as site.include.events is set to 1) and then register the event handler functions against various event types.
You may also like to see the developing with FreeNATS documentation for some globally available features and information.
Examples
System Log (syslog) Example and First Introduction
Reference Information
Events and Data Types
All data arrays contain
event => the event id (i.e. alert_open)
alert_open
An alert is opened
nodeid => the node id
alert_close
An alert is closed
nodeid => the node id
node_test_start
The beginning of a node test sequence
nodeid => the node id in_schedule => (bool) schedule says to be tested, if false will not actually be tested
node_test_finish
The end of a node test sequence
nodeid => the node id alertlevel => the "highest" alert level of all tests
localtest_start
The start of a localtest (server-side PHP test)
nodeid => the node id testid => the full (class included) test id testtype => the test type
localtest_finish
The end of a localtest (server-side PHP test)
nodeid => the node id testid => the test id testtype => the test type alertlevel => the alert level of the test
set_alerts
Set alert level for a node
nodeid => the node id alertlevel => the new (current) alert level oldalertlevel => the previous alert level
alert_action
Called when an alert action is flushed with data (for message queue alert actions only). Called when there is something in the message queue and the flush routine has been called.
Must return true to clear the message data - false to leave if you don't want to handle that message queue
aaid => alert action id name => alert action name data => alert action data (on different lines)
nodeside_pull
Nodeside data pull has been called
nodeid => node id success => (bool) was the pull successful
nodeside_push
Nodeside data has been pushed
nodeid => node id
nodeside_process
Nodeside processing has been called
nodeid => nodeid alertlevel => "highest alert level"