def template_get(self, templateName=''): data = json.dumps({ "jsonrpc": "2.0", "method": "template.get", "params": { "output": "extend", "filter": { "name": templateName } }, "auth": Zabbix_Auth().user_login(), "id": 1, }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: print "Error as ", e else: response = json.loads(result.read()) result.close()
def get_host(self, hostip=""): data = json.dumps({ "jsonrpc": "2.0", "method": "host.get", "params": { "output": "extend", "filter": { "host": hostip } }, "auth": Zabbix_Auth().user_login(), "id": 2 }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: if hasattr(e, 'reason'): print "We failed to reach a server." print "reason:", e.reason elif hasattr(e, "code"): print 'The server could not fulfill the request.' print 'Error code: ', e.code return 0 else: response = json.loads(result.read()) result.close() hostsid = [] for host in response['result']: hostsid.append({host['host']: host['hostid']}) return hostsid
def get_graph_value(self, graphid): data = json.dumps({ "jsonrpc": "2.0", "method": "host.get", "params": { "selectItems": ["itemid"], "filter": { "graph": graphid } }, "auth": Zabbix_Auth().user_login(), "id": 1 }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: if hasattr(e, 'reason'): print "We failed to reach a server." print "reason:", e.reason elif hasattr(e, "code"): print 'The server could not fulfill the request.' print 'Error code: ', e.code return 0 else: response = json.loads(result.read()) result.close() tmp = response['result'][0]['items'] items = [] for value in tmp: print value return "test"
def get_host_from_groupid(self, groupid=""): data = json.dumps({ "jsonrpc": "2.0", "method": "host.get", "params": { "output": ["hostid", "name"], "groupids": groupid, }, "auth": Zabbix_Auth().user_login(), "id": 1, }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) # get host list try: result = urllib2.urlopen(request) except URLError as e: if hasattr(e, 'reason'): print 'We failed to reach a server.' print 'Reason: ', e.reason elif hasattr(e, 'code'): print 'The server could not fulfill the request.' print 'Error code: ', e.code else: response = json.loads(result.read()) result.close() print "Number Of Hosts: ", len(response['result']) group_host = [] for host in response['result']: group_host.append({host["name"]: host["hostid"]}) #print "Host ID:",host['hostid'],"HostName:",host['name'] return group_host
def get_hostgroup(self, hostgroupname=""): data = json.dumps({ "jsonrpc": "2.0", "method": "hostgroup.get", "params": { "output": "extend", "filter": { "name": hostgroupname } }, "auth": Zabbix_Auth().user_login(), "id": 1, }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: print "Error as ", e else: response = json.loads(result.read()) result.close() grouphosts = [] for group in response['result']: grouphosts.append({group['name']: group['groupid']}) return grouphosts
def host_get(self, hostip=''): data = json.dumps({ "jsonrpc": "2.0", "method": "host.get", "params": { "output": "extend", "filter": { "ip": hostip } }, "auth": Zabbix_Auth().user_login(), "id": 1 }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: if hasattr(e, 'reason'): print 'Reason: ', e.reason elif hasattr(e, 'code'): print 'Error code: ', e.code else: response = json.loads(result.read()) result.close() hostlist = [] for host in response['result']: hostlist.append(host['name']) #print len(hostlist) return hostlist
def hostgroup_create(self, hostgroupName): if self.hostgroup_get(hostgroupName): print "hostgroup \033[42m%s\033[0m is exist !" % hostgroupName sys.exit(1) data = json.dumps({ "jsonrpc": "2.0", "method": "hostgroup.create", "params": { "name": hostgroupName }, "auth": Zabbix_Auth().user_login(), "id": 1 }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: print "Error as ", e else: response = json.loads(result.read()) result.close() print "\033[042m 添加主机组:%s\033[0m hostgroupID : %s" % ( hostgroupName, response['result']['groupids'])
def host_create(self, hostname, hostip, name, proxyid, hostgroupName, templateName): if self.host_get(hostip): print "\033[041m该主机已经添加!\033[0m" sys.exit(1) group_list = [] template_list = [] for i in hostgroupName.split(','): var = {} var['groupid'] = self.hostgroup_get(i) group_list.append(var) for i in templateName.split(','): var = {} var['templateid'] = self.template_get(i) template_list.append(var) data = json.dumps({ "jsonrpc": "2.0", "method": "host.create", "params": { "host": name, "name": hostname, "interfaces": [{ "type": 1, "main": 1, "useip": 1, "ip": hostip, "dns": "", "port": "10050" }], "groups": group_list, "templates": template_list, "proxy_hostid": proxyid, }, "auth": Zabbix_Auth().user_login(), "id": 1 }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: print "Error as ", e else: response = json.loads(result.read()) result.close() print "添加主机 : \033[32m%s\033[0m \tid :\033[31m%s\033[0m \tproxy :\033[31m%s\033[0m" % ( hostip, response, proxyid)
def get_host_item(self, hostid=""): data = json.dumps({ "jsonrpc": "2.0", "method": "item.get", "params": { "output": "extend", "hostids": hostid, #"host": hostname, #"search": { # "key_": "system" #}, #"sortfield": "name" }, "auth": Zabbix_Auth().user_login(), "id": 1 }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) # get host list try: result = urllib2.urlopen(request) except URLError as e: if hasattr(e, 'reason'): print 'We failed to reach a server.' print 'Reason: ', e.reason elif hasattr(e, 'code'): print 'The server could not fulfill the request.' print 'Error code: ', e.code else: response = json.loads(result.read()) result.close() print "Number Of host items: ", len(response['result']) item_host = [] for item in response['result']: print item item_host.append({item["name"]: item["itemid"]}) #print "Host ID:",host['hostid'],"HostName:",host['name'] return item_host
def host_delete(self, hostid): hostid_list = [] for i in hostid.split(','): var = {} var['hostid'] = self.host_get(i) hostid_list.append(var) data = json.dumps({ "jsonrpc": "2.0", "method": "host.delete", "params": hostid_list, "auth": Zabbix_Auth().user_login(), "id": 1 }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except Exception, e: print e
def host_disable(self, hostip): data = json.dumps({ "jsonrpc": "2.0", "method": "host.update", "params": { "hostid": self.host_get(hostip), "status": 1 }, "auth": Zabbix_Auth().user_login(), "id": 1 }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: print "Error as ", e else: response = json.loads(result.read()) result.close() print self.host_get(hostip)
def get_items_history(self, itemsid=""): data = json.dumps({ "jsonrpc": "2.0", "method": "history.get", "params": { "output": "extend", "history": 0, "itemids": itemsid, "sortfield": "clock", "sortorder": "DESC", "limit": 1 }, "auth": Zabbix_Auth().user_login(), "id": 1 }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: if hasattr(e, 'reason'): print 'We failed to reach a server.' print 'Reason: ', e.reason elif hasattr(e, 'code'): print 'The server could not fulfill the request.' print 'Error code: ', e.code else: response = json.loads(result.read()) result.close() print "Number Of items: ", len(response['result']) items_value = [] for value in response['result']: items_value.append({ u'itemid': value["itemid"], u'value': value["value"] }) return items_value