19.12 添加自定義監控項目 19.13/19.14 配置郵件告警 19.15 測試告警 19.16 不發郵件的問題處理

提示:開始本節內容以前有必要先作好快照!!!python

19.12 添加自定義監控項目

該配置的用途是監控模板中沒有的監控項目。web

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

步驟:
1) zabbix監控中心建立監控項目
2) 針對該監控項目以圖形展示瀏覽器

配置80端口的監控腳本

 統計80端口鏈接數量bash

能夠去查看ESTABLISHED的訪問量(established)服務器

[root@cham002 ~]# netstat -ant |grep ':80 ' |grep -c ESTABLISHED
1

[root@cham002 ~]# netstat -ant |grep ':80 ' |grep -c ESTABLISHED
1
[root@cham002 ~]# netstat -ant |grep ':80 ' |grep ESTAB
tcp6       0      0 192.168.230.135:80      192.168.230.1:62973     ESTABLISHED

客戶端:145併發

[root@test ~]# vim /usr/local/sbin/estab.sh

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

:wq

[root@test ~]# chmod 755 !$
chmod 755 /usr/local/sbin/estab.sh
[root@test ~]# ps aux |grep zabbix
zabbix   54434  0.0  0.1  80592  1284 ?        S    08:12   0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbi_agentd.conf
zabbix   54435  0.0  0.1  80592  1360 ?        S    08:12   0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix   54436  0.0  0.2  80712  2448 ?        S    08:12   0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix   54437  0.0  0.2  80716  2448 ?        S    08:12   0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix   54438  0.0  0.2  80716  2448 ?        S    08:12   0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix   54439  0.0  0.2  80720  2228 ?        S    08:12   0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root     54652  0.0  0.0 112664   972 pts/0    R+   08:23   0:00 grep --color=auto zabbix

配置zabbix-agent.conf:
[root@test ~]# vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1    #表示使用自定義腳本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh
#自定義監控項的key(監控web端「鍵值」)爲my.estab.count,後面的[*]裏面寫的是腳本參數
#若是沒有參數則能夠省略,腳本爲/usr/local/sbin/estab.sh

重啓zabbix-agent服務:
[root@test ~]# systemctl restart zabbix-agent
[root@test ~]#

客戶端配置完成後在 服務端使用zabbix自帶命令測試該腳本是否生效:tcp

(防火牆要麼關閉,要麼添加規則)測試

[root@cham002 ~]# zabbix_get -s 192.168.230.145 -p 10050 -k 'my.estab.count'
0

如上所示,說明客戶端腳本配置成功!spa

 

配置web端參數

瀏覽器訪問服務端zabbix主頁:192.168.230.135/zabbix

進入客戶機cham-002「監控項配置」頁面:

 

1「建立監控項」:


說明: 在此設置監控項名稱和鍵值,其餘參數保持默認(研究透徹以後,全部參數能夠根據我的需求進行更改)。  

2「建立圖形」:
「添加」添加完成後,爲該監控項配置「圖形」——「建立圖形」:   

注意: 在此設定圖形名稱後,須要先爲該圖形「添加」(該添加爲參數「監控項」下的添加)監控項,而後再點擊最下面的「添加」將該圖形參數添加到zabbix圖形監控參數中!!!

3建立觸發器:
所謂觸發器即設定觸發警報的規則!
「觸發器」——「建立觸發器」:

點擊「添加」,設定該觸發器所要監控的對象及觸發規則:

即,當併發鏈接數最新值T大於N(自定義該值,在此N=2)時觸發該警報。

 

19.13-19.4 配置郵件告警

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

開啓郵箱的POP三、IMAP、SMTP服務

登陸QQ.或者163郵箱,開啓POP三、IMAP、SMTP服務:

說明: 首次開啓該服務須要進行用戶認證,根據提示信息進行認證並設定「客戶端受權密碼」(用於登陸第三方郵件客戶端的專用密碼),記錄該密碼。

 

配置報警腳本

郵箱相關服務配置完成後到監控中心進行報警配置。

配置報警媒介類型

「管理」——「報警媒介類型」——「建立媒介類型」:

說明: 設定媒介類型名稱、類型、腳本名稱(與服務器中腳本名稱保持一致)、添加腳本參數(該參數爲zabbix內置參數,以後會配置在mail.py腳本中),上述內容配置完後再點「添加」(最下面藍色)。

 

添加報警腳本mail.py

服務端:

[root@cham002 ~]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts


[root@cham002 alertscripts]# vim 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'
    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('xxxx@163.com','xxxxxxxxxxxxxxxx','xxxx@163.com',to,subject,content)
if __name__ == "__main__":
    main()


[root@cham002 alertscripts]# chmod 755 mail.py 

測試可否正常發送郵件:
[root@cham002 alertscripts]# python mail.py xxxx@163.com "test" "1212121"

發送成功!至此說明發郵件的腳本沒問題!!!

配置用戶

在監控中心(web端)建立一個接收告警郵件的「用戶」,在建立用戶前須要先建立一個「用戶組」,在此使用一個已經存在的用戶組。「管理」——「用戶」——「建立用戶」:

配置報警媒介

打開用戶adai——報警媒介——添加報警媒介——更新:

配置用戶權限:
須要到用戶所在的「用戶羣組」更改用戶的權限:

選擇後權限後點擊「添加」——「更新」,若是此處設置錯誤,以後將沒法收到報警郵件。

配置動做

設置觸發器被觸發後所要執行的的操做!

 

設置動做,「配置」,「動做」,「建立動做」,名稱寫(自定義),「操做」頁面,內容以下

•「新的觸發條件」,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}
ID:{EVENT.ID}

•切換到「恢復操做」,把信息改爲以下

•點擊「新的」,「操做」,選擇發送的用戶爲剛建立的用戶,僅送到選擇「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}
ID:{EVENT.ID}

最後狀態是已起用

 

19.5 測試告警

將監控項目改爲故障項目。

「配置」——「主機」——「觸發器」——「建立觸發器」
注: 該觸發器只用於測試,完成測試後要刪除!
 

選擇「添加」表達式設定觸發規則:

其餘參數保持默認,點藍色按鈕「添加」。配置完成後進入「儀表盤」等一分鐘左右

 

經屢次嘗試都顯示動做完成,可是查看郵箱並無收到任何郵件!

排查故障

[root@cham002 alertscripts]# python mail.py xxxx@163.com "test" "1212121333333333333333333"
能收到郵件

[root@cham002 alertscripts]# ls -l
總用量 4
-rwxr-xr-x 1 root root 1207 2月   5 09:35 mail.py
更改腳本權限:權限改大一點
[root@cham002 alertscripts]# chmod 777 mail.py

即,能正常發送郵件,說明腳本內容沒問題!

檢查用戶信息(再增長個用戶)

 

檢查動做配置

將操做中的默認信息更改成其自帶的配置:

 

 

恢復快照再多來幾回~····

相關文章
相關標籤/搜索