Zabbix 配置SSH登录报警

Zabbix 配置SSH登录报警

配置

cd /etc/zabbix/zabbix_agentd.d
vim ssh.conf
UserParameter=ssh[*],python /home/python/ssh.py $1
#重启
systemctl restart zabbix-agent

脚本

# -*- 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("\n")

#判断是否要删除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('\n')
            for ii in os.popen("who -u | grep '%s'  "%i).read().split('\n'):
                if ii != '':
                    data.append(ii.replace('\n',""))
else:
    data.append(os.popen("who -u ").read())
#监控的信息
print "%s\n"%' '.join(newip)
#显示登录信息
print '\n'.join(data)

下载

#脚本
wget https://aalrl.com/upload/2021/07/ssh-34980bbbba834fb6948c1170c2c634be.py
#模板
wget https://aalrl.com/upload/2021/07/ssh_zbx_export_templates-59d6bf5050a245739188276203233915.xml
# Zabbix   运维   Python   SSH  

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×