我花了 3 个小时研究如何让 nagios 与电子邮件通知一起工作,我需要发送电子邮件,而唯一可访问的 smtp 服务器是公司的服务器。
我设法使用以下命令从控制台完成此操作:
mail [email protected]
为了达到目的我设置了 ssmtp.conf,如下所示:
[email protected]
mailhub=smtp.company.com:587
[email protected]
AuthPass=mypassword
FromLineOverride=YES
useSTARTTLS=YES
rewriteDomain=company.pl
hostname=nagios
UseTLS=YES
我还编辑了文件 /etc/ssmtp/revaliases 如下:
root:[email protected]:smtp.company.com:587
nagios:[email protected]:smtp.company.com:587
nagiosadmin:[email protected]:smtp.company.com:587
我还编辑了 /etc/ssmtp/* 的文件权限,如下所示:
-rwxrwxrwx 1 root nagios 371 lis 22 15:27 /etc/ssmtp/revaliases
-rwxrwxrwx 1 root nagios 1569 lis 22 17:36 /etc/ssmtp/ssmtp.conf
并且我分配到了我认为合适的组:
cat /etc/group |grep nagios
mail:x:12:mail,postfix,nagios
mailnull:x:47:nagios
nagios:x:2106:nagios
nagcmd:x:2107:nagios
当我手动发送邮件时,我会在我的私人邮箱中收到它,但是当我从 nagios 发送邮件时,邮件日志显示:
Nov 22 17:47:03 certa-vm2 sSMTP[9099]: MAIL FROM:<[email protected]>
Nov 22 17:47:03 certa-vm2 sSMTP[9099]: 550 You are not allowed to send mail from this address
它说[电子邮件保护]我不被允许发送声称是[电子邮件保护],它应该是[电子邮件保护],我做错了什么?我已经没招了……
亲切的问候 Adam xxxx
答案1
您需要修改 nagios 通知命令以传递 mail/ssmtp 期望设置“发件人”地址的任何 CLI 参数。
如何执行此操作的具体细节因 MTA 而异,但我相信 ssmtp 实现了与 sendmail 兼容的接口,因此您应该能够将其添加到通知命令的末尾:
-- -f [email protected]
仔细检查“mail”的手册页以确认“--”允许您将 sendmail 选项传递给 MTA,然后检查“sendmail”的手册页以确认“-f”将设置“发件人”地址。