zabbix 服務器設置郵件報警

 

 

 

實驗條件:php

Zabbix監控服務器、客戶端都已經部署完成,被監控主機已添加完成,Zabbix監控運行正常。html

 

 

實現目的:linux

Zabbix監控服務器設置郵件報警,當被監控主機宕機或達到觸發器預設值進,會自動發送報警郵件到指定的郵箱。web

 

 

概念補充:vim

什麼是MTA?什麼是MUA?centos

通俗的說MUA就是用戶使用的客戶端,而MTA則是真正發送郵件的發送進程,MUA編寫的郵件最終也交由MTA發送至目標端。bash

mailx即爲負責查看、編寫郵件和向MTA發送郵件的MUA。服務器

Sendmail和postfix即爲負責郵件在網絡上傳輸的MTA,將郵件從一個MTA傳送至另外一個MTA。網絡

 

 

標註:使用zabbox服服務端本地郵箱帳號發送郵件,須要安裝兩個軟件達到報警郵件轉發至指定郵箱。Sendmail或postfix(兩個軟件各選擇一個,但不能同時運行)和mailx郵件客戶端。工具

 

 

配置網絡yum源參考教程:

http://www.cnblogs.com/zoulongbin/p/5773330.html

 

 

 

 

 

Zabbix服務器操做

 

 

一、  安裝sendmail或postfix (郵件傳送代理MTA),本教程使用sendmail軟件。

(標註:若是直接使用外部郵箱發送郵件能夠不須要配置sendmail或postfix,直接把這兩個軟件關掉,直接跳到第3步:配置mail便可實現) 

 

[root@ssticentos65 ~]# yum -y install sendmail                #在線yum安裝sendmail

 

[root@ssticentos65 ~]# /etc/init.d/sendmail start            #啓動sendmail服務

 

[root@ssticentos65 ~]# /etc/init.d/sendmail status          #查看sendmail啓動狀況

sendmail dead but subsys locked                                          #sendmail進程鎖住,緣由是postfix服務啓動致使sendmail服務進程鎖住,須要關閉postfix服務。

sm-client (pid  1759) is running...

 

[root@ssticentos65 ~]# /etc/init.d/postfix stop                #暫停postfix服務提示失敗,緣由是postfix進程正在使用,須要使用kill命令殺掉postfix進程

Shutting down postfix:                                     [FAILED]

 

[root@ssticentos65 ~]# /etc/init.d/postfix status                #查看postfix服務能夠查看到進程號

master (pid  1647) is running...

 

[root@ssticentos65 ~]# kill -9 1647                                     #殺掉postfix服務進程號

 

[root@ssticentos65 ~]# /etc/init.d/postfix status                #查看postfix狀態

master dead but pid file exists

 

[root@ssticentos65 ~]# chkconfig postfix off                      #設置postfix開機不啓動

 

[root@ssticentos65 ~]# /etc/init.d/sendmail stop               #暫停sendmail服務

Shutting down sm-client:                                   [  OK  ]

Shutting down sendmail:                                    [FAILED]

 

[root@ssticentos65 ~]# /etc/init.d/sendmail start                 #啓動sendmail服務

Starting sendmail:                                         [  OK  ]

Starting sm-client:                                        [  OK  ]

[root@ssticentos65 ~]#

 

 

 

 

二、安裝郵件發送工具mailx 。(郵件用戶代理MUA)

 

[root@ssticentos65 ~]# yum -y install mailx                     #在線安裝mailx

 

 

 

三、  配置mail

 

[root@ssticentos65 ~]# vim /etc/mail.rc

set  from=lg1871212539@sina.com        #新浪註冊的我的郵箱,用於zabbi服務端轉發郵件到指定郵箱

set  smtp=smtp.sina.com                       #填寫新浪發送郵箱服務器地址smtp

set  smtp-auth-user= lg1871212539      #新浪我的郵箱用戶

set  smtp-auth-password=lg123456      #新浪我的郵箱密碼

set  smtp-auth=login                           #登陸

 

 

 

 

四、測試郵件可否發送

 

#發送一份郵件到1873714157@qq.com 這個QQ郵箱(我的申請的QQ測試郵箱)

[root@ssticentos65 ~]# echo "test" | mail -s 'test linux'  1873714157@qq.com  

 

 

 

 

 

 

五、編寫郵件發送腳本sendmail.sh

 

[root@ssticentos65 ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/         #進入zabbix默認存放腳本路徑

 

[root@ssticentos65 alertscripts]# vim sendmail.sh                                               #編寫發送郵件腳本

#!/bin/bash

messages=`echo $3 | tr '\r\n' '\n'`

subject=`echo $2 | tr '\r\n' '\n'`

echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

 

[root@ssticentos65 ~]# chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh                       #sendmail.sh腳本修改所屬用戶和用戶組

 

 [root@ssticentos65 ~]# chown zabbix.zabbix /tmp/sendmail.log                                                                                   #sendmail.log日誌記錄文本修改屬用戶和用戶組

 

[root@ssticentos65 ~]# chmod 755 /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh                                     #sendmail腳本賦予執行權限

 

[root@ssticentos65 ~]# ls -l /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh                                                 #查看sendmail.sh腳本信息

 

[root@ssticentos65 ~]# vim /usr/local/zabbix/etc/zabbix_server.conf                                                                          #配置zabbix_server.conf配置文件

 

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts                                                                                      #這個修改爲sendmail.sh腳本存放路徑

 

[root@ssticentos65 ~]# su zabbix                                                                                                                                  #切換zabbix用戶

 

sh-4.1$ /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh 1873714157@qq.com "test linux" "test"                  #zabbix用戶執行sendmail.sh腳本看是否有權限

 

 

 

 

 

 

 

 

 

 

Zabbix後臺web介面配置

 

 

 

一、管理 ----  報警媒介類型 -----  建立媒介類型。

 

 

 

 

 

二、名稱能夠隨便本身定義 ----- 類型選擇腳本 ----- 腳本名稱輸入上一步編寫的發送郵件的腳本名稱 ----

再添加如下3個參數,分別對應腳本須要的3個參數:收件人地址、主題、詳細內容:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

 

 

 

 

 

三、管理 ---- 用戶 ----- 選擇admin用戶。(本身建立一個用戶也能夠)

 

 

 

 

 

 

四、報警媒介 ---- 添加。

 

 

 

 

 

五、類型輸入剛剛建立的報警媒介類型sendmail腳本 --- 輸入我的郵箱用於接收報警郵件 --- 啓動打勾 ---- 添加。

 

 

 

 

 

六、選擇更新。

 

 

 

 

 

 

七、權限設置(管理員用戶不用修改,權限默認全部服務器,若是要分類權限須要在用戶組進行控制)

 

 

 

 

 

八、配置 ---- 動做 ---- 建立動做。

 

 

 

 

 

 

九、動做 ---- 名稱自定義 --- 設置一條新的觸發條件 ---- 啓用 ---- 添加。(觸發條件須要根據實際狀況設置)

觸發器   似      is unreachable for 5 minutes      #根據主機觸發器  Template App Zabbix AgentZabbix agent on {HOST.NAME} is unreachable for 5 minutes  設置,主要監測zabbix_agentd客戶端鏈接狀況。

 

 

 

 

 

十、定義操做。

 

 

默認接收人:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

默認信息:

告警主機IP地址:{HOST.CONN}

告警主機:{HOSTNAME1}

告警時間:{EVENT.DATE} {EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

問題詳情:{ITEM.NAME}:{ITEM.VALUE}

當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}

 

 

 

 

十一、定義恢復操做。

 

 

默認接收人:恢復{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!

恢復信息:

告警主機IP地址:{HOST.CONN}

告警主機:{HOSTNAME1}

告警時間:{EVENT.DATE} {EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

問題詳情:{ITEM.NAME}:{ITEM.VALUE}

當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}

 

 

 

十二、測試。

 

[root@ssticentos65 alertscripts]# /etc/init.d/zabbix_agentd stop              #暫停zabbix_agentd客戶端服務

 

 

 

 

相關文章
相關標籤/搜索