Beispiel #1
0
 def reloadBackend(self):
     if self.result['code'] != 300:
         return
     self.cursor.execute("select MONITOR_ID from monitor where NAME = '%s' and PRODUCT = '%s'" % (self.monitorName, self.product))
     result = self.cursor.fetchall()
     if result != None:
         monitor_id = result[0][0]
         zmonlib.controlBackend(monitor_id)
         self.result = {'code':200,'txt':u'提交成功'}
     else:
         self.result = {'code':400,'txt':u'重启后端失败'}
Beispiel #2
0
 def reloadBackend(self):
     if self.result['code'] != 300:
         return
     self.cursor.execute(
         "select MONITOR_ID from monitor where NAME = '%s' and PRODUCT = '%s'"
         % (self.monitorName, self.product))
     result = self.cursor.fetchall()
     if result != None:
         monitor_id = result[0][0]
         zmonlib.controlBackend(monitor_id)
         self.result = {'code': 200, 'txt': u'提交成功'}
     else:
         self.result = {'code': 400, 'txt': u'重启后端失败'}
Beispiel #3
0
 def deleteMonitor(self):
     monitorId = self.input["id"]
     sql = "select NAME,PRODUCT from monitor where MONITOR_ID = '%s'" % monitorId
     result = zmonlib.ExecSql(sql)
     try:
         self.monitorName = result[0][0]
         self.product = result[0][1]
     except:
         self.result = {"code": 400, "txt": "get monitor faile"}
     cmd = ["ZMON_DELETE", str(self.monitorName), str(self.product)]
     # 停掉采集进程
     zmonlib.controlBackend(monitorId, "ZMON_DELETE")
     # 删除关联的正则
     regularIds = zmonlib.getRegularIds(monitorId)
     for regularId in regularIds:
         self.deleteRegular(regularId)
     # 删除监控和机器名的关联
     result = self.deleteHostMonitor(monitorId)
     # 删除监控项
     sql = "delete from monitor where MONITOR_ID = '%s'" % monitorId
     zmonlib.ExecSql(sql)
     # 删除redis中的数据
     zmonlib.deleteRedis(str(self.product), str(self.monitorName))
     self.result = {"code": 200, "txt": u"删除成功"}
Beispiel #4
0
 def deleteMonitor(self):
     monitorId = self.input['id']
     sql = "select NAME,PRODUCT from monitor where MONITOR_ID = '%s'" % monitorId
     result = zmonlib.ExecSql(sql)
     try:
         self.monitorName = result[0][0]
         self.product = result[0][1]
     except:
         self.result = {'code': 400, 'txt': 'get monitor faile'}
     cmd = ['ZMON_DELETE', str(self.monitorName), str(self.product)]
     #停掉采集进程
     zmonlib.controlBackend(monitorId, 'ZMON_DELETE')
     #删除关联的正则
     regularIds = zmonlib.getRegularIds(monitorId)
     for regularId in regularIds:
         self.deleteRegular(regularId)
     #删除监控和机器名的关联
     result = self.deleteHostMonitor(monitorId)
     #删除监控项
     sql = "delete from monitor where MONITOR_ID = '%s'" % monitorId
     zmonlib.ExecSql(sql)
     #删除redis中的数据
     zmonlib.deleteRedis(str(self.product), str(self.monitorName))
     self.result = {'code': 200, 'txt': u'删除成功'}
Beispiel #5
0
 def updateMonitor(self):
     #读用户提交的数据
     monitorId = self.input.get('id', None)
     logPath = self.input.get('LOGPATH', None)
     grep = self.input.get('GREP', None)
     grepv = self.input.get('GREPV', None)
     if monitorId == None or logPath==None or grep==None or grepv==None:
         self.result = {'code':400,'txt':u'未知监控项'}
         return 
     #更新monitor
     sql = "update monitor set LOGPATH='%s',GREP='%s',GREPV='%s' where MONITOR_ID = '%s'" % (logPath, grep.replace('\\','\\\\'), grepv.replace('\\','\\\\'), monitorId)
     zmonlib.ExecSql(sql)
     #重启后端
     ret = zmonlib.controlBackend(monitorId)
     if ret:
         self.result = {'code':200,'txt':u'修改成功'}
     else:
         self.result = {'code':400,'txt':u'重启后端失败'}
