2019獨角獸企業重金招聘Python工程師標準>>>
添加自定義監控項目
- 需求:監控某臺web的80端口連接數,并出圖
- 兩步:1)zabbix監控中心創建監控項目;2)針對該監控項目以圖形展現
- 對于第一步,需要到客戶端定義腳本
- vim /usr/local/sbin/estab.sh //內容如下
#!/bin/bash
##獲取80端口并發連接數
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
- chmod 755 /usr/local/sbin/estab.sh
- 客戶端上編輯配置文件 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服務 systemctl restart zabbix-agent
- 首先到服務端驗證,執行命令
- zabbix_get -s 192.168.133.132 -p 10050 -k 'my.estab.count‘
- 然后在zabbix監控中心(瀏覽器)配置增加監控項目
- 鍵值寫my.estab.count
- 添加該項目后,到“監測中”? “最新數據”查看剛添加的項目是否有數據出現
- 有了數據就可以添加圖形了
- “配置”?“主機” ?“圖形” ?“創建圖形”
首先在客戶端上編寫腳本,內容如下,保存退出
添加zabbix用戶執行的權限
客戶端上編輯配置文件,搜索 /UnsafeUserParameters
UnsafeUserParameters=1 ,目的是使用自定義腳本
重啟zabbix服務
服務端驗證腳本是否生效
web端zabbix監控中心增加監控項目(配置、主機 、監控項、創建監控項)
添加圖形(圖形、創建圖形)
然后選擇預覽
添加一個觸發器(觸發器、創建觸發器),并發連接數最新值T大于N(自定義該值,在此N=200)時觸發該警報
置郵件告警
首先登錄163郵箱,開啟POP3、IMAP、SMTP服務,開啟并記住授權碼
進入zabbix的web界面,監控中心設置郵件告警(?管理、報警媒介類型、創建媒體類型)
創建報警腳本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 = 25try:msg = MIMEText(unicode(content).encode('utf-8'))msg['from'] = mailfrommsg['to'] = mailtomsg['Reply-To'] = mailfrommsg['Subject'] = subjectsmtp = 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]
##定義QQ郵箱的賬號和密碼,你需要修改成你自己的賬號和密碼(請不要把真實的用戶名和密碼放到網上公開,否則你會死的很慘)sendqqmail('163郵箱','密碼','163郵箱',to,subject,content)if __name__ == "__main__":main()
更改mail.py腳本的權限
測試mail.py是否能發郵件
打開163郵箱,會看到郵件
創建一個接受告警郵件的用戶(管理、用戶、創建用戶);報警媒介,類型選擇baojing
配置用戶權限(管理、用戶群組)
配置動作(配置、動作、創建動作)
測試告警
方便測試,創建一個自定義觸發器(配置、主機、觸發器、創建觸發器)
儀表板出現報錯信息
收到告警郵件
回到觸發器負載改成大于1,儀表板顯示正常,并查看郵箱
?