19.12 添加自定義監控項目
19.13/19.14 配置郵件告警
19.15 測試告警
19.16 不發郵件的問題處理
19.12 添加自定義監控項目
添加自定義監控項目
· 需求:監控某臺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
· systemctl restart zabbix-agent重啓zabbix-agent服務
· 首先到服務端驗證,執行命令 (結果顯示0爲正常)
· zabbix_get -s 192.168.133.132 -p 10050 -k 'my.estab.count’
· 然後在zabbix監控中心(瀏覽器)配置增加監控項目
鍵值寫my.estab.count(主機——監控項——創建監控項)
· 添加該項目後,到“監測中”à “最新數據”查看剛添加的項目是否有數據出現
· 有了數據就可以添加圖形了
“配置”à“主機” à“圖形” à“創建圖形”
· 觸發器——創建觸發器(功能最新的t值>200 N=200)
19.13/19.14 配置郵件告警
配置告警(服務端)
· 使用163或者QQ郵箱發告警郵件
· 首先登錄你的163郵箱,設置開啓POP3、IMAP、SMTP服務,
· 開啓並記錄授權碼
· 然後到監控中心設置郵件告警
· “管理”,“報警媒介類型”,“創建媒體類型”
· {ALERT.SENDTO} 接收郵箱地址,
{ALERT.SUBJECT}主題,
{ALERT.MESSAGE}郵件內容
· 創建報警腳本mail.py
Vi /etc/zabbix、zabbix_server.conf 查看alertscriptspath指定的腳本目錄
·vim /usr/lib/zabbix/alertscripts/mail.py內容參考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/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' 或 = ‘smtp.163.com’
gport = 25
try:
# msg = MIMEText(unicode(content).encode('utf-8')) //如果發送的郵件有亂碼,可以嘗試把這行改成如下:
msg = MIMEText(content,'plan','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 設置權限
python mail.py [email protected] “sdnjhfyub” 測試是否發郵件
· 創建一個接受告警郵件的用戶,“管理”,“用戶”,“創建用戶”,“報警媒介”,類型選擇“baojing”,收件人“郵箱地址”,用戶羣組—權限—讀寫—選擇所有組。最後添加。注意用戶的權限,如果沒有需要到用戶組去設置權限
· 設置動作,“配置”,“動作”,“創建動作”,名稱寫“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}
發送到用戶 aming
· 動作——“新的觸發條件”,A維護狀態 非在 維護,添加 —B觸發器示警度>=未分類
“操作”,選擇發送的用戶爲剛創建的用戶,僅送到選擇“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}
點擊“新的”,“操作”,選擇發送的用戶爲剛創建的用戶,僅送到選擇“baojing”
測試告警
19.15 測試告警
· 創建個自定義觸發器
系統負載—警告—添加表達式(processor load)—最新的t值<1 N=1) —添加
出現問題可以從頭到尾檢查。
· python mail.py [email protected] “sdnjhfyub” 測試腳本
· ls -l mail.py查看腳本權限(改成777)
· 管理—用戶—aming—報警媒介—權限,讀寫
· 動作—操作—默認信息還原—發送到用戶—更新
· 主機—觸發器-系統負載—表達式>1 (恢復)
19.16 不發郵件的問題處理
1, 到163郵箱,設置開啓POP3、IMAP、SMTP服務,開啓授權碼
2. 然後到監控中心設置郵件告警
新增報警媒介—報警—類型腳本—腳本參數
- vim /etc/lib/zabbix/alertscripts/aming.py 到指定路徑創建個腳本 ,還有更改腳本權限。、
- 管理—用戶羣組—權限改成讀寫
- 管理—用戶—權限改成讀寫—報警媒介加郵箱地址
- 配置—動作—條件保持默認
配置—動作—操作—默認信息更改—添加用戶—僅送到報警
配置—動作—恢復操作—默認信息更改—發送aming用戶—僅送到報警
配置—主機—觸發器—增加system.cpu.load <1 (手動增加個報警信息
systemctl stop zabbix-agent 也可以在客戶端把進程停止 、
主動和被動
配置—主機—監控項—agent ping—類型 zabbix客戶端(被動) zabbix客戶端(主動式)/主動上報