• Zabbix监控服务器异常IP登录


    保存下面的脚本到任意路径 名字.py

    修改属组和权限:

    chown zabbix:zabbix *
    chmod 755 *

    演示的路径为:/usr/local/zabbix/scripts/

    # -*- coding:utf-8 -*-
    #1.收集服务器上登录的IP
    #2.删除收集到的白名单IP
    #3.如果收集到的IP为空,则将白名单IP写入收集里面
    
    import os
    import sys
    
    #获取ip
    ip=os.popen("who -u | grep -Eo '([0-9]{1,3}.){3}[0-9]{1,3}' |sort -t'.' -k1,1nr -k2,2nr -k3,3nr -k4,4nr |uniq").read().split("
    ")
    
    #判断是否要删除ip
    newip=ip
    Whitelist=[]
    for num in range(1,len(sys.argv)):
        newip=' '.join(newip).replace(sys.argv[num], "").split()
        Whitelist.append(sys.argv[num])
    
    #判断newip是否为空,为空代表服务器没有被非其他ip登录,则显示当前正常ip登录的账号
    #避免误报,如果newip为空就将传入的参数写入newip里面
    nulll=0
    if len(newip) == 0:
        newip=Whitelist
        nulll=1
    
    #获取登录信息
    data=[]
    if nulll == 0:
        for i in newip:
            if i != '':
                #执行获取信息的命令,分割后添加到数组
                datatmp=os.popen("who -u | grep '%s'  "%i).read().split('
    ')
                for ii in os.popen("who -u | grep '%s'  "%i).read().split('
    '):
                    if ii != '':
                        data.append(ii.replace('
    ',""))
    else:
        data.append(os.popen("who -u ").read())
    #监控的信息
    print "%s
    "%' '.join(newip)
    #显示登录信息
    print '
    '.join(data)
      

    将下面的写入到/usr/local/zabbix/etc/zabbix_agentd.conf最后一行

    UserParameter=ssh[*],python /usr/local/zabbix/scripts/名字.py $1

    修改zabbix web

    配置>模板>Template OS Linux>添加监控项

    键值

    ssh["IP"]#多个IP用空格隔开,添加白名单IP,非白名单IP则会警报

    添加触发器

    名称随意

    表达式:多个IP用空格隔开与上面加的IP要一样且顺序相同

    照着图上添加

  • 相关阅读:
    ejbca 无其他数据库支持情况下的安装
    VC巨资注入开源软件产业 商业模式仍需摸索
    EJBCA 3.0 开源CA系统软件初探
    ejbca安装指南
    Navicat for ORACLE 导出数据
    cannot create oci environment/Navicat for oracle
    EL表达式 (详解)
    10个步骤让你成为高效的Web开发者
    jquery.validationEngine+ajax验证
    让您的 web 应用程序飞起来
  • 原文地址:https://www.cnblogs.com/cainiaoit/p/6565376.html
Copyright © 2020-2023  润新知