zabbix監控-第三章-第一節 實現郵件報警

各位好,在日常工作中,我們不可能整天盯著 zabbix儀表板 來查詢服務是否正常,這個時候我們就需要有途徑可以通知到我們,那麼根據現在的工作環境,有三種方式是大多數公司都會選擇的:

zabbix監控-第三章-第一節 實現郵件報警

我們會主要說一下如何實現通過郵件、微信、釘釘等方式來報警,這小節我們就來使用郵件的方式來報警:

1、給郵箱開通smtp

為什麼要弄這個呢?因為我們在實現郵件報警的過程中,採用的不是郵箱的賬號和密碼,而是郵箱的賬號和授權碼,開啟stmp就是為了成功獲取授權碼;在此以QQ郵箱為例:

登錄郵箱只有界面如下圖:

zabbix監控-第三章-第一節 實現郵件報警

點擊左上角的 “設置” 按鈕,如下圖:

zabbix監控-第三章-第一節 實現郵件報警

next:

zabbix監控-第三章-第一節 實現郵件報警

next:

在這個頁面中往下滑,會發現一個 “POP3” 如下圖的一個界面,開啟POP3 和 IMAP 這兩個選擇,再後面可以看到狀態是開啟的,我這裡是已經開通過了,你們再操作的時候根據提示來操作即可

zabbix監控-第三章-第一節 實現郵件報警

next:

zabbix監控-第三章-第一節 實現郵件報警

如上圖,然後再按照郵箱的提示繼續操作,最後將生成的授權碼複製出來進行保存;

2、設立觸發器

我們之前說過如何創建觸發器了,過程就不仔細描述了,直接截圖我設計的觸發器結果吧,如下圖:

PS:推薦在模板裡面創建觸發器,而不是單獨給用戶創建,因為這樣的話可以複用給其他主機~

PS:我的129服務器的8080端口部署了一個tomcat用來測試用,如果不知道tomcat如何部署的同學,可以百度,另外我開啟了8080的防火牆,此命令之前的文章中出現過,如果忘記的同學可以往前看。

監控項設立如下:

zabbix監控-第三章-第一節 實現郵件報警

觸發器設立如下:

zabbix監控-第三章-第一節 實現郵件報警

看一下最新數據,保證剛添加的監控是沒問題的:

zabbix監控-第三章-第一節 實現郵件報警

而後關閉 129 服務器的tomcat,看下驗證下剛創建的觸發器是否生效了,如下圖:

zabbix監控-第三章-第一節 實現郵件報警

以上表示我們的觸發器設立好了,最後記得先把 129 的tomcat服務重新開啟。

3、放置報警腳本

既然我們要讓他報警,那麼肯定是要有一個腳本的,我們如何寫這個腳本,這個腳本放置的位置又是哪裡呢?

參考我下面的腳本,只需要更改其中的兩點內容即可:

myemail='你的郵箱地址'

password='你的授權碼'

<code>#!/usr/bin/python
# -*- coding: utf-8 -*-
from email.mime.text import MIMEText
from email.header import Header
from smtplib import SMTP_SSL
import sys

smtpaddr = 'smtp.qq.com'
myemail='[email protected]'
password='gohbjgpbrdgadime'

recvmail=sys.argv[1]
subject=sys.argv[2]
content=sys.argv[3]

msg = MIMEText("""%s"""%(content), "plain", "utf-8")
msg['Subject'] = Header(subject, 'utf-8').encode()
msg['From'] = myemail
msg['To'] =  recvmail

try:
  smtp = SMTP_SSL( smtpaddr )
  smtp.login(myemail, password)
  smtp.sendmail(myemail, recvmail.split(','), msg.as_string())
  smtp.quit()
  print("success")
except Exception as e:
  print("fail: "+str(e))
/<code>

從上面的腳本可以看到,我們分別接受三個參數,那就是 “收件人”, “郵件主題”, “郵件內容”;

下面我們也就針對這三個進行設置;

4、放置到zabbix_server也就是192.168.20.128這臺服務器上:

<code>[root@bogon ~]# cd /home/zabbix/share/zabbix/alertscripts
[root@bogon alertscripts]# touch email_qq.py
[root@bogon alertscripts]# vim email_qq.py
# 將上面的腳本複製進來
# 然後保存退出/<code>

5、測試一下腳本

<code>[root@bogon alertscripts]# python email_qq.py [email protected] "報警郵件" "測試一下"/<code>

會提示出來“success”

之後看一下郵箱:

zabbix監控-第三章-第一節 實現郵件報警