Beispiel #6
0
 def updateMonitor(self):
     #读用户提交的数据
     monitorId = self.input.get('id', None)
     logPath = self.input.get('LOGPATH', None)
     grep = self.input.get('GREP', None)
     grepv = self.input.get('GREPV', None)
     if monitorId == None or logPath == None or grep == None or grepv == None:
         self.result = {'code': 400, 'txt': u'未知监控项'}
         return
     #更新monitor
     sql = "update monitor set LOGPATH='%s',GREP='%s',GREPV='%s' where MONITOR_ID = '%s'" % (
         logPath, grep.replace('\\', '\\\\'), grepv.replace(
             '\\', '\\\\'), monitorId)
     zmonlib.ExecSql(sql)
     #重启后端
     ret = zmonlib.controlBackend(monitorId)
     if ret:
         self.result = {'code': 200, 'txt': u'修改成功'}
     else:
         self.result = {'code': 400, 'txt': u'重启后端失败'}
Beispiel #7
0
class Update(object):
    def __init__(self, input):
        self.input = input
        self.result = {'code': 300, 'txt': u'未知错误'}

    def update(self):
        if self.input['from'] == 'monitor':
            self.updateMonitor()
        elif self.input['from'] == 'hostlist':
            self.updateHost()
        elif self.input['from'] == 'regularlist':
            self.updateRegular()
        return json.dumps(self.result)

    def updateHost(self):
        pass

    def updateMonitor(self):
        #读用户提交的数据
        monitorId = self.input.get('id', None)
        logPath = self.input.get('LOGPATH', None)
        grep = self.input.get('GREP', None)
        grepv = self.input.get('GREPV', None)
        if monitorId == None or logPath == None or grep == None or grepv == None:
            self.result = {'code': 400, 'txt': u'未知监控项'}
            return
        #更新monitor
        sql = "update monitor set LOGPATH='%s',GREP='%s',GREPV='%s' where MONITOR_ID = '%s'" % (
            logPath, grep.replace('\\', '\\\\'), grepv.replace(
                '\\', '\\\\'), monitorId)
        zmonlib.ExecSql(sql)
        #重启后端
        ret = zmonlib.controlBackend(monitorId)
        if ret:
            self.result = {'code': 200, 'txt': u'修改成功'}
        else:
            self.result = {'code': 400, 'txt': u'重启后端失败'}

    def updateRegular(self):
        #读用户提交的数据
        monitorId = self.input.get('monitorid', None)
        if monitorId == None:
            self.result = {'code': 400, 'txt': u'未知监控项'}
            return
        regularId = self.input.get('id', None)
        if regularId == None:
            self.result = {'code': 400, 'txt': u'未知正则表达式ID'}
            return
        regularEx = self.input.get('regularex', None)
        if regularEx == None:
            self.result = {'code': 400, 'txt': u'未知正则表达式'}
            return
        #正则表达式是否正确
        try:
            r = re.compile(regularEx)
        except Exception, e:
            raise web.internalerror(u'正则表达式有误,请注意检查,错误信息:[%s]' % e)
            return
        #更新正则
        sql = "update regular set EXPRESSION='%s' where REGULAR_ID = '%s'" % (
            regularEx.replace('\\', '\\\\'), regularId)
        zmonlib.ExecSql(sql)
        #重启后端
        ret = zmonlib.controlBackend(monitorId)
        if ret:
            self.result = {'code': 200, 'txt': u'修改成功'}
        else:
            self.result = {'code': 400, 'txt': u'重启后端失败'}