zabbix添加自定義監控項目-配置郵件告警-測試告警

添加自定義監控項目:python

需求:監控某臺web的80端口鏈接數,並出圖web

步驟:1.zabbix監控中心建立監控項目;vim

客戶端定義腳本:vim /usr/local/sbin/estab.sh               #添加如下內容:bash

#!/bin/bash
##獲取80端口併發鏈接數
netstat -ant |grep ':80 ' |grep -c ESTABLISHED

修改腳本權限:chmod 755 /usr/local/sbin/estab.sh併發

客戶端編輯配置文件: vim /etc/zabbix/zabbix_agentd.conf          #搜索UnsafeUserParameters後,添加如下內容:測試

#表示使用自定義腳本
UnsafeUserParameters=1  
#自定義監控項的key爲my.estab.count,後面的[*]裏面寫腳本的參數,若是沒有參數則能夠省略,腳本爲/usr/local/sbin/estab.sh
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh

重啓zabbix-agent服務: systemctl restart zabbix-agentdebug

服務端驗證:zabbix_get -s 192.168.133.132 -p 10050 -k 'my.estab.count‘              #ip爲agent的ip,執行後應該與在客戶端直接執行estab.sh腳本效果同樣rest

zabbix界面配置增長監控項目:配置---主機---點擊 客戶端主機的 監控項---建立監控項---填寫名稱爲 併發鏈接數---鍵值爲 my.estab.count---點擊 添加code

 

2.針對該監控項目以圖形展示server

配置---主機---點擊 客戶端主機的 圖形---點擊 建立圖形---填寫名稱爲 併發鏈接數---點擊 監控項的 添加,選中上一步定義的監控項「併發鏈接數」---點擊 添加

點擊界面生成的 「併發鏈接數」跳轉到圖形---點擊預覽

添加觸發器:

配置---主機---點擊 客戶端主機的 觸發器---點擊 建立觸發器---填寫名稱爲 併發鏈接數---嚴重性選 警告---點擊表達式右邊 添加---監控項添加,選中上一步定義的監控項「併發鏈接數」---功能 選最新T值>N(即腳本運行的最新結果的數值爲T) ---N填 200 (即腳本運行結果大於200是觸發器發出警告)---點擊 插入

 

配置郵件告警:

使用163或者QQ郵箱發送告警郵件

1.首先登陸163郵箱,開啓POP三、IMAP、SMTP服務,開啓並記住受權碼    

2。進入zabbix界面設置郵件告警: 管理---報警媒介類型---點擊 建立媒體類型---名稱 baojing---類型 腳本---腳本名稱 mail.py---點擊腳本參數的添加,添加三個參數:{ALERT.SENDTO}  {ALERT.SUBJECT}  {ALERT.MESSAGE} (即發給誰,主題,內容)---點擊 添加

3.服務端建立發郵件腳本mail.py:vim /usr/lib/zabbix/alertscripts/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.qq.com' #若是是163郵箱則是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]
##定義QQ郵箱的帳號和密碼,你須要修改爲你本身的帳號和密碼(請不要把真實的用戶名和密碼放到網上公開,不然會死的很慘)
    sendqqmail('163或QQ郵箱','受權碼','163或QQ郵箱',to,subject,content)

if __name__ == "__main__":
    main()

4.修改腳本權限:chmod 755 /usr/lib/zabbix/alertscripts/mail.py

5.測試發送郵件,執行:python mail.py  收件郵箱  "標題"  "內容"         #執行後查看對應收件郵箱是否接收到郵件

6.建立告警用戶:zabbix界面,管理---用戶---建立用戶---填寫別名,用戶名第一部分,姓氏---羣組 點添加---選擇已有的administrators組---設置密碼。

點擊 報警媒介---點擊 添加---類型 baojing---收件人 填上面申請的郵箱---點擊 添加

管理---用戶羣組---選擇上面選好的administrators組---點擊 權限---點擊 讀寫---點擊 選擇,勾選全部---點擊 添加---點擊 更新

7.設置動做(觸發器觸發報警後的行動):配置---動做---建立動做---名稱爲 sendmail---新的觸發條件:觸發器示警度>=未分類---點擊新的觸發條件的添加

點擊 操做---默認信息清空 並添加下面內容:

HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE}  {EVENT.TIME} 
LEVEL:{TRIGGER.SEVERITY} 
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}

---點擊 新的---發送到用戶 選擇第6步建立的用戶---僅發送 選擇baojing---點擊小的添加

點擊 恢復操做---默認信息清空 並添加下面內容:

HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE}  {EVENT.TIME} 
LEVEL:{TRIGGER.SEVERITY} 
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}

---點擊 新的---發送到用戶 選擇第6步建立的用戶---僅發送 選擇baojing---點擊小的添加---點擊大添加

 

測試告警:

修改原有觸發器報警條件或新增觸發器,讓觸發器達到報警狀態。查看是否有告警郵件發送。

相關文章
相關標籤/搜索