diff options
| author | lijia <[email protected]> | 2019-08-28 21:47:57 +0800 |
|---|---|---|
| committer | lijia <[email protected]> | 2019-08-28 21:47:57 +0800 |
| commit | c590677badd14d11315a12b36f3b9d4d380916c9 (patch) | |
| tree | 833ba752660cc21170174116a608ea19518a747c /py_cmd | |
| parent | be51922e13472b466a57071d031e546120157540 (diff) | |
Diffstat (limited to 'py_cmd')
| -rw-r--r-- | py_cmd/tsg_diagnose.py | 151 | ||||
| -rw-r--r-- | py_cmd/tsg_diagnose.py.bak | 164 |
2 files changed, 166 insertions, 149 deletions
diff --git a/py_cmd/tsg_diagnose.py b/py_cmd/tsg_diagnose.py index c8bf8d8..8d5b36b 100644 --- a/py_cmd/tsg_diagnose.py +++ b/py_cmd/tsg_diagnose.py @@ -2,6 +2,7 @@ import re import argparse import sys +from sys import path import syslog import random path.append(r'../py_common') #将存放module的路径添加进来 @@ -11,154 +12,6 @@ from common_diagnose import * #前台执行的diagnose cli命令, 不写syslog日志 #后台自动监测脚本, 写syslog, 也就是APP FM的功能 #写日志仅限于app相关, cpu,mem是snmp模块负责的 - -#define KERN_EMERG "<0>" /* system is unusable */ -#define KERN_ALERT "<1>" /* action must be taken immediately */ -#define KERN_CRIT "<2>" /* critical conditions */ -#define KERN_ERR "<3>" /* error conditions */ -#define KERN_WARNING "<4>" /* warning conditions */ -#define KERN_NOTICE "<5>" /* normal but significant condition */ -#define KERN_INFO "<6>" /* informational */ -#define KERN_DEBUG "<7>" /* debug-level messages */ - -MSG_PREFIX = ['EMERG', 'ALERT', 'CRIT', 'ERR', 'WARNING', 'NOTICE', 'INFO', 'DEBUG'] - -G_SYSLOG_EVENT_SRC = "CLI" -G_DIAGNOSE_NAME = "tsg_diagnose" -G_DIAGNOSE_VERSION = "1.0.6 20190827" - -def tsg_diagnose_for_app(): - app_msg = ['app is not running', 'app is not running', 'app is not running', 'app maybe deadlock', 'app is reboot in 5 minute'] - app_msg.append('app is running normally') - app_msg.append('app is running normally') - app_msg.append('app is running normally') - - num = random.randint(1,7) - if num <= 4: - msg = "[%s] %s" %(MSG_PREFIX[num], app_msg[num]) - syslog.syslog(num, msg) - print(msg) - return num - -def tsg_diagnose_for_cpu(): - cpu_msg = [] - cpu_msg.append('CPU usage over 95%') - cpu_msg.append('CPU usage over 90%') - cpu_msg.append('CPU usage over 85%') - cpu_msg.append('CPU usage over 80%') - cpu_msg.append('CPU usage over 70%') - - num = random.randint(1,7) - if num <= 4: - msg = "[%s] %s" %(MSG_PREFIX[num], cpu_msg[num]) - syslog.syslog(num, msg) - print(msg) - return num - - -def tsg_diagnose_for_mem(): - mem_msg = [] - mem_msg.append('free memory less than 1%') - mem_msg.append('free memory less than 5%') - mem_msg.append('free memory less than 10%') - mem_msg.append('free memory less than 15%') - mem_msg.append('free memory less than 20%') - - num = random.randint(1,7) - if num <= 4: - msg = "[%s] %s" %(MSG_PREFIX[num], mem_msg[num]) - syslog.syslog(num, msg) - print(msg) - return num - - -def tsg_diagnose_for_disk(): - disk_msg = [] - disk_msg.append('disk usage over 99%') - disk_msg.append('disk usage over 95%') - disk_msg.append('disk usage over 90%') - disk_msg.append('disk usage over 85%') - disk_msg.append('disk usage over 80%') - - num = random.randint(1,7) - if num <= 4: - msg = "[%s] %s" %(MSG_PREFIX[num], disk_msg[num]) - syslog.syslog(num, msg) - print(msg) - return num - -def tsg_diagnose_for_network(): - return 7 - -def tsg_diagnose(): - - log_handle = syslog.openlog("TSG-MXN") - - diagnose_level = syslog.LOG_DEBUG - - #check app, not running, dead-lock - check_ret = tsg_diagnose_for_app() - if check_ret < diagnose_level: - diagnose_level = check_ret - - #error, critical return immediately - if diagnose_level <= syslog.LOG_WARNING: - return diagnose_level - - #check app, drop packet, traffic bps - check_ret = tsg_diagnose_for_network() - if check_ret < diagnose_level: - diagnose_level = check_ret - #error, critical return immediately - if diagnose_level <= syslog.LOG_WARNING: - return diagnose_level - - - #check cpu, more than 80%, 90%, 95% - check_ret = tsg_diagnose_for_cpu() - if check_ret < diagnose_level: - diagnose_level = check_ret - #error, critical return immediately - if diagnose_level <= syslog.LOG_WARNING: - return diagnose_level - - #check mem, free memory less than 10% - check_ret = tsg_diagnose_for_mem() - if check_ret < diagnose_level: - diagnose_level = check_ret - #error, critical return immediately - if diagnose_level <= syslog.LOG_WARNING: - return diagnose_level - - - #check disk, free disk space less than 5% - check_ret = tsg_diagnose_for_mem() - if check_ret < diagnose_level: - diagnose_level = check_ret - #error, critical return immediately - if diagnose_level <= syslog.LOG_WARNING: - return diagnose_level - - #if not error, output success - syslog.syslog(syslog.LOG_DEBUG, "TSG diagnose completed, all modules are running normally!") - print ("TSG diagnose completed, all modules are running normally!") - return 0 - -def setup_cmd_args(): - parser = argparse.ArgumentParser(description='TSG OAM Argument Parser') - - parser.add_argument('-v', '--version', help = 'Print version information', - action='store_true', default = 0) - - return parser if __name__ == '__main__': - comm_arg_parser = setup_cmd_args() - arg_options = comm_arg_parser.parse_args() - - if arg_options.version != 0: - print("%s version: %s" %(G_DIAGNOSE_NAME, G_DIAGNOSE_VERSION)) - sys.exit(0) - - fun_res_code = tsg_diagnose() - sys.exit(fun_res_code) + tsg_common_diagnose(1) diff --git a/py_cmd/tsg_diagnose.py.bak b/py_cmd/tsg_diagnose.py.bak new file mode 100644 index 0000000..c8bf8d8 --- /dev/null +++ b/py_cmd/tsg_diagnose.py.bak @@ -0,0 +1,164 @@ +#coding=utf-8 +import re +import argparse +import sys +import syslog +import random +path.append(r'../py_common') #将存放module的路径添加进来 +path.append(r'./py_common') #将存放module的路径添加进来 +from common_diagnose import * + +#前台执行的diagnose cli命令, 不写syslog日志 +#后台自动监测脚本, 写syslog, 也就是APP FM的功能 +#写日志仅限于app相关, cpu,mem是snmp模块负责的 + +#define KERN_EMERG "<0>" /* system is unusable */ +#define KERN_ALERT "<1>" /* action must be taken immediately */ +#define KERN_CRIT "<2>" /* critical conditions */ +#define KERN_ERR "<3>" /* error conditions */ +#define KERN_WARNING "<4>" /* warning conditions */ +#define KERN_NOTICE "<5>" /* normal but significant condition */ +#define KERN_INFO "<6>" /* informational */ +#define KERN_DEBUG "<7>" /* debug-level messages */ + +MSG_PREFIX = ['EMERG', 'ALERT', 'CRIT', 'ERR', 'WARNING', 'NOTICE', 'INFO', 'DEBUG'] + +G_SYSLOG_EVENT_SRC = "CLI" +G_DIAGNOSE_NAME = "tsg_diagnose" +G_DIAGNOSE_VERSION = "1.0.6 20190827" + +def tsg_diagnose_for_app(): + app_msg = ['app is not running', 'app is not running', 'app is not running', 'app maybe deadlock', 'app is reboot in 5 minute'] + app_msg.append('app is running normally') + app_msg.append('app is running normally') + app_msg.append('app is running normally') + + num = random.randint(1,7) + if num <= 4: + msg = "[%s] %s" %(MSG_PREFIX[num], app_msg[num]) + syslog.syslog(num, msg) + print(msg) + return num + +def tsg_diagnose_for_cpu(): + cpu_msg = [] + cpu_msg.append('CPU usage over 95%') + cpu_msg.append('CPU usage over 90%') + cpu_msg.append('CPU usage over 85%') + cpu_msg.append('CPU usage over 80%') + cpu_msg.append('CPU usage over 70%') + + num = random.randint(1,7) + if num <= 4: + msg = "[%s] %s" %(MSG_PREFIX[num], cpu_msg[num]) + syslog.syslog(num, msg) + print(msg) + return num + + +def tsg_diagnose_for_mem(): + mem_msg = [] + mem_msg.append('free memory less than 1%') + mem_msg.append('free memory less than 5%') + mem_msg.append('free memory less than 10%') + mem_msg.append('free memory less than 15%') + mem_msg.append('free memory less than 20%') + + num = random.randint(1,7) + if num <= 4: + msg = "[%s] %s" %(MSG_PREFIX[num], mem_msg[num]) + syslog.syslog(num, msg) + print(msg) + return num + + +def tsg_diagnose_for_disk(): + disk_msg = [] + disk_msg.append('disk usage over 99%') + disk_msg.append('disk usage over 95%') + disk_msg.append('disk usage over 90%') + disk_msg.append('disk usage over 85%') + disk_msg.append('disk usage over 80%') + + num = random.randint(1,7) + if num <= 4: + msg = "[%s] %s" %(MSG_PREFIX[num], disk_msg[num]) + syslog.syslog(num, msg) + print(msg) + return num + +def tsg_diagnose_for_network(): + return 7 + +def tsg_diagnose(): + + log_handle = syslog.openlog("TSG-MXN") + + diagnose_level = syslog.LOG_DEBUG + + #check app, not running, dead-lock + check_ret = tsg_diagnose_for_app() + if check_ret < diagnose_level: + diagnose_level = check_ret + + #error, critical return immediately + if diagnose_level <= syslog.LOG_WARNING: + return diagnose_level + + #check app, drop packet, traffic bps + check_ret = tsg_diagnose_for_network() + if check_ret < diagnose_level: + diagnose_level = check_ret + #error, critical return immediately + if diagnose_level <= syslog.LOG_WARNING: + return diagnose_level + + + #check cpu, more than 80%, 90%, 95% + check_ret = tsg_diagnose_for_cpu() + if check_ret < diagnose_level: + diagnose_level = check_ret + #error, critical return immediately + if diagnose_level <= syslog.LOG_WARNING: + return diagnose_level + + #check mem, free memory less than 10% + check_ret = tsg_diagnose_for_mem() + if check_ret < diagnose_level: + diagnose_level = check_ret + #error, critical return immediately + if diagnose_level <= syslog.LOG_WARNING: + return diagnose_level + + + #check disk, free disk space less than 5% + check_ret = tsg_diagnose_for_mem() + if check_ret < diagnose_level: + diagnose_level = check_ret + #error, critical return immediately + if diagnose_level <= syslog.LOG_WARNING: + return diagnose_level + + #if not error, output success + syslog.syslog(syslog.LOG_DEBUG, "TSG diagnose completed, all modules are running normally!") + print ("TSG diagnose completed, all modules are running normally!") + return 0 + +def setup_cmd_args(): + parser = argparse.ArgumentParser(description='TSG OAM Argument Parser') + + parser.add_argument('-v', '--version', help = 'Print version information', + action='store_true', default = 0) + + return parser + +if __name__ == '__main__': + comm_arg_parser = setup_cmd_args() + arg_options = comm_arg_parser.parse_args() + + if arg_options.version != 0: + print("%s version: %s" %(G_DIAGNOSE_NAME, G_DIAGNOSE_VERSION)) + sys.exit(0) + + fun_res_code = tsg_diagnose() + sys.exit(fun_res_code) |
