linux(centos8):zabbix配置郵件報警(監控錯誤日志)(zabbix5.0)


一,zabbix5.0發郵件報警的准備工作:

      zabbix5.0在linux平台上的安裝:參見這一篇:

https://www.cnblogs.com/architectforest/p/12912560.html

      阿里雲主機linux平台配置mailx使用smtps發郵件,參見這一篇:

https://www.cnblogs.com/architectforest/p/12924395.html

 

說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/

說明:作者:劉宏締 郵箱: 371125307@qq.com

 

二,使zabbix可以通過bash腳本發郵件:

備注:在添加發郵件腳本前應已完成mailx的配置

[root@blog ~]# more /etc/mail.rc
#其他配置...
#by lhd set from
=cbnlaoliuhb@163.com set smtp=smtps://smtp.163.com:465 set smtp-auth-user=cbnlaoliuhb@163.com set smtp-auth-password=TVPPDSCLUUIVULOL set smtp-auth=login ##set smtp-use-starttls set ssl-verify=ignore set nss-config-dir=/root/.163certs

 

1,創建發郵件發警的腳本所在目錄:

[root@blog zabbx-5.0.0]# mkdir -p /data/zabbix_server/data/alertscripts

 

2,修改zabbix_server的配置

修改配置文件:

[root@blog zabbx-5.0.0]# vi /usr/local/soft/zabbx-5.0.0/etc/zabbix_server.conf 

設置配置項:

AlertScriptsPath=/data/zabbix_server/data/alertscripts

重啟服務

[root@blog zabbx-5.0.0]# systemctl restart zabbix-server.service

 

3,編寫發郵件的腳本

[root@blog zabbx-5.0.0]# vi /data/zabbix_server/data/alertscripts/mailx.sh 

內容:

#!/bin/bash
echo "$3" | mail -s "$2" "$1"

 

4,為腳本增加可執行權限和修改owner

[root@blog zabbx-5.0.0]# chmod +x /data/zabbix_server/data/alertscripts/mailx.sh
[root@blog zabbx-5.0.0]# chown zabbix:zabbix /data/zabbix_server/data/alertscripts/mailx.sh

 

5,測試發一封郵件:

[root@blog ~]# sudo -u zabbix /data/zabbix_server/data/alertscripts/mailx.sh 371125307@qq.com "zabbix alert" "/etc/passwd is changed"

能收到表示發郵件成功

查看郵箱: 

 

三,配置zabbix監控到問題時觸發動作發郵件報警

我們添加一個例子:當php的錯誤日志中出現error字樣時,發送郵件報警

1,配置報警媒介:

  

說明:注意腳本名稱:不要寫絕對路徑,因為在配置文件中已經做了配置

在這里我把Email改名成了email腳本,大家可以新建一個媒介類型

 

2,測試 Email腳本 這個媒介類型是否能正常發送郵件?

  

看到 “Media type test successful.”,並收到郵件,
表示報警媒介工作正常

 

3,新建一個用戶組和用戶,用來接收郵件

說明:不能只創建用戶而不創建用戶組,因為要使用用戶組來配置權限

說明:郵件用戶組要對監控的主機群組有讀寫權限

創建用戶:

配置用戶的報警媒介:

 

4,給web2這台主機增加對日志/data/logs/phplogs/error.log的監控觸發器:
監控的字串是:ERROR

 

5,配置動作:當觸發動作時會發郵件到指定用戶報警

 新建一個動作:

注意選中我們新建的觸發器

還要增加發郵件報警的操作

 

6,測試效果

登錄到web2,在error.log中新加一行:

[root@web2 phplogs]# vi error.log 

新加一行:

ERROR fatal 3009

回到zabbix查看儀表板(注意有可能有幾秒鍾時間的延時):

已經報告了問題

此時郵箱也收到了郵件.

 

7,mailx通過腳本發送郵件有一個問題:郵件內容會作為附件發送,郵件本身的內容為空,如何解決?

查看是否存在dos2unix命令?

[root@blog ~]# whereis dos2unix
dos2unix: /usr/bin/dos2unix /usr/share/man/man1/dos2unix.1.gz

如果不存在,用dnf安裝

[root@blog ~]# dnf install dos2unix

修改發郵件的腳本:

[root@blog phplogs]# vi /data/zabbix_server/data/alertscripts/mailx.sh

內容:

#!/bin/bash
#echo "$3" | mail -s "$2" "$1"
FILE=/tmp/mailtmp${RANDOM}.txt
touch $FILE
echo "$3" >$FILE
dos2unix -k $FILE
mailx -v -s "$2" "$1" < $FILE
rm -rf $FILE

之后郵件發送正常,內容可以正常顯示

如圖:

四,查看zabbix的版本:

[root@blog zabbix-5.0.0]# /usr/local/soft/zabbx-5.0.0/sbin/zabbix_server --version
zabbix_server (Zabbix) 5.0.0
Revision 9665d62db0 11 May 2020, compilation time: May 17 2020 09:37:03

Copyright (C) 2020 Zabbix SIA
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it according to
the license. There is NO WARRANTY, to the extent permitted by law.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM