天天看點

Sendmail 發送監控報警郵件報錯 dsn=5.6.0, stat=Data format error

<b>一、</b><b>問題:</b>

<b></b>

指令測試發送郵件:

檢視mail log,報錯如下:

# tail -f /var/log/maillog

Oct 31 11:30:13 nagios90-219 sendmail[20981]: q9V3UCvt020981: from=&lt;[email protected]&gt;, size=358, class=0, nrcpts=1, msgid=&lt;[email protected]&gt;, proto=ESMTP,daemon=MTA, relay=localhost.localdomain [127.0.0.1]

Oct 31 11:30:13 nagios90-219 sendmail[20987]: q9V3UCvt020981: to=&lt;[email protected]&gt;, ctladdr=&lt;[email protected]&gt; (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

 <b>二、分析原因</b>:

根據郵件報錯得知跟mta域名解析有關,因為報警郵件内部使用,未在DNS配置mail的域名、mx記錄,發送郵件時導緻不能正常解析mail域名

<b>三、解決問題:</b>

解決問題前,先介紹兩個關鍵檔案:

1、域名解析過程受檔案nsswitch.conf(資料庫和名字服務轉換配置檔案)定義,解析域名預設先讀/etc/hosts,若沒有才去dns查詢,具體定義如下:

# vim /etc/nsswitch.conf 

hosts:      files dns

說明:

#dns   Use DNS (Domain Name Service)

#files  Use the local files

2、hosts檔案,主機名查詢靜态表,是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=&lt;[email protected]&gt;, size=1395, class=0, nrcpts=1, msgid=&lt;[email protected]&gt;, proto=ESMTP,<b>daemon=MTA, relay=nagios90-219.test.com [127.0.0.1]</b>

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], <b>dsn=2.0.0, stat=Sent</b>(q9V3w3GA013891 Message accepted for delivery)

Oct 31 11:58:04 nagios90-219 sendmail[13969]: q9V3w3GA013891: to=&lt;[email protected]&gt;, ctladdr=&lt;[email protected]&gt; (0/0), delay=00:00:01, xdelay=00:00:00, mailer=local, pri=31631,<b>dsn=2.0.0, stat=Sent</b>

<b>總結:</b>無論是内部使用還是提供外部服務,應用服務都需要嚴謹标準配置,避免後期隐患。在Nagios郵件報警中,大家都會選擇linux系統自帶的sendmail做為MTA,此問題也是容易忽略和常見的,以此供參考,歡迎和大家一起讨論運維中發現的問題,謝謝。

 本文轉自pandazhai 51CTO部落格,原文連結:http://blog.51cto.com/dreamway/1045178

繼續閱讀