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

將下面的寫入到/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要一樣且順序相同

照着圖上添加

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM