module Zabbix ## Item types (see ./frontends/php/include/defines.inc.php in zabbix source) ITEM_TYPE_ZABBIX = 0 ITEM_TYPE_SNMPV1 = 1 ITEM_TYPE_TRAPPER = 2 ITEM_TYPE_SIMPLE = 3 ITEM_TYPE_SNMPV2C = 4 ITEM_TYPE_INTERNAL = 5 ITEM_TYPE_SNMPV3 = 6 ITEM_TYPE_ZABBIX_ACTIVE = 7 ITEM_TYPE_AGGREGATE = 8 ITEM_TYPE_HTTPTEST = 9 ITEM_TYPE_EXTERNAL = 10 ITEM_TYPE_DB_MONITOR = 11 ITEM_TYPE_IPMI = 12 ITEM_TYPE_SSH = 13 ITEM_TYPE_TELNET = 14 ITEM_TYPE_CALCULATED = 15 class ZabbixApi def add_item(item) # Default item options # See: http://www.zabbix.com/documentation/1.8/api/item item_options = { 'description' => nil, 'key_' => nil, 'hostid' => nil, 'delay' => 60, 'history' => 60, 'status' => 0, 'type' => 7, 'snmp_community' => '', 'snmp_oid' => '', 'value_type' => 3, 'data_type' => 0, 'trapper_hosts' => 'localhost', 'snmp_port' => 161, 'units' => '', 'multiplier' => 0, 'delta' => 0, 'snmpv3_securityname' => '', 'snmpv3_securitylevel' => 0, 'snmpv3_authpassphrase' => '', 'snmpv3_privpassphrase' => '', 'formula' => 0, 'trends' => 365, 'logtimefmt' => '', 'valuemapid' => 0, 'delay_flex' => '', 'authtype' => 0, 'username' => '', 'password' => '', 'publickey' => '', 'privatekey' => '', 'params' => '', 'ipmi_sensor' => '', 'applications' => '', 'templateid' => 0 } item_options.merge!(item) message = { 'method' => 'item.create', 'params' => [ item_options ] } response = send_request(message) unless response.empty? then result = response['itemids'][0] else result = nil end return result end def get_webitem_id(host_id, item_name) message = { 'method' => 'item.get', 'params' => { 'filter' => { 'hostid' => host_id, 'type' => 9, 'key_' => "web.test.time[eva.ru,Get main page,resp]" }, 'webitems' => 1 } } response = send_request(message) unless ( response.empty? ) then result = response[0]['itemid'] else result = nil end return result end def get_item_id(host_id, item_name) message = { 'method' => 'item.get', 'params' => { 'filter' => { 'hostid' => host_id, 'description' => item_name } } } response = send_request(message) unless ( response.empty? ) then result = response[0]['itemid'] else result = nil end return result end def update_item(item_id) message = { 'method' => 'item.update', 'params' => { 'itemid' => item_id, 'status' => 0 } } response = send_request(message) end end end