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 ):
示例#2
0
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'])

示例#3
0
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
示例#9
0
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' },
]
示例#11
0
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',
示例#12
0
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):
示例#14
0
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 = []
示例#15
0
                    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={
示例#16
0
                    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],
示例#17
0
                    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,