日志管理
一、处理日志的进程
rsyslogd: 绝大部分日志记录,和系统操作有关,安全,认证sshd,su,计划任务at,cron…
二、常见的日志文件(系统、进程、应用程序)
tail /var/log/messages //系统主日志文件
tail -20 /var/log/messages
tail -f /var/log/messages //动态查看日志文件的尾部
tailf /var/log/secure //认证、安全
tail /var/log/maillog //跟邮件postfix相关
tail /var/log/cron //crond、at进程产生的日志
tail /var/log/dmesg //和系统启动相关
tail /var/log/audit/audit.log //系统审计日志
tail /var/log/yum.log //yum
tail /var/log/mysqld.log //MySQL
tail /var/log/xferlog //和访问FTP服务器相关
w //当前登录的用户 /var/log/wtmp
last //最近登录的用户 /var/log/btmp
lastlog //所有用户的登录情况/var/log/lastlog
三、rsyslogd子系统
rpm -qc rsyslog
/etc/logrotate.d/syslog //和日志办轮转(切割)相关
/etc/rsyslog.conf //rsyslogd的主配置文件
/etc/sysconfig/rsyslog //rsyslogd相关文件
vim /etc/rsyslog.conf
RULES
告诉rsyslogd进程 哪个设备(facility),关于哪个级别的信息,以及如何处理
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
mail.info /var/log/maillog
authpriv.* * <所有终端>
authpriv.* @192.168.10.230 <UDP>
authpriv.* @@192.168.10.230 <TCP>
设备facility
# man 3 syslog
LOG_AUTH
LOG_AUTHPRIV 安全认证
LOG_CRON clock daemon (cron and at)
LOG_DAEMON 后台进程
LOG_FTP ftp daemon
LOG_KERN kernel messages
LOG_LOCAL0 through LOG_LOCAL7 用户自定义设备
LOG_LPR printer subsystem
LOG_MAIL 邮件系统mail subsystem
LOG_NEWS news subsystem
LOG_SYSLOG syslogd自身产生的日志
LOG_USER (default)
LOG_UUCP
级别level syslogd 遇到何种情况(正常、错误)才会记录日志
LOG_EMERG 紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT 报警,需要立即处理,如磁盘空使用95%
LOG_CRIT 致命行为
LOG_ERR 错误行为
LOG_WARNING 警告信息
LOG_NOTICE 普通
LOG_INFO 标准信息
LOG_DEBUG 调试信息,排错所需,一般不建议使用
四、logrotate(轮状、日志切割)
logrotate 配置文件:
/etc/logrotate.conf (决定每个日志文件如何轮转)
/etc/logrotate.d/*
-
如果没有日志轮转,日文件会越来越大
-
将丢弃系统中最旧的日志文件,以节省空间
-
logrotate本身不是系统守护进程,它是通过计划任务crond每天执行
[root@test~]# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf //日志轮转,按/etc/logrotate.conf
主配置文件
[root@test ~]# vim /etc/logrotate.conf
=========全局设置==========
weekly //轮转的周期,一周轮转
rotate 4 //保留4份
create //轮转后创建新文件
dateext //使用日期作为后缀
#compress //是否压缩
include /etc/logrotate.d //包含该目录下的文件
/var/log/wtmp { //对该日志文件设置轮转的方法
monthly //一月轮转一次
minsize 1M //最小达到1M才轮转
create 0664 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
}
/var/log/btmp {
missingok //丢失不提示
monthly //每月轮转一次
create 0600 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
}
Example:
- 轮转文件/etc/logrotate.d/yum
# vim /etc/logrotate.d/yum
/var/log/yum.log {
missingok
# notifempty
# size 30k
# yearly
daily
rotate 3
create 0777 root root
}
- /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}