python-门户应用状态检查脚本


原创内容
转载请注明出处:www.cnblogs.com/zhangbo2012/
QQ:369029696  EMAIL:zhangbo2012@outlook.com

本周用python实现了一个门户应用状态检查脚本。

主要作用是快速收集应用状态,自动收集预置checkpoint的状态,在出现异常时提升问题定位效率。

已实现以下功能:
1、进程核查
2、GC情况核查
3、峰值秒PV核查
4、TCP连接数核查
5、负载情况核查
6、system error话单核查
7、watchdog状态核查
8、存储使用率核查
9、error日志核查



主要难点:
1、python对shell命令执行结果的解析,因为需要判断是否正常,需要将数据解析成array或dictionary

小技巧汇总:
1、解析shell执行结果,返回dictionary对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#解析标题+多行数据 返回dict对象;author:zhangbo2012
def resolving_shell_table_data_line(ckeys,cvalue):
    """
    ckeys= "mountpoint  free  used"
    cvalue = "
    /dev/sda2 9.0G 5%
    /dev/sda3 4.5G 4%
    /dev/sda7 18G 50%"
 
    return
    [
    {'mountpoint':'/dev/sda2','free':'9.0G','used':'5%'},
    {'mountpoint':'/dev/sda3','free':'4.5G','used':'4%'},
    {'mountpoint':'/dev/sda7','free':'18G','used':'50%'},
    ]
    """
 
    keys=[i for in ckeys.replace(" ","").split(" ") if i!=""]
 
    res = []
    for in cvalue:
        p1=[i for in p.replace(" ","").split(" ") if i!=""]
 
        if len(p1)!=len(keys):
            log("error data ")
            log(cvalue)
            log(keys)
        else:
            res.append(dict(zip(keys,p1)))
             
    return res    
 

2、文字转换为数字
1
string.atof(item['used'].replace("%",""))

不足
1、目前代码复用率不高,达到352行;
2、未实现插件化增加新功能的功能;

前景
1、优化为插件化开发方式,定义好插件规范,可以增加该脚本的可用性和拓展性;





原文地址:https://www.cnblogs.com/zhangbo2012/p/c64a557fd23ea0a303caf2e0eaf4acec.html