这是一份添加zabbix自动发现的脚本:

 
  
  1. #!/usr/bin/python 
  2. #coding:utf-8 
  3.  
  4. import MySQLdb 
  5.  
  6. class zabbix: 
  7.     def __init__(self): 
  8.         self.dbuser = 'root' 
  9.         self.dbpass = 'wisp888' 
  10.         self.dbport = 3306 
  11.         self.dbhost = 'localhost' 
  12.          
  13.     def add(self, ip): 
  14.         #连接数据库: 
  15.         conn = MySQLdb.connect(user=self.dbuser, host=self.dbhost, passwd=self.dbpass, port=self.dbport, db='zabbix'
  16.         cursor = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) 
  17.          
  18.         #判断drule表中是否已经存在此ip: 
  19.         sql = '''''select * from drules where name = %s''' 
  20.         ret = cursor.execute(sql,ip) 
  21.         if ret: 
  22.             print "%s is already exist!" % ip 
  23.         else
  24.             #获取drules表中最大的druleid,并+1,作为将要插入的记录的druleid 
  25.             sql = '''''select max(druleid) as maxid from drules''' 
  26.             ret = cursor.execute(sql) 
  27.             druleid = cursor.fetchone()['maxid'] + 1 
  28.             #print druleid 
  29.              
  30.             #插入drules: 
  31.             sql = '''''insert into drules(druleid,name,iprange) value(%s,%s,%s) ''' 
  32.             ret = cursor.execute(sql,(druleid,ip,ip)) 
  33.             conn.commit() 
  34.              
  35.             #插入dchecks: 
  36.             sql = '''''insert into dchecks(dcheckid,druleid,type,key_,ports) value(%s,%s,9,'system.uname',10050)''' 
  37.             cursor.execute(sql,(druleid,druleid)) 
  38.             conn.commit() 
  39.             print "%s add to zabbix success!" % ip 
  40.         conn.close() 
  41.          
  42.     def get_ip(self): 
  43.         conn = MySQLdb.connect(host=self.dbhost, user=self.dbuser, passwd=self.dbpass, port=self.dbport, db='ips'
  44.         cursor = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) 
  45.         sql = '''''select ip from tb_system where id != -1 group by sys_name''' 
  46.         sum = cursor.execute(sql) 
  47.         list = cursor.fetchall() 
  48.         return  list 
  49.          
  50. if __name__ == "__main__"
  51.     myzabbix = zabbix() 
  52.     for i in myzabbix.get_ip(): 
  53.         ip = i['ip'
  54.         myzabbix.add(ip)