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/
說明:作者:劉巨集締 郵箱: [email protected]
二,使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.