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/tsg_diagnose.py | |
| parent | be51922e13472b466a57071d031e546120157540 (diff) | |
Diffstat (limited to 'py_cmd/tsg_diagnose.py')
| -rw-r--r-- | py_cmd/tsg_diagnose.py | 151 |
1 files changed, 2 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) |
