'Zabbix監控系統郵箱告警的實現'

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

Zabbix監控系統郵箱告警的實現

6. 在zabbix server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了。

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

7.創建郵件發送腳本。

# cat /usr/lib/zabbix/alertscripts/sendmail.sh 
#!/bin/bash
export LANG=en_US.UTF-8
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

說明:三個參數是接收從web頁面中傳遞過來的$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容。

8.增加zabbix可執行權限。

# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 177 Jul 26 10:34 /usr/lib/zabbix/alertscripts/sendmail.sh

9.創建郵件發送的臨時日誌文件並賦予權限。

# touch /tmp/sendmail.log
# chown zabbix.zabbix /tmp/sendmail.log

10. 用zabbix用戶測試郵件發送腳本可否由zabbix用戶調用。

/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "testhehehe" "i am from china"

可接收到郵件,腳本測試成功。

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

Zabbix監控系統郵箱告警的實現

6. 在zabbix server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了。

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

7.創建郵件發送腳本。

# cat /usr/lib/zabbix/alertscripts/sendmail.sh 
#!/bin/bash
export LANG=en_US.UTF-8
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

說明:三個參數是接收從web頁面中傳遞過來的$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容。

8.增加zabbix可執行權限。

# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 177 Jul 26 10:34 /usr/lib/zabbix/alertscripts/sendmail.sh

9.創建郵件發送的臨時日誌文件並賦予權限。

# touch /tmp/sendmail.log
# chown zabbix.zabbix /tmp/sendmail.log

10. 用zabbix用戶測試郵件發送腳本可否由zabbix用戶調用。

/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "testhehehe" "i am from china"

可接收到郵件,腳本測試成功。

Zabbix監控系統郵箱告警的實現

11.Zabbix Web端配置。

1.創建報警媒介類型,Administration(管理)–>Media types(報警媒介類型)–>Create Media Type(創建媒體類型)。

類型選擇腳本,添加3個參數,分別對應sendmail.sh腳本需要的3個參數:收件人地址{ALERT.SENDTO}、主題{ALERT.SUBJECT}、詳細內容{ALERT.MESSAGE}。

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

Zabbix監控系統郵箱告警的實現

6. 在zabbix server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了。

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

7.創建郵件發送腳本。

# cat /usr/lib/zabbix/alertscripts/sendmail.sh 
#!/bin/bash
export LANG=en_US.UTF-8
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

說明:三個參數是接收從web頁面中傳遞過來的$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容。

8.增加zabbix可執行權限。

# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 177 Jul 26 10:34 /usr/lib/zabbix/alertscripts/sendmail.sh

9.創建郵件發送的臨時日誌文件並賦予權限。

# touch /tmp/sendmail.log
# chown zabbix.zabbix /tmp/sendmail.log

10. 用zabbix用戶測試郵件發送腳本可否由zabbix用戶調用。

/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "testhehehe" "i am from china"

可接收到郵件,腳本測試成功。

Zabbix監控系統郵箱告警的實現

11.Zabbix Web端配置。

1.創建報警媒介類型,Administration(管理)–>Media types(報警媒介類型)–>Create Media Type(創建媒體類型)。

類型選擇腳本,添加3個參數,分別對應sendmail.sh腳本需要的3個參數:收件人地址{ALERT.SENDTO}、主題{ALERT.SUBJECT}、詳細內容{ALERT.MESSAGE}。

Zabbix監控系統郵箱告警的實現

2.創建用戶,Administration(管理)–>Users(用戶)–>Create User(創建用戶)。

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

Zabbix監控系統郵箱告警的實現

6. 在zabbix server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了。

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

7.創建郵件發送腳本。

# cat /usr/lib/zabbix/alertscripts/sendmail.sh 
#!/bin/bash
export LANG=en_US.UTF-8
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

說明:三個參數是接收從web頁面中傳遞過來的$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容。

8.增加zabbix可執行權限。

# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 177 Jul 26 10:34 /usr/lib/zabbix/alertscripts/sendmail.sh

9.創建郵件發送的臨時日誌文件並賦予權限。

