保存下面的腳本到任意路徑 名字.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要一樣且順序相同
照着圖上添加