问题描述:
1、/nagioshome/var/nagios.log文件中显示邮件已经发出
2、root用户执行 echo "hello" |mutt -s "test" [email protected] 可以正常发送
su - nagios -c ‘echo "hello" |mutt -s "test" [email protected]‘ 同样可以正常发送
3、nagios运行时发送的邮件收不到
解决思路:
以上可以说明mutt+msmtp程序本身不存在问题,可能原因还是在nagios上,具体原因只能靠日志来分析,而nagios.log和系统
日志里没有太多有用的信息,那么就自己想办法打印出相关的信息。
msmtp命令参数中有一个“-d”的参数,可以详细输出发邮件整个过程的debug信息。
解决过程:
修改/etc/Mutt配置文件
同时修改nagios配置文件/nagioshome/etc/objects/commands.cfg,并重启nagios服务。
此时打开nagios界面,发送一条自定义的信息,然后打开/tmp/nagios.log查看相关信息。以下是我遇到的错误
到这里问题基本明了了。就是对文件没有写的权限,最简单的方法当然是改权限,但,这是root的目录,为了安全不建议把root的默认权限550改成其它, 所以,要从sent的来源着手。
修改/etc/Mutt配置文件,并手动在/var/log/下创建sent.log文件,赋予它777的权限或把有者改为nagios用户。
至此问题已经解决。
最后还原所有为测试修改的地方,完成邮件发送。