如上圖我們收到了,發件人是我們腳本中寫的郵箱,主題是“報警郵件”,內容是“測試一下”;

之後一定要注意給這個腳本添加可執行權限:

<code>[root@bogon alertscripts]# chmod +x email_qq.py
[root@bogon alertscripts]# ll email_qq.py 
-rwxr-xr-x. 1 root root 656 2月  23 02:01 email_qq.py
[root@bogon alertscripts]# 
/<code>

6、報警媒介類型

管理 --> 報警媒介類型

zabbix監控-第三章-第一節 實現郵件報警

先把自帶的三個報警媒介給禁用掉:

如下圖所示:

zabbix監控-第三章-第一節 實現郵件報警

點擊右上角 “創建媒體類型”

zabbix監控-第三章-第一節 實現郵件報警

配置如下信息:

PS:在這裡我們要注意,為什麼添加了三個“腳本參數”,因為我們的腳本需要三個參數輸入,故而進行如下配置:

{ALERT.SENDTO} :收件人

{ALERT.SUBJECT} :郵件主題

{ALERT.MESSAGE} :郵件內容

zabbix監控-第三章-第一節 實現郵件報警

而後點擊 “添加” 按鈕;

7、用戶信息配置

管理 --> 用戶

zabbix監控-第三章-第一節 實現郵件報警

給想被接受到郵件的人配置郵箱地址:

zabbix監控-第三章-第一節 實現郵件報警

next:

zabbix監控-第三章-第一節 實現郵件報警

next:

zabbix監控-第三章-第一節 實現郵件報警

配置成如下配置:

PS:具體信息要結合個人實際情況來寫哈;

個人只接受“一般嚴重”、“嚴重”、“災難”這三種類型的報警,別的認為沒必要發送郵件。

zabbix監控-第三章-第一節 實現郵件報警

而後點擊 “添加” 按鈕,如下圖:

zabbix監控-第三章-第一節 實現郵件報警

之後點擊 “更新” 按鈕:

zabbix監控-第三章-第一節 實現郵件報警

8、配置觸發器動作

配置 --> 動作

zabbix監控-第三章-第一節 實現郵件報警

右上角的“創建動作”

zabbix監控-第三章-第一節 實現郵件報警

在新界面中輸入名字:

zabbix監控-第三章-第一節 實現郵件報警

而後點擊此界面中的“操作”按鈕,進行配置

zabbix監控-第三章-第一節 實現郵件報警

next:

zabbix監控-第三章-第一節 實現郵件報警

next:

PS:結合個人實際,進行如下配置:

zabbix監控-第三章-第一節 實現郵件報警

next:

zabbix監控-第三章-第一節 實現郵件報警

界面如下之後,點擊 “恢復操作” :

zabbix監控-第三章-第一節 實現郵件報警

這裡我們一般只用簡單配置一個參數,界面如下:

zabbix監控-第三章-第一節 實現郵件報警

操作類型 --> 添加:

zabbix監控-第三章-第一節 實現郵件報警


而後點擊 “添加” 按鈕,如下圖所示:

zabbix監控-第三章-第一節 實現郵件報警

之後會自動返回如下界面:

zabbix監控-第三章-第一節 實現郵件報警

發現剛才添加的已經成功了;

9、關閉192.168.20.129的tomcat對應的8080端口:

<code>[root@jier ~]# cd /home/tomcat_8080
[root@jier tomcat_8080]# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@jier tomcat_8080]# ./bin/shutdown.sh 
[root@jier tomcat_8080]# ps -ef | grep 8080
root       5733   5573  0 01:50 pts/2    00:00:00 grep --color=auto 8080
[root@jier tomcat_8080]# /<code>

10、查看下zabbix儀表板主界面,看一下是否監測8080端口失敗了:

zabbix監控-第三章-第一節 實現郵件報警

已經監測到了失敗,如上圖:

我們可以看到他提示的是郵件已經發送成功:

zabbix監控-第三章-第一節 實現郵件報警

此時我們去郵箱裡面看一下,是否已經收到報警郵件了:

zabbix監控-第三章-第一節 實現郵件報警

已經收到郵件了;

11、恢復192.168.20.129的8080端口,再看下有什麼變化:

報警提示沒有了:

zabbix監控-第三章-第一節 實現郵件報警

看下郵箱,是否有對應的恢復郵件:

zabbix監控-第三章-第一節 實現郵件報警

恭喜,已經成功的監控了8080端口,且根據存活狀態發送對應的郵件,本節到此結束。

繼續加油~~~

下一小節說一下如何實現微信報警~~~


分享到:


相關文章: