添加自定義監控項目,配置郵件告警,測試告警,不發郵件的問題處理
阿新 • • 發佈:2018-07-12
lis led ply zabbix 監控 gin 時間 ado 客戶 Coding 添加自定義監控項目
- 需求:監控某臺web的80端口連接數,並出圖
- 兩步:1)zabbix監控中心創建監控項目;2)針對該監控項目以圖形展現
- 對於第一步,需要到客戶端定義腳本,並賦予755權限,因為需要zabbix用戶可以執行它
[root@akuilinux02 ~]# vim /usr/local/sbin/estab.sh #!/bin/bash ##獲取80端口並發連接數 netstat -ant |grep ‘:80 ‘ |grep -c ESTABLISHED [root@akuilinux02 ~]# chmod 755 !$ chmod 755 /usr/local/sbin/estab.sh
- 客戶端上編輯配置文件,增加兩項
[root@akuilinux02 ~]# 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
- 第二步,首先到服務端驗證
[root@akuilinux01 ~]# zabbix_get -s 192.168.21.129 -p 10050 -k ‘my.estab.count‘ 0
- 然後在zabbix監控中心(瀏覽器)配置增加監控項目
- 給自定義的監控項創建圖形
- 給自定義的監控項目做個觸發器
配置郵件告警
- 使用163或者QQ郵箱發告警郵件
- 首先登錄你的163郵箱,設置開啟POP3、IMAP、SMTP服務,開啟授權碼
- 然後到監控中心設置郵件告警,“管理”,“報警媒介類型”,“創建媒體類型”
- 創建報警腳本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‘ 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(‘[email protected]‘,‘aaaaaaaaaa‘,‘[email protected]‘,to,subject,content) if __name__ == "__main__": main() #####腳本使用說明###### #1. 首先定義好腳本中的郵箱賬號和密碼 #2. 腳本執行命令為:python mail.py 目標郵箱 "郵件主題" "郵件內容"
- 一定要修改權限
chmod 755 /usr/lib/zabbix/alertscripts/mail.py
- 創建一個接受告警郵件的用戶,“管理”,“用戶”,“創建用戶”,“報警媒介”,類型選擇“baojing”,註意用戶的權限,如果沒有需要到用戶組去設置權限
- 設置動作,“配置”,“動作”,“創建動作”,名稱寫“sendmail”(自定義),“新的觸發條件”,A維護狀態 非在 維護,B觸發器示警度>=未分類
- 設置操作,點擊操作 --> 把默認信息全部刪除掉 -->定義新的默認信息 -->點擊新的 --> 發送到用戶 --> 選擇Anna -->選擇 -->僅送到 -->選擇報警 -- >點擊新的 --> 條件 -->添加 --> 點完添加會看到:發送消息給用戶-->添加
HOST:{HOST.NAME} {HOST.IP} -->定義hostname TIME:{EVENT.DATE} {EVENT.TIME} -->定義時間 LEVEL:{TRIGGER.SEVERITY} -->就是前面定義的是觸發示警度 NAME:{TIRGGER.NAME} --> 哪個觸發器發生了報警 messages:{ITEM.NAME}:{ITEM.VALUE} --> 當發生報警的時候,會有什麽狀態碼 ID:{EVENT.ID} --> 事件ID
- 設置恢復操作(當負載很高的時候要發告警郵件,但當負載變成ok的時候也要發),點擊恢復 -->把默認信息全部刪除 --> 定義默認信息 --> 點擊新的 -->發送到用戶 -->選擇Anna -->僅送到-->選擇報警 -->添加
HOST:{HOST.NAME} {HOST.IP} TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME} messages:{ITEM.NAME}:{ITEM.VALUE} ID:{EVENT.ID}
測試告警
- 故意把監控項目更改成有問題的, 設置觸發器,讓它告警
- 配置-->主機--> root -02 選擇觸發器 --> 創建觸發器 --> 名稱(自定義)- 系統負載 --> 添加
-->最新的T值<N --> N 設置為1 ; 當小於1的時候就告警,正常情況下負載是0 ,那麽就會馬上告警 - 把負載值更回正常的,也會收到ok的郵件,如果設置回正常,仍然收不到郵件,那麽檢查恢復操作.
不發郵件的問題處理
- 檢查發郵件的腳本
- 檢查Zabbix 監控中心 -- 用戶設置及檢查報警媒介,查看收件人郵箱地址是否有誤
- 檢查用戶權限是否是讀寫,若不是將無法收到告警郵件
- 檢查動作--操作是否有選擇發送到用戶
添加自定義監控項目,配置郵件告警,測試告警,不發郵件的問題處理