zabbix  api  example

  1. #!/usr/bin/env python 
  2. #coding=utf-8 
  3.  
  4. import json,urllib2 
  5.  
  6. #url and url header 
  7. zabbix_url="http://zabbix.test.org/api_jsonrpc.php" 
  8. zabbix_header = {"Content-Type":"application/json"
  9. zabbix_user  =  "admin" 
  10. zabbix_pass  =  "123456" 
  11.  
  12. #auth user adn password 
  13. auth_data = json.dumps( 
  14.     "jsonrpc":"2.0"
  15.     "method":"user.login"
  16.     "params": { 
  17.     "user":zabbix_user, 
  18.     "password":zabbix_pass 
  19.     }, 
  20. "id":0 
  21. }) 
  22.  
  23. # create request object 
  24. request = urllib2.Request(zabbix_url,auth_data) 
  25. for key in zabbix_header: 
  26.     request.add_header(key,zabbix_header[key]) 
  27.  
  28. #auth and get authid 
  29. try
  30.     result = urllib2.urlopen(request) 
  31. except URLError as e: 
  32.     print "认证失败,请检查用户名和密码是否正确",e.code 
  33. else
  34.     response=json.loads(result.read()) 
  35.     result.close() 
  36.     auth_code=response['result'
  37.  
  38.  
  39.  
  40.  
  41. # request json 
  42. get_host_data = json.dumps( 
  43.     "jsonrpc":"2.0"
  44.     "method":"host.get"
  45.     "params":{ 
  46.         "output":["hostid","name","available","maintenance_status","status","error"], 
  47.         #"filter":{"host":""} 
  48.     }, 
  49.     #auth string 
  50.     "auth":auth_code,  
  51.     "id":1
  52. }) 
  53.   
  54. # create request object 
  55. request = urllib2.Request(zabbix_url,get_host_data) 
  56. for key in zabbix_header: 
  57.     request.add_header(key,zabbix_header[key]) 
  58.   
  59. # get host list 
  60. try
  61.     result = urllib2.urlopen(request) 
  62. except URLError as e: 
  63.     if hasattr(e, 'reason'): 
  64.         print 'We failed to reach a server.' 
  65.         print 'Reason: ', e.reason 
  66.     elif hasattr(e, 'code'): 
  67.         print 'The server could not fulfill the request.' 
  68.         print 'Error code: ', e.code 
  69. else
  70.     response = json.loads(result.read()) 
  71.     result.close() 
  72.   
  73.     print "Number Of Hosts: ", len(response['result']) 
  74.      
  75.     for host in response['result']: 
  76.         print "Host ID:",host['hostid'],"Host Name:",host['name'],"Status",host['status'