开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Sendmail 发送监控报警邮件报错 dsn=5.6.0, stat=Data format error

简介:
+关注继续查看

一、问题:

命令测试发送邮件:

#echo "mailtest"|mail -s "test   mail"  ceshi@staff.test.com

查看mail log,报错如下:

# tail -f /var/log/maillog

Oct 31 11:30:13 nagios90-219 sendmail[20981]: q9V3UCvt020981: from=<root@nagios90-219.test.com>, size=358, class=0, nrcpts=1, msgid=<201210310330.q9V3UCmb020972@nagios90-219.test.com>, proto=ESMTP,daemon=MTA, relay=localhost.localdomain [127.0.0.1]

 

Oct 31 11:30:13 nagios90-219 sendmail[20987]: q9V3UCvt020981: to=<admins@system.test.com>, ctladdr=<root@nagios90-219.test.com> (0/0), delay=00:00:01, xdelay=00:00:00, mailer=esmtp, pri=120358, relay=system.test.com. [60.28.250.40], dsn=5.6.0, stat=Data format error

 

Oct 31 11:30:13 nagios90-219 sendmail[20987]: q9V3UCvt020981: q9V3UDvt020987: DSN: Data format error

 

 二、分析原因

根据邮件报错得知跟mta域名解析有关,因为报警邮件内部使用,未在DNS配置mail的域名、mx记录,发送邮件时导致不能正常解析mail域名

 

三、解决问题:

解决问题前,先介绍两个关键文件:

1、域名解析过程受文件nsswitch.conf(数据库和名字服务转换配置文件)定义,解析域名默认先读/etc/hosts,若没有才去dns查询,具体定义如下:

# vim /etc/nsswitch.conf 

hosts:      files dns

 

说明:

#dns   Use DNS (Domain Name Service)

#files  Use the local files

 

2hosts文件,主机名查询静态表,是Linux系统中一个负责IP地址与域名快速解析的文件

原内容:

# vim /etc/hosts

127.0.0.1     localhost.localdomain localhost

 

格式说明:

第一部份:网络IP地址;

 

第二部份:主机名或域名;

 

第三部份:主机名别名

修改后的hosts文件内容:

127.0.0.1               nagios90-219.test.com  localhost nagios90-219

3

正常的邮件日志:

Oct 31 11:58:03 nagios90-219 sendmail[13891]: q9V3w3GA013891: from=<root@nagios90-219.test.com>, size=1395, class=0, nrcpts=1, msgid=<201210310358.q9V3w1e4013824@nagios90-219.test.com>, proto=ESMTP,daemon=MTA, relay=nagios90-219.test.com [127.0.0.1]

Oct 31 11:58:04 nagios90-219 sendmail[13824]: q9V3w1e4013824: to=root, ctladdr=root (0/0), delay=00:00:03, xdelay=00:00:01, mailer=relay, pri=31112, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent(q9V3w3GA013891 Message accepted for delivery)

Oct 31 11:58:04 nagios90-219 sendmail[13969]: q9V3w3GA013891: to=<root@nagios90-219.test.com>, ctladdr=<root@nagios90-219.test.com> (0/0), delay=00:00:01, xdelay=00:00:00, mailer=local, pri=31631,dsn=2.0.0, stat=Sent

 

总结:无论是内部使用还是提供外部服务,应用服务都需要严谨标准配置,避免后期隐患。在Nagios邮件报警中,大家都会选择linux系统自带的sendmail做为MTA,此问题也是容易忽略和常见的,以此供参考,欢迎和大家一起讨论运维中发现的问题,谢谢。

 

 

 本文转自pandazhai 51CTO博客,原文链接:http://blog.51cto.com/dreamway/1045178

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云日志直接输出到ElK监控的Docker镜像
阿里云日志直接输出到ElK监控的Docker镜像.可以直接实现在容器服务里面即插即用
4687 0
ERROR: invalid byte sequence for encoding "UTF8": 0xd5 0xc5
在使用 psql 执行数据插入操作的时候,提示:ERROR:  invalid byte sequence for encoding "UTF8": 0xd5 0xc5 错误原因是使用客户端工具 XShell 连接 Ubuntu 系统时,没有指定编码为:UTF-8 解决方法: 打开连接属性,左侧类别中选择终端,右侧编码选择:Unicode(UTF-8) 设置完成,点击确定保存后,再执行语句就可以了。
713 0
Docker系列教程19-Docker Compose简介
原文:http://www.itmuch.com/docker/19-docker-compose-summary/ ,转载请说明出处。 经过前文讲解,我们可使用Dockerfile(或Maven)构建镜像,然后使用docker命令操作容器,例如docker run、docker kill等。
930 0
基于Docker构建CentOS7_Java8_Tomcat8.5 的镜像及Web应用的部署
我所渴求的无非是将心中脱颖欲出的本性付诸生活。为什么竟如此艰难呢? ----黑塞
0 0
制作tomcat的dockerfile
制作tomcat的dockerfile
0 0
如何向K8s,Docker-Compose注入镜像Tag
最近在做基于容器的CI/CD, 一个朴素的自动部署的思路是: 从Git Repo打出git tag,作为镜像Tag ssh远程登录到部署机器 向部署环境注入镜像Tag,拉取镜像,重新部署 下面分享我是如何在K8s、docker-compose中注入镜像Tag?
0 0
关于 Qt编译时使用msvc编译器报错“Error: cannot open ...main.obj.10836.32.jom for write” 的解决方法
关于 Qt编译时使用msvc编译器报错“Error: cannot open ...main.obj.10836.32.jom for write” 的解决方法
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载