記一次zabbix報警郵件無法接收的問題


學習zabbix報警媒介,嘗試調用shell腳本來完成郵件的發送操作時,在觸發動作后,報警郵件順利發出,但我所在的郵箱卻一直沒有收到報警郵件。

現象

avatar
在測試多次后查看zabbix審計日志時發現zabbix均已成功發送郵件,但郵箱中一直沒有收到報警郵件。
avatar

分析

在服務器上嘗試調用mailx程序,郵件順利發送並在郵箱中可以看到報警郵件。

Ξ (bochs) ~ → echo "test content" | mailx -s "test title" 17551094687@163.com  
Ξ (bochs) ~ →

avatar
服務器可以順利的發送郵件,但為什么zabbix發送的郵件遲遲收不到?我轉換了思路,不在使用最新版的4.4.5版本,改換成4.0LTS版本,發現問題依然存在,這時就能判斷不是zabbix程序的問題。
繼續想,會不會是zabbix沒有調用到腳本呢,我在腳本中又加入了時間:

#!/bin/bash
 
export LANG="zh_CN.utf8"
echo `date "+%Y-%m-%d %H:%M:%S"` 進入腳本>> /tmp/mailx.log
echo $1
echo $2
echo $3

SEND_TO=$1
SEND_SUBJECT=$2
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE

/usr/bin/mailx -s "$SEND_SUBJECT" $SEND_TO < $FILE
echo `date "+%Y-%m-%d %H:%M:%S"` 退出腳本>> /tmp/mailx.log

運行測試並查看/tmp/mailx.log,發現zabbix順利進入了腳本,並且腳本中的參數也正確傳遞了

2020-02-02 09:44:22 進入腳本
************@163.com
故障PROBLEM,服務器:aliyun發生: 無法telnet zabbix_server的10051端口;宏變量函數測試:宏變量測試成功故障!
 事件ID:93PROBLEM:1tzabbix server的10051端口:1宏變量函數測試:宏變量測試成功
2020-02-02 09:44:22 郵件成功發送

將腳本中的參數拿到命令行執行參數測試,發現郵件順利發送。zabbix順利進入了腳本但是沒發送郵件,命令行確是能正常發送。

解決

重新梳理了一遍思路后推測,會不會是zabbix無權限調用mailx程序呢?為了驗證這個問題,我先將zabbix的默認shell切換為/bin/bash,以使我能順利的登錄到zabbix用戶

usermod -s /bin/bash zabbix
su - zabbix #切換到zabbix用戶

調用腳本進行測試發現重要的報錯信息

-bash-4.2$ echo "11" | mailx -s "22" ############@163.com
-bash-4.2$ Error initializing NSS: Unknown error -8015.
. . . message not sent.

這個報錯是之前在root賬戶時從未發生的報錯,這時可以斷定是權限問題了。查看mailx程序的權限是755,也就是說zabbix可以順利的調用到mailx程序進行郵件的發送。
后來,終於找到了問題的所在,原來我的mailx配置文件/etc/mail.rc中的秘鑰文件位於/root目錄下

set from="###########@163.com"
set smtp="smtps://smtp.163.com:465"
set smtp-auth-user="###########@163.com"
set smtp-auth-password="############"
set smtp-auth="login"
set ssl-verify="ignore"
set nss-config-dir="/root/.certs"

我們知道普通用戶是肯定不能進入root用戶的家目錄的,這就導致了zabbix無法調用到證書,進而無法發送郵件的
將秘鑰文件拷貝到其他的目錄下,並將這個目錄授予777權限,更改mailx的配置文件。

cp -R /root/.certs /etc/zabbix && chmod 777 /etc/zabbix/.certs

這時測試郵件可以順利的發送,在嘗試用zabbix觸發報警郵件,報警郵件順利發送,郵箱中也有報警郵件了。
avatar
最后,將zabbix的默認shell換回/sbin/nolgin,防止惡意利用

usermod -s /sbin/nologin zabbix

總結

問題終於厘清,郵箱中順利的接受到了郵件。追根溯源才發現是權限問題,下次有多用戶調用的文件時應避免放到/root目錄防止普通用戶無法調用。


免責聲明!

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



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