Zabbix Output¶
The Zabbix Output receives Storm tuples, convert them in a Json event and sent that event to Zabbix server. It supports SSL (TLS) authentication.
Note: This node DOES NOT use bulked asynchronous strategy yet. This node DOES NOT batch by small groups and each tuple sent one zabbix event.
Warning
This node is a "Custom Node". Therefore, you need to make sure the jar is in the execution environment and note the subtlety of the node declaration. This node declaration will change in a future version.
Overview¶
{
type: third_party_node
class: org.thales.punch.nodes.zabbix.ZabbixOutputNode
settings: {
"host": "127.0.0.1",
"port": 10051,
"event_hostname": "Precision-5530",
"event_key": "zabbix_trapper_key",
"ssl_truststore_location: "/trust/store/path",
"ssl_truststore_password": "trustStorePassword",
"connection_timeout": 3000,
}
subscribe: [
{
component: punchlet_node
stream: logs
fields: ["host", "key", "value", "clock"]
}
]
publish: [
{
stream: logs
fields: ["host", "key", "value", "failed", "processed", "total", "json_mapper"]
}
]
}
Parameters¶
The zabbix output accepts the following settings:
-
host
: (string, mandatory)the hostname/ip of the zabbix server
-
port
: (integer: mandatory)the zabbix port.
-
event_hostname
(string: optional)set default event "host" key. Can be override by tuple field "host".
-
event_key
(string: optional)set default event "key" key. Can be override by tuple field "key".
-
ssl_truststore_location
(string: optional)ssl authentication, pass trust store path.
-
ssl_truststore_password
(string: optional)password for the trust store
-
connection_timeout
(integer: option)connexion timeout for socket
Failing strategy¶
You may want to avoid failing your tuple in case of event error,
in order to keep your punchline running for example. To do that and keep
track of the failing tuples, you can define a _ppf_errors
stream in your
publish
settings. If such a stream exists, then your node will not fail tuple
but ack them and send them to the _ppf_errors
stream, in order to be processed.
{
type: third_party_node
class: org.thales.punch.nodes.zabbix.ZabbixOutputNode
settings : {
publish : [
{
stream : _ppf_errors
}
]
}
subscribe: [
]
}
All these following fields will be provided:
- host : contains the input host sent to zabbix
- key : contains the input key sent to zabbix
- value : contains the input value sent to zabbix
- clock : contains the event clock (timestamp) sent to zabbix
- processed : number of processed (succeed) events accepted by zabbix. Because one event is sent for each input tuple, the expected value is "1". "0" in case of zabbix server failure
- failed : number of failed events by zabbix server. Because one event is sent for each input tuple, the expected value is "0". "1" in case of zabbix server failure.
- total : number of events sent to zabbix server. Because one event is sent for each input tuple, the expected value is always "1".
- spent_time : time used by zabbix server to process event in second.
Security¶
Additional parameters are available to configure the Zabbix output node with security settings for :
- TLS and authentication uses trust store Example :
{
type: third_party_node
class: org.thales.punch.nodes.zabbix.ZabbixOutputNode
settings: {
host: 127.0.0.1
port: 10051
ssl_truststore_location: data/certs/truststore.jks
ssl_truststore_pass: truststore_secret
}
}
Note
For Security configuration read Zabbix encryption documentation