天天看點

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

添加自定義監控項目

例如

需求:監控某台web的80端口連接配接數,并出圖

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

對于第一步,需要到用戶端定義腳本

[root@localhost ~]# 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.218.129 -p 10050 -k 'my.estab.count'

如果結果為0,那麼證明你的腳本時好用的,如果不為0,則證明腳本有問題

還有一點要注意的是,我們要保持網絡暢通,沒有防火牆規則,沒有selinux。

然後在zabbix監控中心(浏覽器)配置增加監控項目

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

剩下的保持預設

添加完後還要給他做一個圖形,點選上面的圖形,然後點選最右邊的建立圖形。

在裡面輸入名稱,點選下面的添加,在彈出的對話框中選擇并發連結數,确定後點選再點選下面的添加,最後就可以形成新的圖表了。

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

我們也可以給他做一個觸發器,步驟基本相同

首先點選觸發器,然後點選最右邊的建立觸發器,

然後在裡面輸入名字,然後點選下面,選擇嚴重性,然後點選下面的添加

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

這裡監控項在彈出的對話框中選擇,功能通過點選向下的箭頭選擇,n=自定義的數值。最後點選添加。

配置郵件告警

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

首先進入163郵箱,然後在設定頁面中選擇

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

然後在裡面設定

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

然後設定用戶端授權碼,這個密碼要盡量複雜,確定安全。

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

然後我們進入zabbix監控頁面,進行郵箱報警設定

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

這裡面雖然還有郵箱報警的選項,但是我們不需要那個,我們要重新建立一個郵箱報警。

将裡面的選項逐一填寫

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

然後我們去設定一個腳本,這個腳本要放到/usr/lib/zabbix/alertscripts下

首先進入到目錄下

[root@linletao-001 ~]# cd /usr/lib/zabbix/alertscripts

[root@linletao-001 alertscripts]# 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.163.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():br/>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 mail.py

然後測試一下腳本是否會發郵件

python mail.py [email protected] "郵件标題" "郵件内容"

然後我們去郵箱驗證一下即可。

然後我們建立一個使用者,這個使用者是用來接收郵件的

在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}

然後在裡面點選‘新的’在新的裡面選擇發送到使用者,在裡面選擇我們自定義的使用者,然後點添加,剩下的保持預設,最後點選藍色方框内的添加。需要注意的是,我們每一個選項都是要點選添加的,如果不點選,就不會增加選項。

不發送郵件的問題處理