def check_salt_minion_fun(): check_salt_minion = check_status.objects.filter(program='check_salt_minion').first() if check_salt_minion.status == 1: sapi = SaltAPI( url = settings.SALT_API['url'], username = settings.SALT_API['user'], password = settings.SALT_API['password'] ) sapi_glb = SaltAPI( url = settings.SALT_API['url_glb'], username = settings.SALT_API['user'], password = settings.SALT_API['password'] ) minionsup, minionsdown= sapi.MinionStatus() minionsup_glb, minionsdown_glb= sapi_glb.MinionStatus() minionsdown_glb = [id for id in minionsdown_glb if 'SC' in id] else: minionsdown = [] minionsdown_glb = [] if len(minionsdown) != 0: send_mail(get_mail_list('check_salt_minion'),'Attention: salt_minion','Minion Down:'+ '\n\t' +'\n\t'.join(minionsdown)) if len(minionsdown_glb) != 0: send_mail(admin_mail_addr,'Attention: 市场部服务器故障','Minion Down:'+ '\n\t' +'\n\t'.join(minionsdown_glb)) end_time['check_salt_minion'] = time()
def IdQuery(request): if request.method == 'POST': clientip = request.META['REMOTE_ADDR'] sapi = SaltAPI(url=settings.SALT_API['url'], username=settings.SALT_API['user'], password=settings.SALT_API['password']) minionsup, minionsdown = sapi.MinionStatus() minion_list = [] logger.info('%s is requesting. %s' % (clientip, request.get_full_path())) for minion_id in minionsup: minion_dict = {} minion_dict['minion_id'] = minion_id minion_dict['minion_status'] = 'up' minion_list.append(minion_dict) for minion_id in minionsdown: minion_dict = {} minion_dict['minion_id'] = minion_id minion_dict['minion_status'] = 'down' minion_list.append(minion_dict) return HttpResponse(json.dumps(minion_list)) elif request.method == 'GET': return HttpResponse('You get nothing!') else: return HttpResponse('nothing!')
#!/usr/bin/env python #-_- coding:utf-8 -_- import os, sys, datetime, logging sys.path.append( os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))) reload(sys) sys.setdefaultencoding('utf8') from monitor import settings from saltstack.saltapi import SaltAPI from scripts.tomcat import get_mail_list basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)) #获取salt接口,接入rest接口,获取salt信息 sapi = SaltAPI(url=settings.SALT_API['url'], username=settings.SALT_API['user'], password=settings.SALT_API['password']) minionsup, minionsdown = sapi.MinionStatus()