12月26日任務python
19.12 添加自定義監控項目linux
19.13/19.14 配置郵件告警web
19.15 測試告警vim
19.16 不發郵件的問題處理bash
zabbix能夠自定義監控項目,知足個性化的需求。例如網站註冊量、訪問量等具體監控項目就須要編寫相關的腳原本監控數據,以知足具體應用的需求。服務器
實例:監控某臺web的80端口鏈接數,並出圖(步驟以下)測試
[root@client ~]# vim /usr/local/sbin/estab.sh #!/bin/bash ##獲取80端口轉發鏈接數 netstat -ant | grep ':80' | grep -c ESTABLISHED [root@client ~]# chmod 755 /usr/local/sbin/estab.sh
[root@client ~]# vim /etc/zabbix/zabbix_agentd.conf //增長 UnsafeUserParameters=1 //表示使用自定義腳本 UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh //自定義監控項的key爲my.estab.count,後面的[*]裏面寫腳本的參數,若是沒有參數則能夠省略,腳本爲/usr/local/sbin/estab.sh //重啓zabbix-agent服務 [root@client ~]# systemctl restart zabbix-agent
//有值顯示錶示配置有效 [root@server ~]# zabbix_get -s 192.168.65.134 -p 10050 -k 'my.estab.count' 0
這裏測試時最好保持防火牆、selinux的通暢網站
在web網頁配置監控項配置-->主機-->client1--> 建立監控項
this
填寫監控項名稱及鍵值spa
監控項圖形效果預覽
選擇觸發條件
須要點擊添加,使表達式生效
登陸你的163郵箱,點擊設置-->POP3/SMTP/IMAP
,選中POP3/SMTP
和IMAP/SMTP
這2個服務。(開啓IMAP/SMTP服務須要設置客戶端受權碼,該密碼用於後續發郵件)
建立報警媒介
# 腳本存放目錄在zabbix_server.conf內定義了 [root@server ~]# grep alert /etc/zabbix/zabbix_server.conf | grep -v "#" AlertScriptsPath=/usr/lib/zabbix/alertscripts [root@server ~]# cd /usr/lib/zabbix/alertscripts/ # 編寫腳本並賦予權限 [root@server alertscripts]# vim mail.py #!/usr/bin/env python #-*- coding: UTF-8 -*- import os,sys reload(sys) sys.setdefaultencoding('utf8') import getopt import smtplib from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from subprocess import * def sendqqmail(username,password,mailfrom,mailto,subject,content): gserver = 'smtp.163.com' gport = 25 try: msg = MIMEText(unicode(content).encode('utf-8')) msg['from'] = mailfrom msg['to'] = mailto msg['Reply-To'] = mailfrom msg['Subject'] = subject smtp = smtplib.SMTP(gserver, gport) smtp.set_debuglevel(0) smtp.ehlo() smtp.login(username,password) smtp.sendmail(mailfrom, mailto, msg.as_string()) smtp.close() except Exception,err: print "Send mail failed. Error: %s" % err def main(): to=sys.argv[1] subject=sys.argv[2] content=sys.argv[3] sendqqmail('18367826960@163.com','你的受權碼','18367826960@163.com',to,subject,content) if __name__ == "__main__": main() [root@server alertscripts]# chmod 777 /usr/lib/zabbix/alertscripts/mail.py
[root@server alertscripts]# python mail.py 18367826960@163.com "test" "this is a test"
這裏須要到用戶組內進行設置
維護狀態 非在 維護 :在維護狀態時不報警
HOST:{HOST.NAME} {HOST.IP} TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME} messages:{ITEM.NAME}:{ITEM.VALUE} ID:{EVENT.ID}
配置操做的細節
最終告警配置
這裏在主機內新建一個觸發器"負載"用於測試,並調整其監控項刷新時間爲10s。
設置表達式{client1:system.cpu.load[percpu,avg1].last()}<1
點擊監測中 --> 儀表盤
,問題出現,郵箱成功接收到告警郵件
在測試中,因爲我報警媒介類型設置中腳本名稱寫錯致使郵件沒法發送(報找不到文件錯誤),修改後正常接收郵件。
經常使用的排查錯誤的步驟:
告警媒介類型
腳本名稱、參數及其順序
郵件腳本
腳本存儲路徑、腳本是否可用、腳本權限
用戶
用戶羣組設置、報警媒介選擇、權限是否讀寫
動做
觸發條件、操做、恢復操做是否配置正確
在主機(模板)的監控項內配置
默認是zabbix客戶端
即被動模式;主動模式須要選擇zabbix客戶端(主動式)
。