本节包含以下几个部分:
邮件队列的过度增长可能表明邮件没有被传送出去、传送被延迟或者传入速度比系统所能传送它们的速度要快。这可能是由多种原因造成的,例如由系统中泛滥的大量邮件导致拒绝服务攻击,或者作业控制器未运行。
有关邮件队列的更多信息,请参见通道邮件队列、邮件未被排出队列和未传送 MTA 邮件。
磁盘空间使用量增长。
用户没有在合理的时间内收到邮件。
邮件队列大小异常大。
监视邮件队列的最好方法可能是使用 imsimta qm。请参见imsimta qm counters。
您也可以监视队列目录 (msg_svr_base/data/queue/) 中文件的数量。文件数量是特定于站点的,您需要建立一个基线历史记录以找出文件数量“过多”的标准。这可以通过记录两周内队列文件的大小获得一个近似平均值来完成。
传送失败是指尝试将邮件传送给外部站点时失败。传送失败率的大幅增加可能是出现网络问题(例如 DNS 服务器死机或者远程服务器在响应连接时超时)的信号。
没有外部症状。mail.log_current 中会出现很多 Q 记录。
传送失败将记录在 MTA 日志中,日志记录条目代码为 Q。可以在文件 msg_svr_base/data/log/mail.log_current 中查看该记录。示例:
mail.log:06-Oct-2003 00:24:03.66 501d.0b.9 ims-ms Q 5 durai.balusamy@Sun.COM rfc822;durai.balusamy@Sun.COM durai@ims-ms-daemon <00ce01c38bda$c7e2b240$6501a8c0@guindy> Mailbox is busy
来自给定 IP 地址的入站 SMTP 连接数的异常增长可能表示:
外部用户正在尝试转发邮件。
外部用户正在尝试进行拒绝服务攻击。
外部用户转发邮件:在 msg_svr_base/log/mail.log_current 中查找具有日志记录条目代码 J(拒绝的转发)的记录。要启用远程 IP 地址的日志记录,请向 option.dat 文件添加以下行:
log_connection=1
请注意,启用此功能要付出少量性能代价。
拒绝服务攻击:要查找连接到 SMTP 服务器的用户及其数量,可以运行命令 netstat 并检查 SMTP 端口(默认值:25)上的连接。示例:
Local address Remote address State 192.18.79.44.25 192.18.78.44.56035 32768 0 32768 0 CLOSE_WAIT 192.18.79.44.25 192.18.136.54.57390 8760 0 24820 0 ESTABLISHED 192.18.79.44.25 192.18.26.165.48508 33580 0 24820 0 TIME_WAIT |
请注意,您首先需要确定系统的 SMTP 连接的适当数量及其状态(ESTABLISHED、CLOSE_WAIT 等),以便确定某次特定的读取是否超出了正常范围。
如果发现很多连接处于 SYN_RECEIVED 状态,则可能是由网络断开或拒绝服务攻击造成的。此外,SMTP 服务器进程的生存期是有限的。它是由 dispatcher.cnf 文件中的 MTA 配置变量 MAX_LIFE_TIME 控制的。默认值为 86,400 秒(一天)。与此类似,MAX_LIFE_CONNS 可以指定服务器进程在其生存期内所能处理的最大连接数。如果发现某个特定的 SMTP 服务器已经运行了很长时间,则可能需要进行调查。
分发程序和作业控制器进程必须运行,MTA 才能工作。您应当具有每一种进程。
如果分发程序出现故障或没有足够的资源,则 SMTP 连接将被拒绝。
如果作业控制器出现故障,则队列的大小将增加。
检查是否存在名为 dispatcher 和 job_controller 的进程。请参见检查作业控制器和分发程序是否正在运行。