zoukankan      html  css  js  c++  java
  • 用python 脚本实现zabbix对java端口报警

    vim  /apps/zabbix/sh/check_port.py
    #!/usr/bin/env python
    #coding:utf-8
    import os, json
    port_list=[]
    port_dict={"data":None}
    cmd='''ss -tnlp|grep java|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|egrep '^8|^9'|sort |uniq 2>/dev/null'''
    local_ports=os.popen(cmd).readlines()
    for port in local_ports:
    pdict={}
    pdict["{#TCP_PORT}"]=port.replace(" ", "")
    port_list.append(pdict)
    port_dict["data"]=port_list
    jsonStr = json.dumps(port_dict, sort_keys=True, indent=4)
    print jsonStr

    2、被监控主机上修改zabbix agent的配置文件,增加最后的两条配置项,并且重启
    # cat zabbix_agentd.conf
    Server=$serverIP
    ServerActive=$serverIP
    Hostname=$hostname
    AllowRoot=1
    Include=/apps/zabbix/etc/zabbix_agent.d/*.conf
    UnsafeUserParameters=1
    UserParameter=tcpPortListen,/apps/zabbix/sh/check_port.py

    3、zabbix系统上新建模板
    a、新建模板‘Template Ports Discovery For JAVA app’;
    b、在自动发现规则中创建发现规则,名称为‘Template JAVA Ports Discovery’,类型为‘zabbix客户端’,键值为‘tcpPortListen’;
    c、在自动发现清单中创建监控项原型,名称‘tcp port $1 for JAVA’,类型为‘zabbix客户端’,键值为net.tcp.listen[{#TCP_PORT}];
    d、继续创建触发器类型,名称为‘JAVA APP tcp port {#TCP_PORT} down’,表达式‘{Template Ports Discovery For JAVA app:net.tcp.listen[{#TCP_PORT}].last()}<>1’,严重性选择‘严重’。

    4、将模板应用于被监控主机,并且清理其他的重复的端口监控,完成。

  • 相关阅读:
    Android开发-httpclient兼容性问题
    Android开发-新建线程崩溃
    git 通过nginx 无法clone
    再谈git的http服务-权限控制gitweb版(未成功)
    再谈git的http服务-权限控制hooks版
    git push报错:error: RPC failed; result=22, HTTP code = 413
    再谈git的http服务
    Android开发-自动更新
    Android开发-Android Studio使用问题解决
    mac-文本编辑器
  • 原文地址:https://www.cnblogs.com/hyming011/p/8086804.html
Copyright © 2011-2022 走看看