1、启用日志服务:
[root@www ~]#/etc/init.d/rsyslog start (redhel 6)
[root@www ~]#/etc/init.d/syslog start (redhel 5)
2、日志通常存放路径
/var/log/messages
/var/log/secure
/var/log/cron
/var/log/wtmp
/var/log/btmp
/var/log/lastlog
/var/log/boot.log
/var/log/rpmpkgs
/var/log/maillog
/var/log/spooler
/var/log/acpid
/var/log/yum.log
连接符号
.
.=
.!
(1)只记录mail的info级别信息到/var/log/newmaillog
mail.=info
(2)记录时间任务的info级别以上的所有信息(除了err外)到/var/log/newcron
cron.info;cron.!err
(3)把ssh的日志单独记录到/var/log/ssh
提示
如果拖管到xinetd下,可以这样做:
然后在syslog的主配置文件里加上
如果没有ssh托管到超级守护进程的话配置如下
[root@www ~]#vim /etc/ssh/sshd_config
SyslogFacility local5
[root@www ~]#/etc/init.d/sshd restart
local5.*
2、日志集中化管理
如果想将其他机器的日志全部发送到一台服务器上收集该如何配置。
假设客户端ip:10.10.10.10
(1)在客户端10上的配置
vim /etc/ssh/sshd_config
修改:SyslogFacility
vim /etc/rsyslog.conf
添加一项
local5.*
然后刷新服务:/etc/init.d/rsyslog reload (restart)
(2)在服务器上254配置
vim /etc/rsyslog_conf
打开远程接收日志功能:
$ModLoad imtcp
$InputTCPServerRun 514
然后添加一项:
local5.*
保存然后刷新服务或者重启服务:
[root@www ~]#/etc/init.d/rsyslog reload (restart)
此时当有计算机通过ssh链接到客户端10时日志全部保存在服务器254下的/var/log/下的remotessh.log文件里面3、日志切割论转备份
rotate
默认情况以下日志每过一个星期将自动论转备份。
/var/log/messages
/var/log/cron
/var/log/boot.log
/var/log/maillog
/var/log/secure
(1)配置全局论转备份文件
[root@www ~]#vim /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# use date as a suffix of the rotated file
dateext
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into thisdirectory
include /etc/logrotate.d
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp {
}
/var/log/btmp {
}
***做原理测试:
把主配置文件里的dateext参数给注释掉,再来做下面的测试;如果不注释,时间也不变的话,就不会轮转出4个文件出来,因为名字一样
[root@www ~]#logrotate -f /etc/logrotate.conf
*****如果想在rotate论转之前进行备份或者执行其他脚本,该如何实现?
结构如下: