kubernetes 集群状态监控脚本

阅读(1,869)

通过访问kubernetes的api接口取出各node节点的状态是否为Ready状态,然后进行状态判断并保存在不同的列表最最后进行统计,根据不同的返回值进行判断然后返回给zabbix根据不同的值进行下一步判断是否超过阈值及报警,脚本如下:

[root@kubernetes-master1 ~]# cat k8s_monitor.py 
#!/usr/bin/env python
#coding:utf-8
#Author Zhang jie

import  subprocess
success_list = []
error_list= []
def get_status():
    obj = subprocess.Popen(("curl -sXGET http://10.20.15.209:8080/api/v1/nodes"),shell=True, stdout=subprocess.PIPE)
    data =  obj.stdout.read()
    data1 = eval(data)
    data2 = data1.get('items')
    #print data2
    for i in data2:
        data3 = i.get('status')
        for i in data3.get('conditions'):
            if i.get('reason') == 'KubeletReady':
                if i.get('type') == "Ready":
                    if i.get('status') == 'True':
                        success_list.append(i.get('status'))
                    elif i.get('status') == 'False':
                        error_list.append(i.get('status'))
                    else:
                        break
                else:
                    error_list.append(i.get('status'))
                    #pass
            else:
                error_list.append(i.get('status'))
def count_status():
    if len(error_list) == 0:
        print 50
    else:
        print 100

def main():
    get_status()
    count_status()

if __name__ == "__main__":
    main()

发表评论

电子邮件地址不会被公开。 必填项已用*标注