# touch /tmp/sendmail.log
# chown zabbix.zabbix /tmp/sendmail.log

10. 用zabbix用戶測試郵件發送腳本可否由zabbix用戶調用。

/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "testhehehe" "i am from china"

可接收到郵件,腳本測試成功。

Zabbix監控系統郵箱告警的實現

11.Zabbix Web端配置。

1.創建報警媒介類型,Administration(管理)–>Media types(報警媒介類型)–>Create Media Type(創建媒體類型)。

類型選擇腳本,添加3個參數,分別對應sendmail.sh腳本需要的3個參數:收件人地址{ALERT.SENDTO}、主題{ALERT.SUBJECT}、詳細內容{ALERT.MESSAGE}。

Zabbix監控系統郵箱告警的實現

2.創建用戶,Administration(管理)–>Users(用戶)–>Create User(創建用戶)。

Zabbix監控系統郵箱告警的實現

並給用戶添加我們新建的報警媒介sendmail,設置收件人郵箱。

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

Zabbix監控系統郵箱告警的實現

6. 在zabbix server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了。

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

7.創建郵件發送腳本。

# cat /usr/lib/zabbix/alertscripts/sendmail.sh 
#!/bin/bash
export LANG=en_US.UTF-8
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

說明:三個參數是接收從web頁面中傳遞過來的$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容。

8.增加zabbix可執行權限。

# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 177 Jul 26 10:34 /usr/lib/zabbix/alertscripts/sendmail.sh

9.創建郵件發送的臨時日誌文件並賦予權限。

# touch /tmp/sendmail.log
# chown zabbix.zabbix /tmp/sendmail.log

10. 用zabbix用戶測試郵件發送腳本可否由zabbix用戶調用。

/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "testhehehe" "i am from china"

可接收到郵件,腳本測試成功。

Zabbix監控系統郵箱告警的實現

11.Zabbix Web端配置。

1.創建報警媒介類型,Administration(管理)–>Media types(報警媒介類型)–>Create Media Type(創建媒體類型)。

類型選擇腳本,添加3個參數,分別對應sendmail.sh腳本需要的3個參數:收件人地址{ALERT.SENDTO}、主題{ALERT.SUBJECT}、詳細內容{ALERT.MESSAGE}。

Zabbix監控系統郵箱告警的實現

2.創建用戶,Administration(管理)–>Users(用戶)–>Create User(創建用戶)。

Zabbix監控系統郵箱告警的實現

並給用戶添加我們新建的報警媒介sendmail,設置收件人郵箱。

Zabbix監控系統郵箱告警的實現

3.創建動作,Configuration(配置)–>Actions(動作)–>Create actions(創建動作)。

設置條件,此動作條件是維護狀態為非維護狀態即監控項在維護狀態不產生動作,並且觸發器示警度大於等於警告才觸發動作。

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

Zabbix監控系統郵箱告警的實現

6. 在zabbix server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了。

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

7.創建郵件發送腳本。

# cat /usr/lib/zabbix/alertscripts/sendmail.sh 
#!/bin/bash
export LANG=en_US.UTF-8
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

說明:三個參數是接收從web頁面中傳遞過來的$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容。

8.增加zabbix可執行權限。

# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 177 Jul 26 10:34 /usr/lib/zabbix/alertscripts/sendmail.sh

9.創建郵件發送的臨時日誌文件並賦予權限。

# touch /tmp/sendmail.log
# chown zabbix.zabbix /tmp/sendmail.log

10. 用zabbix用戶測試郵件發送腳本可否由zabbix用戶調用。

/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "testhehehe" "i am from china"

可接收到郵件,腳本測試成功。

Zabbix監控系統郵箱告警的實現

11.Zabbix Web端配置。

1.創建報警媒介類型,Administration(管理)–>Media types(報警媒介類型)–>Create Media Type(創建媒體類型)。

類型選擇腳本,添加3個參數,分別對應sendmail.sh腳本需要的3個參數:收件人地址{ALERT.SENDTO}、主題{ALERT.SUBJECT}、詳細內容{ALERT.MESSAGE}。

Zabbix監控系統郵箱告警的實現

2.創建用戶,Administration(管理)–>Users(用戶)–>Create User(創建用戶)。

Zabbix監控系統郵箱告警的實現

並給用戶添加我們新建的報警媒介sendmail,設置收件人郵箱。

Zabbix監控系統郵箱告警的實現

3.創建動作,Configuration(配置)–>Actions(動作)–>Create actions(創建動作)。

設置條件,此動作條件是維護狀態為非維護狀態即監控項在維護狀態不產生動作,並且觸發器示警度大於等於警告才觸發動作。

Zabbix監控系統郵箱告警的實現

添加操作。

默認標題:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

消息內容:

告警主機:{HOSTNAME1}

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

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

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

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

事件ID:{EVENT.ID}

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

Zabbix監控系統郵箱告警的實現

6. 在zabbix server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了。

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

7.創建郵件發送腳本。

# cat /usr/lib/zabbix/alertscripts/sendmail.sh 
#!/bin/bash
export LANG=en_US.UTF-8
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

說明:三個參數是接收從web頁面中傳遞過來的$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容。

8.增加zabbix可執行權限。

# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 177 Jul 26 10:34 /usr/lib/zabbix/alertscripts/sendmail.sh

9.創建郵件發送的臨時日誌文件並賦予權限。

# touch /tmp/sendmail.log
# chown zabbix.zabbix /tmp/sendmail.log

10. 用zabbix用戶測試郵件發送腳本可否由zabbix用戶調用。

/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "testhehehe" "i am from china"

可接收到郵件,腳本測試成功。

Zabbix監控系統郵箱告警的實現

11.Zabbix Web端配置。

1.創建報警媒介類型,Administration(管理)–>Media types(報警媒介類型)–>Create Media Type(創建媒體類型)。

類型選擇腳本,添加3個參數,分別對應sendmail.sh腳本需要的3個參數:收件人地址{ALERT.SENDTO}、主題{ALERT.SUBJECT}、詳細內容{ALERT.MESSAGE}。

Zabbix監控系統郵箱告警的實現

2.創建用戶,Administration(管理)–>Users(用戶)–>Create User(創建用戶)。

Zabbix監控系統郵箱告警的實現

並給用戶添加我們新建的報警媒介sendmail,設置收件人郵箱。

Zabbix監控系統郵箱告警的實現

3.創建動作,Configuration(配置)–>Actions(動作)–>Create actions(創建動作)。

設置條件,此動作條件是維護狀態為非維護狀態即監控項在維護狀態不產生動作,並且觸發器示警度大於等於警告才觸發動作。

Zabbix監控系統郵箱告警的實現

添加操作。

默認標題:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

消息內容:

告警主機:{HOSTNAME1}

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

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

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

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

事件ID:{EVENT.ID}

Zabbix監控系統郵箱告警的實現

添加恢復操作。

默認標題:恢復{TRIGGER.STATUS},服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!

消息內容:

告警主機:{HOSTNAME1}

恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

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

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

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

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

事件ID:{EVENT.ID}

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

Zabbix監控系統郵箱告警的實現

6. 在zabbix server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了。

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

7.創建郵件發送腳本。

# cat /usr/lib/zabbix/alertscripts/sendmail.sh 
#!/bin/bash
export LANG=en_US.UTF-8
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

說明:三個參數是接收從web頁面中傳遞過來的$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容。

8.增加zabbix可執行權限。

# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 177 Jul 26 10:34 /usr/lib/zabbix/alertscripts/sendmail.sh

9.創建郵件發送的臨時日誌文件並賦予權限。

# touch /tmp/sendmail.log
# chown zabbix.zabbix /tmp/sendmail.log

10. 用zabbix用戶測試郵件發送腳本可否由zabbix用戶調用。

/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "testhehehe" "i am from china"

可接收到郵件,腳本測試成功。

Zabbix監控系統郵箱告警的實現

11.Zabbix Web端配置。

1.創建報警媒介類型,Administration(管理)–>Media types(報警媒介類型)–>Create Media Type(創建媒體類型)。

類型選擇腳本,添加3個參數,分別對應sendmail.sh腳本需要的3個參數:收件人地址{ALERT.SENDTO}、主題{ALERT.SUBJECT}、詳細內容{ALERT.MESSAGE}。

