一 读qmail日志
一旦消息被记录,就应该监控记录以发现问题。下面看一个qmail的mail日志文件: ------------------------------------------------------------------------------------- 1、 Apr 11 02:02:18 mail qmail : 955436538.813320 new msg 18995 2、 Apr 11 02:02:18 mail qmail : 955436538.815787 info msg 18995: byte 603 from < root@mail.96633.net > qp 26920 uid 0 3、 Apr 11 02:02:18 mail qmail : 955436538.892499 starting delivery 103: msg 18995 to local root@96633.net 4、 Apr 11 02:02:18 mail qmail : 955436538.895936 status: local 1/10 remote 0/20 5、 Apr 11 02:02:19 mail qmail : 955436539.075785 delivery 103: success:did_0+1+0/qp-26976/ 6、 Apr 11 02:02:19 mail qmail : 955436539.098222 status: local 0/10 remote 0/20 7、 Apr 11 02:02:19 mail qmail : 955436539.100838 end msg 18995 ----------------------------------------------------------------------------------- 第一行给出了接收这条新消息的qmail日志。 第二行使用发送者以及消息的大小标识消息。 第三行表示qmail正在初始化发送。 第四行给出了qmail的状态。显示出邮件队列中只有一条消息在等待发送。 第五行表明成功将消息发送给本地用户。 正如以上看到,qmail项可能看起来令人疑惑,他有6种类型的qmail日志消息: 1、 状态 2、 致命问题 3、 严重问题 4、 消息 5、 发送项 6、 警告 下面我们将逐一介绍qmail的日志类型。二 状态消息
状态消息记录了服务器上的操作。一条状态消息的格式如下: status:local n/L remote r/R 其 中n/L为队列中的本地消息数量(n) 以及本地邮件队列的大小(L)。r/R是队列中的远程消息的数量(r)以及远程邮件队列的大小。如(表15)中的第四行。如果你注意到队列频繁的被消息填 满,你就有可能要改变邮件队列的大小了。可以通过更改qmail的控制文件,来实现。6.2.4 致命问题
致命问题是那些导致qmail异常终止和停止运行的问题,应该马上处理你的mail server。 Qmail致命问题日志消息 ---------------------------------------------------------------------------------- 消息 描述 ----------------------------------------------------------------------------------- alert:can not start qmail-send不能初始化来进行启动。通常这是一个配置文件问题的征兆 alert:oh no! lost 一个支持后台的程序,例如:qmail-lspawn or qmail-rspawn已经死掉,因此qmail-send将关闭。 --------------------------------------------------------------------------------- 三 严重问题 有严重问题的纪录,就是qmail不能处理一个特定的事件但会重试。严重问题不会qmail 停止运行,但如果持续出现,可能会导致一个致命问题出现,使qmail关闭。如下: qmail严重问题日志 ------------------------------------------------------------------------------------- 消息 描述 ------------------------------------------------------------------------------------ alert: unable to append bounce message qmail-send不能处理一个永久的发送失败,通 常是没有硬盘空间了。 alert: out of memory qmail-send 试图分配内存,但是失败了 alert: unable to opendir qmail-send不能从硬盘打开一个文件列表,因 为权限不够,或描述符表已满。 alert: unable to switch back qmail-send收到一个sighup信号,但不能读队列目录。 alert: unable to reread qmail-send收到一个sighup信号,但不能读控制目录。 ------------------------------------------------------------------------------四 qmail消息
qmail为进入和退出qmail系统的每一条消息创建了一个日志纪录。这些日志记录是基每 一条消息指定一个标号。下面是一些可能出现的消息日志项 ----------------------------------------------------------------------------- 消息 描述 ------------------------------------------------------------------------------- new msg m qmail-send正在处理邮件队列中的消息号为m info msg m: bytes b from <s> qp q uid u 消息m包含了b个字节,来自发送者s,被用户ID u排队,队列标识符为q。 bounce msg m qp q 消息m发送失败。返回消息的队列标识符为q。 triple bounce: discarding m 消息m被标识成不能发送的两次返回消息, 将被删除。 end msg m 消息m正被从队列中除去。 -----------------------------------------------------------------------------------五 发送项
当qmail-send试图发送一条消息,必须将一条状态消息纪录到日志中。下面给出了可能的 发送项日志消息。Qmail发送日志项 ------------------------------------------------------------------------------------- 消息 描述 ------------------------------------------------------------------------------------ starting delivery d: msg m to qmail-send正在处理一个发送消息m,发送ID为d。 delivery d: success 发送项d被成功的发送给接收方。 delivery d: deferral 发送项d遇到一个暂时的发送失败,将重试。 delivery d: failure 发送项d遇到一个永久失败,消息将返回。 delivery d: report mangled will defer 发送项d在qmail-rspawn 或qmail-lspawn中遇到问题,将重试。 -------------------------------------------------------------------------------------六 警告
当在处理邮件中遇到错误,qmail将做为警告记录到日志中。警告表示了qmail能解决的 暂时性问题。但是,警告可能是一个在问题的前兆。下面是一些qmail的警告消息 ---------------------------------------------------------------------------------- 消息 描述 ----------------------------------------------------------------------------------- internal error: delivery report out of range qmail-lspawn或qmail-rspawn为一个不存在的发送项ID返回了一个发送报告。 qmail-clean unable to clean up qmail-clean不能删除一个文件。 trouble fsyncing qmail-send不能重写磁盘。 trouble in select 一个可能的操作系统错误。 trouble injecting bounce message qmail-send不能排队一个返回消息。 trouble marking qmail-send不能记录一次发送不成功的结果。 trouble opening qmail-send不能打开本地和远程接收者的列表。 trouble reading qmail-send不能读收者的列表。 trouble writing to qmail-send不能处理一条列表中的消息。 trouble to create qmail-send不能处理一条列表中的消息。 unable to open qmail-send不能读一条排队消息中的信件头。 unable to start qmail-queue qmail-queue qmail-send不能排队一条返回消息。 unable to stat qmail-send不能得到有关一个文件的消息。 unable to unlink qmail-send不能删除一个文件。 unable to utime qmail-send不能纪录下一次调度发送时间。 unknown record type in qmail-send或qmail-queue中的一个严重的错误。 ----------------------------------------------------------------------------------补充:
Qmail日志中的时间转换(如:@400000003f1f409e2256080c 转换成2003-07-24 10:12:36.576063500 ):
tai64nlocal < current
可将日志中的时间戳转化为标准格式,而其他信息不变