from argparse import ArgumentParser from logprint import LogPrint parser = ArgumentParser(description = 'Creates a hostgroup for each proxy, and adds all hosts monitored by it. Also, interacts with all hosts in Operacao organizing it.') parser.add_argument('--url', dest = 'url', help = 'Zabbix server address') parser.add_argument('--user', dest = 'user', help = 'Zabbix user') parser.add_argument('--password', dest = 'password', help = 'Zabbix password') parser.add_argument('--no-verbose', dest = 'verbose', action = 'store_false', help = 'Dont show any logs on screen') parser.add_argument('--verbose', dest = 'verbose', action = 'store_true') parser.set_defaults(verbose=False) parser.add_argument('--loglevel', dest = 'loglevel', default = 'ERROR', help = 'Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') args = parser.parse_args() TIMEOUT = 5.0 LOGFILE = '/tmp/%s.log' % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) HGS = [ 'Operacao', 'Operacao::Servico' ] try: zapi = ZabbixAPI(args.url,timeout=TIMEOUT) zapi.login(args.user,args.password) except Exception, e: logger.error('Unable to login: {0}'.format(e)) exit(1) def hg_cache(): return zapi.hostgroup.get(output=['name']) def hg_search(name): for hgx in hg_names: if ( hgx['name'] == name ):
parser.add_argument('--no-verbose', dest='verbose', action='store_false', help='Dont show any logs on screen') parser.add_argument('--verbose', dest='verbose', action='store_true') parser.set_defaults(verbose=False) parser.add_argument('--loglevel', dest='loglevel', default='ERROR', help='Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') args = parser.parse_args() TIMEOUT = 5.0 LOGFILE = '/tmp/%s.log' % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) HGS = ['Operacao', 'Operacao::Servico'] try: zapi = ZabbixAPI(args.url, timeout=TIMEOUT) zapi.login(args.user, args.password) except Exception, e: logger.error('Unable to login: {0}'.format(e)) exit(1) def hg_cache(): return zapi.hostgroup.get(output=['name'])
parser.add_argument('--no-proxy', dest = 'proxy', action = 'store_false', help = 'Dont change proxy mode') parser.set_defaults(proxy=False) parser.add_argument('--proxy-local', dest = 'proxy_local', action = 'store_true', help = 'Change all passive proxies to localhost') parser.add_argument('--no-proxy-local', dest = 'proxy_local', action = 'store_false', help = 'Dont change passive proxies address') parser.set_defaults(proxy_local=False) parser.add_argument('--discovery', dest = 'discovery', action = 'store_true', help = 'Disable all network discovery rules') parser.add_argument('--no-discovery', dest = 'discovery', action = 'store_false', help = 'Keep state of all network discovery rules') parser.set_defaults(discovery=True) parser.add_argument('--mail', dest = 'mail', action = 'store_true', help = 'Change email source address to [email protected]') parser.add_argument('--no-mail', dest = 'mail', action = 'store_false', help = 'Keep current email source address') parser.set_defaults(mail=True) args = parser.parse_args() TIMEOUT = 180.0 LOGFILE = '/tmp/%s.log' % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) try: zapi = ZabbixAPI(args.url,timeout=TIMEOUT) zapi.login(args.user,args.password) except Exception, e: logger.error('Unable to login: %s' % (e)) exit(1) # Grupos a manter ativo apos desabilitar todos. Usar IDs. groupids = [ 4 ] # Zabbix Servers def hosts_disable_all(): """ status de host 0 = enabled status de host 1 = disabled
forbiden_groups = ( '_DELETED', 'Cloud', 'Template', 'Zabbix' ) # Redes que sao removidas forcadamente. Nao ha discovery automatico dessas, abaixo networks_blacklist = {} networks_blacklist['rj'] = [ '10.0.0.0/16' ] networks_blacklist['sp'] = [ '10.1.0.0/16' ] DNS_SUFIX = 'suaempresa.com' # Concatenado nas buscas de ip/dns ZABBIX_SERVERS = { 'http://zabbix.suaempresa.com' : [ '10.0.1.1', '10.0.1.2' ], 'http://zabbix2.suaempresa.com' : [ 'localhost' ], } # OTHER VARIABLES args = parser.parse_args() fake = args.fake LOGFILE = '/tmp/zbx_discovery-manager.log' logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) loglevels = { 'CRITICAL' : 50, 'ERROR' : 40, 'WARNING' : 30, 'INFO' : 20, 'DEBUG' : 10 } try: zapi = ZabbixAPI(args.url,timeout=TIMEOUT) zapi.login(args.user,args.password) except Exception, e: logger.error('Unable to login: {0}'.format(e)) exit(1)
parser = ArgumentParser(description = 'Collect history data from selected items') parser.add_argument('--url', required = True, dest = 'url', help = 'Zabbix server address') parser.add_argument('--user', required = True, dest = 'user', help = 'Zabbix user') parser.add_argument('--password', required = True, dest = 'password', help = 'Zabbix password') parser.add_argument('--no-verbose', dest = 'verbose', action = 'store_false', help = 'Dont show any logs on screen') parser.add_argument('--verbose', dest = 'verbose', action = 'store_true') parser.set_defaults(verbose=False) parser.add_argument('--group', required = True, dest = 'group', help = 'Hostgroup name with hosts to look for') parser.add_argument('--item', required = True, dest = 'item', help = 'Item name inside each host of hostgroup') parser.add_argument('--loglevel', dest = 'loglevel', default = 'ERROR', help = 'Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') args = parser.parse_args() TIMEOUT = 15.0 LOGFILE = "/tmp/%s.log" % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) try: zapi = ZabbixAPI(args.url,timeout=TIMEOUT) zapi.login(args.user,args.password) except Exception, e: logger.error("Unable to login: %s" % (e)) exit(1) groupids = zapi.hostgroup.get(output=['groupid'],search={'name': args.group }) itens = zapi.item.get(output=['name','itemid','value_type','delay'],groupids=[x['groupid'] for x in groupids], search={'name': args.item },filter={'status': 0, 'state': 0}, selectHosts=['name'],sortorder='ASC',sortfield='itemid') value_type = itens[0]['value_type'] time_from = mktime(localtime()) - int(itens[0]['delay']) - 15
from argparse import ArgumentParser parser = ArgumentParser(description = 'This script connects to each server that looks like LINUX and stops its snmpd, preventing removed hosts from beeing rediscovered.') parser.add_argument('--url', dest = 'url', help = 'Zabbix server address') parser.add_argument('--user', dest = 'user', help = 'Zabbix user') parser.add_argument('--password', dest = 'password', help = 'Zabbix password') parser.add_argument('--no-verbose', dest = 'verbose', action = 'store_false', help = 'Dont show any logs on screen') parser.add_argument('--verbose', dest = 'verbose', action = 'store_true') parser.set_defaults(verbose=False) parser.add_argument('--loglevel', dest = 'loglevel', default = 'ERROR', help = 'Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') parser.add_argument('--sshkey', dest = 'sshkey', help = 'SSH Key to be used') parser.add_argument('--groupid', dest = 'groupid', default = '72', help = 'Groupid to be checked. Default: 72') args = parser.parse_args() LOGFILE = "/tmp/%s.log" % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) try: zapi = ZabbixAPI(args.url,timeout=TIMEOUT) zapi.login(args.user,args.password) except Exception, e: logger.error("Unable to login: %s" % (e)) exit(1) # Filtra do hostgroup _DELETED_ os hosts com status 0. a = zapi.host.get(groupids=[ args.groupid ],selectInterfaces='extend',output=['name','hostid'],filter={"status": 0}) #,templateids=['10069']) for host in a: logger.debug("Doing host %s" % host['name']) ok = 0 for ip in host['interfaces']:
parser.add_argument('--verbose', dest='verbose', action='store_true') parser.set_defaults(verbose=False) parser.add_argument('--loglevel', dest='loglevel', default='ERROR', help='Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') parser.add_argument('--sshkey', dest='sshkey', help='SSH Key to be used') parser.add_argument('--groupid', dest='groupid', default='72', help='Groupid to be checked. Default: 72') args = parser.parse_args() LOGFILE = "/tmp/%s.log" % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) try: zapi = ZabbixAPI(args.url, timeout=TIMEOUT) zapi.login(args.user, args.password) except Exception, e: logger.error("Unable to login: %s" % (e)) exit(1) # Filtra do hostgroup _DELETED_ os hosts com status 0. a = zapi.host.get(groupids=[args.groupid], selectInterfaces='extend', output=['name', 'hostid'], filter={"status": 0}) #,templateids=['10069'])
parser.add_argument('--user', dest = 'user', required = True, help = 'Zabbix user') parser.add_argument('--password', dest = 'password', required = True, help = 'Zabbix password') parser.add_argument('--no-verbose', dest = 'verbose', action = 'store_false', help = 'Don\'t show any logs on screen') parser.add_argument('--verbose', dest = 'verbose', action = 'store_true') parser.set_defaults(verbose=False) parser.add_argument('--loglevel', dest = 'loglevel', default = 'ERROR', help = 'Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') parser.add_argument('--hostname', dest = 'hostname', help = 'Host name to be removed') parser.add_argument('--groupname', dest = 'groupname', help = 'Hostgroup name to be cleaned (all hosts DELETED)! USE WITH CAUTION') parser.add_argument('--no-run', dest = 'run', action = 'store_false', help = 'Don\'t remove anything, just count (works only with hostgroup)') parser.add_argument('--run', dest = 'run', action = 'store_true', help = 'Remove every match (works only with hostgroup)') args = parser.parse_args() TIMEOUT = 30.0 LOGFILE = "/tmp/%s.log" % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) if not args.hostname and not args.groupname: logger.error('You MUST use at least one of --hostname or --groupname.') exit(1) try: zapi = ZabbixAPI(args.url,timeout=TIMEOUT) zapi.login(args.user,args.password) except Exception, e: logger.error("Unable to login: %s" % (e)) exit(1) def deleteHostByName(hostname): logger.print_json(zapi.globo.deleteMonitors(host=hostname)) return
parser.add_argument('--dbuser',dest='dbuser',help='Database user') parser.add_argument('--dbpassword',dest='dbpassword',help='Database password') parser.add_argument('--dbbkphost',dest='dbbkphost',help='Backup database to get trends data from') parser.add_argument('--dblivehost',dest='dblivehost',help='Production database to get items from') parser.add_argument('--no-verbose',dest='verbose',action='store_false',help='Don\'t show any logs on screen') parser.add_argument('--verbose',dest='verbose',action='store_true') parser.set_defaults(verbose=False) parser.add_argument('--loglevel',dest='loglevel',default='ERROR',help='Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') args=parser.parse_args() tmp_dir='../tmp' move_items_file='%s/move_items.txt' % tmp_dir TIMEOUT=30.0 LOGFILE='/tmp/%s.log' % os.path.basename(sys.argv[0]) logger=LogPrint(echo=args.verbose,logfile=LOGFILE,loglevel=args.loglevel.upper()) # Connects to zabbix api to get hostid's,verify itemid's and item type (maybe?) try: zapi=ZabbixAPI(args.url,timeout=TIMEOUT) zapi.login(args.zabbixuser,args.zabbixpassword) except Exception,e: logger.error('Unable to login to Zabbix: %s' % (e)) sys.exit(1) if not os.path.exists(tmp_dir): os.makedirs(tmp_dir) # Connects to production database (read and write) try: dblive=pymysql.connect(host=args.dblivehost,port=3306,user=args.dbuser,passwd=args.dbpassword,db='zabbix_staging') except Exception,e:
parser.add_argument('--url', dest = 'url', help = 'Zabbix server address') parser.add_argument('--user', dest = 'user', help = 'Zabbix user') parser.add_argument('--password', dest = 'password', help = 'Zabbix password') parser.add_argument('--no-verbose', dest = 'verbose', action = 'store_false', help = 'Dont show any logs on screen') parser.add_argument('--verbose', dest = 'verbose', action = 'store_true') parser.set_defaults(verbose=False) parser.add_argument('--no-run', dest = 'run', action = 'store_false', help = 'Work') parser.add_argument('--run', dest = 'run', action = 'store_true', help = 'Dont perform any operation') parser.set_defaults(run=False) parser.add_argument('--status', dest = 'status', type = int, required = True, help = 'Status to change trigger to. [0|1]') parser.add_argument('--loglevel', dest = 'loglevel', default = 'ERROR', help = 'Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') args = parser.parse_args() TIMEOUT = 5.0 LOGFILE = '/tmp/%s.log' % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) if args.status != 0 and args.status != 1: logger.error('--status should be either 0[enabled] or 1[disabled]') try: zapi = ZabbixAPI(args.url,timeout=TIMEOUT) zapi.login(args.user,args.password) except: logger.error('Unable to login. Check your credentials.') exit(1) lista = [ { 'host': 'HOST A', 'trigger': 'eth0' }, { 'host': 'HOST B', 'trigger': 'eth0' }, ]
parser.set_defaults(run=False) parser.add_argument('--status', dest='status', type=int, required=True, help='Status to change trigger to. [0|1]') parser.add_argument('--loglevel', dest='loglevel', default='ERROR', help='Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') args = parser.parse_args() TIMEOUT = 5.0 LOGFILE = '/tmp/%s.log' % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) if args.status != 0 and args.status != 1: logger.error('--status should be either 0[enabled] or 1[disabled]') try: zapi = ZabbixAPI(args.url, timeout=TIMEOUT) zapi.login(args.user, args.password) except: logger.error('Unable to login. Check your credentials.') exit(1) lista = [ { 'host': 'HOST A',
parser.add_argument( '--mail', dest='mail', action='store_true', help='Change email source address to [email protected]') parser.add_argument('--no-mail', dest='mail', action='store_false', help='Keep current email source address') parser.set_defaults(mail=True) args = parser.parse_args() TIMEOUT = 180.0 LOGFILE = '/tmp/%s.log' % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) try: zapi = ZabbixAPI(args.url, timeout=TIMEOUT) zapi.login(args.user, args.password) except Exception, e: logger.error('Unable to login: %s' % (e)) exit(1) # Grupos a manter ativo apos desabilitar todos. Usar IDs. groupids = [4] # Zabbix Servers def hosts_disable_all(): """
parser.add_argument( '--no-run', dest='run', action='store_false', help='Don\'t remove anything, just count (works only with hostgroup)') parser.add_argument('--run', dest='run', action='store_true', help='Remove every match (works only with hostgroup)') args = parser.parse_args() TIMEOUT = 30.0 LOGFILE = "/tmp/%s.log" % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) if not args.hostname and not args.groupname: logger.error('You MUST use at least one of --hostname or --groupname.') exit(1) try: zapi = ZabbixAPI(args.url, timeout=TIMEOUT) zapi.login(args.user, args.password) except Exception, e: logger.error("Unable to login: %s" % (e)) exit(1) def deleteHostByName(hostname):
parser.add_argument('--user', dest = 'user', required=True, help = 'Zabbix user') parser.add_argument('--password', dest = 'password', required=True, help = 'Zabbix password') parser.add_argument('--no-verbose', dest = 'verbose', action = 'store_false', help = 'Dont show any logs on screen') parser.add_argument('--verbose', dest = 'verbose', action = 'store_true') parser.set_defaults(verbose=True) parser.add_argument('--loglevel', dest = 'loglevel', default = 'ERROR', help = 'Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') parser.add_argument('--max-age', dest = 'max_age', default = 31, help = 'Max age in days for host to be in there') parser.add_argument('--no-run', dest = 'run', action = 'store_false', help = 'Dont remove any host, just count') parser.add_argument('--run', dest = 'run', action = 'store_true', help = 'Remove all hosts that expired') parser.add_argument('--no-matches', dest = 'matches', action = 'store_false', help = 'Dont remove any host that has no prefix') parser.add_argument('--matches', dest = 'matches', action = 'store_true', help = 'Remove all hosts that has no prefix') args = parser.parse_args() TIMEOUT = 30.0 LOGFILE = "/tmp/%s.log" % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) try: zapi = ZabbixAPI(args.url,timeout=TIMEOUT) zapi.login(args.user,args.password) except Exception, e: logger.error("Unable to login: %s" % (e)) exit(1) call = { "output": [ "name", "hostid", ], "groupids": [ 72 ], } hosts = zapi.host.get(**call) hosts_exclude = [] hosts_no_match = []
dest='group', help='Hostgroup name with hosts to look for') parser.add_argument('--item', required=True, dest='item', help='Item name inside each host of hostgroup') parser.add_argument('--loglevel', dest='loglevel', default='ERROR', help='Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') args = parser.parse_args() TIMEOUT = 15.0 LOGFILE = "/tmp/%s.log" % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) try: zapi = ZabbixAPI(args.url, timeout=TIMEOUT) zapi.login(args.user, args.password) except Exception, e: logger.error("Unable to login: %s" % (e)) exit(1) groupids = zapi.hostgroup.get(output=['groupid'], search={'name': args.group}) itens = zapi.item.get(output=['name', 'itemid', 'value_type', 'delay'], groupids=[x['groupid'] for x in groupids], search={'name': args.item}, filter={
action='store_true', help='Remove all hosts that expired') parser.add_argument('--no-matches', dest='matches', action='store_false', help='Dont remove any host that has no prefix') parser.add_argument('--matches', dest='matches', action='store_true', help='Remove all hosts that has no prefix') args = parser.parse_args() TIMEOUT = 30.0 LOGFILE = "/tmp/%s.log" % path.basename(argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) try: zapi = ZabbixAPI(args.url, timeout=TIMEOUT) zapi.login(args.user, args.password) except Exception, e: logger.error("Unable to login: %s" % (e)) exit(1) call = { "output": [ "name", "hostid", ], "groupids": [72],
action='store_false', help='Don\'t show any logs on screen') parser.add_argument('--verbose', dest='verbose', action='store_true') parser.set_defaults(verbose=False) parser.add_argument('--loglevel', dest='loglevel', default='ERROR', help='Debug level. DEBUG/INFO/WARNING/ERROR/CRITICAL') args = parser.parse_args() tmp_dir = '../tmp' move_items_file = '%s/move_items.txt' % tmp_dir TIMEOUT = 30.0 LOGFILE = '/tmp/%s.log' % os.path.basename(sys.argv[0]) logger = LogPrint(echo=args.verbose, logfile=LOGFILE, loglevel=args.loglevel.upper()) # Connects to zabbix api to get hostid's,verify itemid's and item type (maybe?) try: zapi = ZabbixAPI(args.url, timeout=TIMEOUT) zapi.login(args.zabbixuser, args.zabbixpassword) except Exception, e: logger.error('Unable to login to Zabbix: %s' % (e)) sys.exit(1) if not os.path.exists(tmp_dir): os.makedirs(tmp_dir) # Connects to production database (read and write) try: dblive = pymysql.connect(host=args.dblivehost,