添加自定義監控項目,配置郵件告警,測試告警,不發郵件的問題處理

 添加自定義監控項目:

在客戶端寫腳本而後在服務端檢測腳本。前端

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

兩步:1)zabbix監控中心建立監控項目;2)針對該監控項目以圖形展示linux

對於第一步,須要到客戶端定義腳本git

vim /usr/local/sbin/estab.sh //內容以下web

#!/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-agentvim

 

 

 

 

配置警告:

首先須要開啓服務,第一次會進行手機驗證,而後輸入受權碼。 受權碼=發郵件警告使用的密碼bash

而後到zabbix前端新建立一個報警。併發

{ALERT.SENDTO}     = 郵件接收者
{ALERT.SUBJECT}    = 郵件主題
{ALERT.MESSAGE}   = 郵件內容

在服務端上面配置文件裏面找到路徑:vi /etc/zabbix/zabbix_server.conf測試

進入配置文件之後而後搜索 AlertScriptsPath 找到/ usr/lib/zabbix/alertscripts 目錄spa

進入到 /usr/lib/zabbix/alertscripts/ 裏面,建立一個在zabbix上定義過名稱的腳本

而後在建立的裏面裏面寫入代碼。

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'
    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('1234567@qq.com','aaaaaaaaaa','1234567@qq.com',to,subject,content)

if __name__ == "__main__":
    main()
    
    
#####腳本使用說明######
#1. 首先定義好腳本中的郵箱帳號和密碼
#2. 腳本執行命令爲:python mail.py 目標郵箱 "郵件主題" "郵件內容"

代碼寫入完之後還須要修改一下里面的:使用郵箱,郵箱帳號,郵箱受權碼 等等。

郵箱都填寫ok之後,咱們還須要給腳本一個執行的權限,而後就能夠測試腳本了。

測試腳本命令:python mail.py 郵件接收者 「郵件的主題」 「郵件的內容」

上面所有配置完之後,第二步咱們就須要去給zabbix建立一個用戶

設置用戶

設置報警媒介

還須要設置一下權限:

所有配置完成之後,都檢查一下是否有問題沒問題就繼續配置其餘動做。

 

還須要配置一個動做:

配置動做

配置操做

配置操做裏面的默認信息:

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

配置恢復操做

恢復操做裏面的默認信息:

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 ,那麼就會立刻告警

 

點擊Zabbix -->查看最近20個問題

能夠看到動做完成1,說明能夠正常發送郵件

#查看郵件,是能夠收到告警郵件的

 

#本來負載值更改成1了,就會立刻告警,那麼如今把負載值更回正常的,也會收到ok的郵件
  如果設置回正常,仍然收不到郵件,那麼檢查恢復操做.

 

不發郵件的問題處理:

1.檢查發郵件的腳本

[root@aminglinux-01 alertscripts]# python mail.py anna_wqd@163.com "test" "This is test jiaoben"

[root@aminglinux-01 alertscripts]# ls -lt mail.py 
-rwxr-xr-x. 1 root root 1163 9月  11 12:42 mail.py

 

能夠收到郵件,說明腳本ok

 

2. 檢測Zabbix 監控中心 -- 用戶設置

檢查報警媒,查看收件人郵箱地址是否有誤

說明:點擊管理 -->用戶 -->報警媒介; 


檢查用戶權限是不是讀寫,若不是將沒法收到告警郵件

 

3.檢查Zabbix 監控中心 --動做

檢查動做--操做是否有選擇發送到用戶(Anna)

說明:點擊配置-->動做-->發郵件-->條件

相關文章
相關標籤/搜索