保存下面的脚本到任意路径 名字.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要一样且顺序相同
照着图上添加