• Zabbix自动发现java进程


    一:简介
    使用Python psutil模块,查找java模块,并获取启动命令,结合zabbix监控自动监控。点击下载

    二:操作
    发现脚本

    #!/usr/bin/env python
    # coding:utf-8
    
    import psutil
    import re
    import json
    
    def thread():
        try:
            data = []
            name = []
            a = psutil.pids()
            for i in a:
                p = psutil.Process(i)
                if p.name() == 'java':
                    if re.search('jar', p.cmdline()[-1]):
                         name.append(p.cmdline()[-1].split('-')[0])
            for i in name:
                data.append({'{#PNAME}': i})
            print json.dumps({'data': data}, indent=2)
        except Exception,e:
            print e
    
    thread()
    

    监控脚本

    #!/usr/bin/env python
    
    import psutil
    import re
    import json
    import sys
    
    def Process(name):
        result = []
        try:
            a = psutil.pids()
            for i in a:
                p = psutil.Process(i)
                if p.name() == 'java':
                    cmd = ' '.join(p.cmdline())
                    if re.search(name, cmd):
                        result.append(0)
                    else:
                        result.append(1)
        except Exception,e:
            print 1
        else:
            if 0 in result and result.count(0) == 1:
                print 0
            else:
                print 1
    
    
    name = sys.argv[1]
    param = sys.argv[2]
    
    if name == 'Process':
        Process(param)
    

    添加zabbix自定义key
    UserParameter=app_scan,/usr/local/zabbix/app_scan.py
    UserParameter=app_status[*],/usr/local/zabbix/app_monitor.py $1 $2

    zabbix模板,点击链接中的模板下载

  • 相关阅读:
    list和set的区别
    tcp与udp协议的区别
    c3p0的数据库连接池
    mysql的连接
    HAVING 的使用 及笛卡尔积
    break-跳出内循环
    求素数(范围自改)
    1-100累加
    1-100累乘
    类实例:飞机大战
  • 原文地址:https://www.cnblogs.com/GXLo/p/7885235.html
Copyright © 2020-2023  润新知