Zabbix監控系統郵箱告警的實現

2.創建用戶,Administration(管理)–>Users(用戶)–>Create User(創建用戶)。

Zabbix監控系統郵箱告警的實現

並給用戶添加我們新建的報警媒介sendmail,設置收件人郵箱。

Zabbix監控系統郵箱告警的實現

3.創建動作,Configuration(配置)–>Actions(動作)–>Create actions(創建動作)。

設置條件,此動作條件是維護狀態為非維護狀態即監控項在維護狀態不產生動作,並且觸發器示警度大於等於警告才觸發動作。

Zabbix監控系統郵箱告警的實現

添加操作。

默認標題:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

消息內容:

告警主機:{HOSTNAME1}

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

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

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

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

事件ID:{EVENT.ID}

Zabbix監控系統郵箱告警的實現

添加恢復操作。

默認標題:恢復{TRIGGER.STATUS},服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!

消息內容:

告警主機:{HOSTNAME1}

恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

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

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

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

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

事件ID:{EVENT.ID}

Zabbix監控系統郵箱告警的實現

4.測試觸發後(一臺Linux服務器目錄空間小於20%時觸發告警)收到郵件。

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

Zabbix監控系統郵箱告警的實現

6. 在zabbix server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了。

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

7.創建郵件發送腳本。

# cat /usr/lib/zabbix/alertscripts/sendmail.sh 
#!/bin/bash
export LANG=en_US.UTF-8
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

說明:三個參數是接收從web頁面中傳遞過來的$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容。

8.增加zabbix可執行權限。

# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 177 Jul 26 10:34 /usr/lib/zabbix/alertscripts/sendmail.sh

9.創建郵件發送的臨時日誌文件並賦予權限。

# touch /tmp/sendmail.log
# chown zabbix.zabbix /tmp/sendmail.log

10. 用zabbix用戶測試郵件發送腳本可否由zabbix用戶調用。

/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "testhehehe" "i am from china"

可接收到郵件,腳本測試成功。

Zabbix監控系統郵箱告警的實現

11.Zabbix Web端配置。

1.創建報警媒介類型,Administration(管理)–>Media types(報警媒介類型)–>Create Media Type(創建媒體類型)。

類型選擇腳本,添加3個參數,分別對應sendmail.sh腳本需要的3個參數:收件人地址{ALERT.SENDTO}、主題{ALERT.SUBJECT}、詳細內容{ALERT.MESSAGE}。

Zabbix監控系統郵箱告警的實現

2.創建用戶,Administration(管理)–>Users(用戶)–>Create User(創建用戶)。

Zabbix監控系統郵箱告警的實現

並給用戶添加我們新建的報警媒介sendmail,設置收件人郵箱。

Zabbix監控系統郵箱告警的實現

3.創建動作,Configuration(配置)–>Actions(動作)–>Create actions(創建動作)。

設置條件,此動作條件是維護狀態為非維護狀態即監控項在維護狀態不產生動作,並且觸發器示警度大於等於警告才觸發動作。

Zabbix監控系統郵箱告警的實現

添加操作。

默認標題:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

消息內容:

告警主機:{HOSTNAME1}

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

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

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

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

事件ID:{EVENT.ID}

Zabbix監控系統郵箱告警的實現

添加恢復操作。

默認標題:恢復{TRIGGER.STATUS},服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!

消息內容:

告警主機:{HOSTNAME1}

恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

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

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

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

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

事件ID:{EVENT.ID}

Zabbix監控系統郵箱告警的實現

4.測試觸發後(一臺Linux服務器目錄空間小於20%時觸發告警)收到郵件。

Zabbix監控系統郵箱告警的實現

5.測試恢復後收到郵件。

"

當Zabbix觸發器到了要發送通知的情況下,需要一箇中間介質來接收並傳遞它的消息給運維們,郵箱告警是最常用的手段,下面詳細介紹一下Zabbix郵箱告警的實現配置。關於Zabbix監控系統的搭建可以參考:Zabbix監控系統部署詳細步驟

