一、基礎環境:
zabbix
python3
linux
二、源碼及其配置
1.zabbix_agent
端配置模擬登錄腳本
將腳本放置在/etc/zabbix/
下
cat mem_login.py
#!/bin/python
import requests,json,time,sys
url_mem={
'公網記憶':'http://memo.mintxxxxx.com/Mintel/servlet/getUserRecord?userId=xxxxxx',
'用戶中心':'http://usercenter.xxx.com/user_xxxxxx/',
'C端記憶':'http://c.quizii.com/xxxxx/servlet/getUserRecord?userId=xxxxxxx',
}
def Login(key,url):
ls = []
c=0
if key != '用戶中心':
for i in range(5):
try:
r = requests.get(url, timeout=10)
a=r.text.find('新標準高中必修1(2007)')
except Exception as e:
ls.append(0)
continue
if a != -1:
ls.append(1)
else:
ls.append(0)
elif key == '用戶中心':
for i in range(5):
try:
r = requests.get(url, timeout=10)
a=r.text.find('用戶中心歡迎你')
except Exception as e:
ls.append(0)
continue
if a != -1:
ls.append(1)
else:
ls.append(0)
for v in ls:
if v == 1:
return 1
break
else:
c =c+1
#print (c)
if c == 5:
return 0
def main(key):
url = url_mem[key]
app = Login(key,url)
print(app)
main(key=sys.argv[1])
2.自定義zabbix key
值
此處的 $1
爲zabbix_server
端配置自定義監控項時的key值,必須與腳本中傳入的參數相對應,否則取數據將出錯
3.重啓zabbix-agent
服務,
service zabbix-agent restart
如何驗證自定義key生效:
(1)安裝zabbix_get
不會安裝zabbix_get,請點擊我
(2)配置agent
端key
能被本機獲取,默認是沒有的
vim zabbix_agentd.conf
重啓agent
端服務
(3)測試
[root@testMintel zabbix]# zabbix_get -s 127.0.0.1 -p 10050 -k "mem.status[用戶中心]"
1
正常登錄,獲取到我代碼裏想要的信息。
這裏我代碼裏設置若正常登錄則返回1,zabbix就此作爲報警判斷依據
三、zabbix_server
端配置
我這裏將所有的模擬登錄監控項新建了一個模板,若你們網站不多的話,不需要新建模板
配置監控項:
這裏添加完一個監控項之後,其他的可以克隆,但還是需要更改對應的key值,工作量還是很大的
配置觸發器:
若最後一次獲取的值等於0 則就是模擬登錄失敗,發送報警信息到手機
進行標記
將此模板鏈接到之前存放腳本並配置的agent服務器上
配置完成之後點擊監測-最新數據-找到主機,等待五分鐘,我們看到已經獲取到數據
接下來就是告警信息的發送了
依次點擊 配置–動作
接下來就是報警媒介的設置
四、至此,全部大功告成,截幾張報警的圖給大家瞅瞅