Class: Vayacondios::ZabbixClient
- Inherits:
-
Object
- Object
- Vayacondios::ZabbixClient
- Includes:
- Gorillib::Builder
- Defined in:
- lib/vayacondios/client/zabbix_client.rb
Overview
Used for sending events to a Zabbix server.
An 'event' from Vayacondios' perspective is an arbitrary Hash.
An 'event' from Zabbix's perspective is a tuple of values:
- time
- host
- key
- value
This client will accept a Vayacondios event and internally translate it into a set of Zabbix events.
would get turned into the following events when written to Zabbix:
[ { host: "foo-server.example.com", key: "cpu.util.user", value: 0.20 } { host: "foo-server.example.com", key: "cpu.util.idle", value: 0.70 }, { host: "foo-server.example.com", key: "cpu.util.sys", value: 0.10 }, { host: "foo-server.example.com", key: "cpu.load", value: 1.3 } ]
Zabbix will interpret the time as the time it receives each event.
The following links provide details on the protocol used by Zabbix to receive events:
Instance Attribute Summary collapse
-
#socket ⇒ Object
Returns the value of attribute socket.
Instance Method Summary collapse
-
#insert(topic, cargo = {}) ⇒ Object
Insert events to a Zabbix server.
Instance Attribute Details
#socket ⇒ Object
Returns the value of attribute socket.
52 53 54 |
# File 'lib/vayacondios/client/zabbix_client.rb', line 52 def socket @socket end |
Instance Method Details
#insert(topic, cargo = {}) ⇒ Object
Insert events to a Zabbix server.
The topic will be used as the name of the Zabbix host to
associate event data to.
As per the documentation for the Zabbix sender protocol, a new TCP connection will be created for each event.
Array
69 70 71 72 73 74 |
# File 'lib/vayacondios/client/zabbix_client.rb', line 69 def insert topic, cargo={} self.socket = TCPSocket.new(host, port) send_request(topic, cargo) handle_response self.socket.close end |