今天意外发现sendmail发送邮件的时候没有记录日志
首先看日志:
发现定期创建新的日志文件但是文件都是空的
root@util3.baihui.com/var/log>ls -l /var/log/maillog*
-rw----r-- 1 root root 0 Nov 29 15:44 /var/log/maillog
-rw----r-- 1 root root 0 Nov 20 00:01 /var/log/maillog.1
-rw----r-- 1 root root 0 Nov 13 00:01 /var/log/maillog.2
-rw----r-- 1 root root 0 Nov 6 00:01 /var/log/maillog.3
-rw----r-- 1 root root 0 Oct 30 00:01 /var/log/maillog.4
然后查看sendmail进程是否存在
root@util3.baihui.com/etc/mail>ps aux |grep sendmail|grep -v grep
root 2216 0.0 0.1 71096 2356 ? Ss 14:59 0:00 sendmail: accepting connections
root 2217 0.0 0.1 73308 3328 ? S 14:59 0:00 sendmail: ./pAS0Whiu001741 12kjk.cn.mfg.baihui.com.: user open
smmsp 2225 0.0 0.0 57688 1780 ? Ss 14:59 0:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
查看25号端口是否处于监听状态
root@util3.baihui.com/etc/mail>netstat -anpt |grep sendmail
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2216/sendmail: acce
其次sendmail的配置文件是否开机记录日志功能
root@util3.baihui.com/etc/mail>grep -i "log_level" sendmail.mc
dnl define(`confLOG_LEVEL', `9')dnl
root@util3.baihui.com/etc/mail>grep -i "loglevel" sendmail.cf
O LogLevel=9
#日志是开启状态,O是单词OPEN的缩写
#9是info级别,数字越大表示记录级别越低,记录的信息越多
我一直认为是sendmail的问题,就一直钻在这个上面了
接下来又重启了sendmail
service sendmail restart
发邮件测试,还是没有日志记录
重新生成配置文件
cd /etc/mail/
m4 sendmail.mc > sendmail.cf
测试之后还是没有记录日志文件
后来Hollow man提到了一点cron的日志文件也是空的
我证实了一下,果然如此
root@util3.baihui.com/var/log>ls -l /var/log/cron*
-rw----r-- 1 root root 0 Nov 29 15:45 /var/log/cron
-rw----r-- 1 root root 0 Nov 20 00:01 /var/log/cron.1
-rw----r-- 1 root root 0 Nov 13 00:01 /var/log/cron.2
-rw----r-- 1 root root 0 Nov 6 00:01 /var/log/cron.3
-rw----r-- 1 root root 0 Oct 30 00:01 /var/log/cron.4
然后又看了一下是否有计划任务定期执行,如果没有的话日志文件为空是很正常的,事实证明是有计划任务的
root@util3.baihui.com/var/log>crontab -l
01 0 * * * /usr/sbin/logrotate
那么现在就不单是sendmail的问题了,应该是系统日志问题了,这让我突然想到了syslog
syslog果真没有启动
root@util3.baihui.com/var/log>ps aux |grep syslog
root 16930 0.0 0.0 61144 736 pts/0 S+ 15:26 0:00 grep syslog
启动syslog
root@util3.baihui.com/var/log>service syslog start
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
启动后查看syslog进程
root@util3.baihui.com/var/log>ps aux |grep syslog
root 17773 0.6 0.0 6168 904 ? Ss 15:27 0:00 syslogd -r -m 0
root 17788 0.0 0.0 61144 740 pts/0 S+ 15:27 0:00 grep syslog
再次发邮件测试,查看是否生成了sendmail日志:
root@util2.baihui.com/var/log>ls -l /var/log/maillog
-rw----r-- 1 root root 1515939 Nov 29 16:13 /var/log/maillog
为了避免再出现这样的问题,接下来要查看syslog服务是不是开机自启动
root@util2.baihui.com/var/log>chkconfig --list |grep syslog
syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
如果不是的话,一定要设置开机自启动
chkconfig --add syslog
chkconfig --level syslog 2345 on
做到这里才算是圆满结束
附件信息:
syslogd可以简单地被称为记录系统活动的一个daemons。比如可以记录谁,在什么时间,在哪里,做了什么事情(像是在写记叙文啊);
也可以记录您的系统曾经发生过什么事情,比如什么时候重新引导过、软硬件的错误信息等;当然也记录着您系统上运行着的服务的信息。
syslogd记录的日志一般在/var/log/下,当然也有存储在另外的服务器上的。因为syslogd记录的信息实在是太重要了,所以还要涉及日志安全的问题。
一般系统中日志信息:
代码:
/var/log/secure: 记录系统的安全信息,比如ssh、ftp、pop3等;
/var/log/wtmp: 记录谁曾经登陆过系统,由于本日志被编码过,所以只能用last命令查看;
/var/log/boot.log: 顾名思义,记录开启或者关闭系统及武夫的信息;
/var/log/message:系统发生的错误信息都会记录在这个日志中,比如iptables中您使用log功能的日志;
/var/log/mail:
/var/log/httpd/
/var/log/mysqld.d 等,记录的就是这些服务的日志