1.我們選擇mailx作為郵件發送工具,查看是否安裝mailx。

# rpm -qa | grep mailx
mailx-12.5-12.el7_0.x86_64
libreport-plugin-mailx-2.1.11-32.el7.centos.x86_64

2. 如果有安裝其他自帶的郵件服務,將其關閉。

service sendmail stop #關閉sendmail
systemctl disable sendmail.service #禁止開機啟動sendmail
service postfix stop #關閉postfix
systemctl disable postfix.service #禁止開機啟動postfix

3. 編輯mail.rc文件沒有就手動創建,添加如下內容,以163郵箱為例。

# cat /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set [email protected]
set smtp=smtp.163.com
set [email protected] #註冊的認證用戶
set smtp-auth-password=****** #注意這是授權碼不是密碼
set smtp-auth=login

4.163郵箱授權碼獲取方法,登錄163郵箱郵箱設置開啟授權碼,

Zabbix監控系統郵箱告警的實現

輸入驗證碼,

Zabbix監控系統郵箱告警的實現

設置授權碼,

Zabbix監控系統郵箱告警的實現

最後開啟SMTP/POP3/IMAP服務,

Zabbix監控系統郵箱告警的實現

查看開啟狀態。

Zabbix監控系統郵箱告警的實現

5.測試郵件是否可以正常發出。

echo "zabbix testmail" |mail -s "zabbix" [email protected] 

打開公司郵箱可以收到測試郵件

Zabbix監控系統郵箱告警的實現

6. 在zabbix server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了。

# cat /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

7.創建郵件發送腳本。

# cat /usr/lib/zabbix/alertscripts/sendmail.sh 
#!/bin/bash
export LANG=en_US.UTF-8
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

說明:三個參數是接收從web頁面中傳遞過來的$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容。

8.增加zabbix可執行權限。

# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 177 Jul 26 10:34 /usr/lib/zabbix/alertscripts/sendmail.sh

9.創建郵件發送的臨時日誌文件並賦予權限。

# touch /tmp/sendmail.log
# chown zabbix.zabbix /tmp/sendmail.log

10. 用zabbix用戶測試郵件發送腳本可否由zabbix用戶調用。

/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "testhehehe" "i am from china"

可接收到郵件,腳本測試成功。

Zabbix監控系統郵箱告警的實現

11.Zabbix Web端配置。

1.創建報警媒介類型,Administration(管理)–>Media types(報警媒介類型)–>Create Media Type(創建媒體類型)。

類型選擇腳本,添加3個參數,分別對應sendmail.sh腳本需要的3個參數:收件人地址{ALERT.SENDTO}、主題{ALERT.SUBJECT}、詳細內容{ALERT.MESSAGE}。

Zabbix監控系統郵箱告警的實現

2.創建用戶,Administration(管理)–>Users(用戶)–>Create User(創建用戶)。

Zabbix監控系統郵箱告警的實現

並給用戶添加我們新建的報警媒介sendmail,設置收件人郵箱。

Zabbix監控系統郵箱告警的實現

3.創建動作,Configuration(配置)–>Actions(動作)–>Create actions(創建動作)。

設置條件,此動作條件是維護狀態為非維護狀態即監控項在維護狀態不產生動作,並且觸發器示警度大於等於警告才觸發動作。

Zabbix監控系統郵箱告警的實現

添加操作。

默認標題:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

消息內容:

告警主機:{HOSTNAME1}

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

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

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

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

事件ID:{EVENT.ID}

Zabbix監控系統郵箱告警的實現

添加恢復操作。

默認標題:恢復{TRIGGER.STATUS},服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!

消息內容:

告警主機:{HOSTNAME1}

恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

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

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

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

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

事件ID:{EVENT.ID}

Zabbix監控系統郵箱告警的實現

4.測試觸發後(一臺Linux服務器目錄空間小於20%時觸發告警)收到郵件。

Zabbix監控系統郵箱告警的實現

5.測試恢復後收到郵件。

Zabbix監控系統郵箱告警的實現

至此,Zabbix監控系統的郵箱告警實現配置完成!

"

相關推薦

推薦中...