rsyslogd:系统的专职日志程序,将绝大部分操作系统相关的日志记录。(安全、认证、计划任务..)
应用程序日志:各类应用程序以自己的方式记录的日志。
# 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服务器相关
# tail /var/log/wtmp //当前登录的用户(命令:w)
# tail /var/log/btmp //最近登录的用户(命令last )
# tail /var/log/lastlog //所有用户的登录情况(命令lastlog )
# yum install rsyslog logrotate (默认已安装)
# systemctl start rsyslog.service //启动
# rpm -qc rsyslog //查找相关文件
/etc/rsyslog.conf //rsyslogd的主配置文件
/etc/sysconfig/rsyslog //rsyslogd相关文件,定义级别
/etc/logrotate.d/syslog //和日志办轮转(切割)相关
- 1
# vim /etc/ssh/sshd.config
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL5
- 2
# vim /etc/rsyslog.conf
local5.* @192.168.2.131 <---此处填写另一台设备的IP地址。
另一台设备是集中日志服务器。
- 3
# systemctl restart sshd
# systemctl restart rsyslog
#systemctl stop firewalld
- 1
# vim /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
local5.* /var/log/server152.log
- 2
# systemctl restart rsyslog
#systemctl stop firewalld
- 3
尝试ssh登录服务器1.
并观察本地日志
ll /var/log/server152.log
Linux系统默认安装logrotate工具
Logrotate是基于cron来运行的,其脚本是/etc/cron.daily/logrotate,日志轮转是系统自动完成的。 实际运行时,Logrotate会调用配置文件/etc/logrotate.conf。
日志记录了程序运行的各种信息,通过日志可以分析用户行为记录运行轨迹,查找程序问题,但磁盘是有限的,因此需要记录最后一段时间发生的记录。
logrotate本身不是系统守护进程,他是通过计划任务crond每天执行。
# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf //日志轮转,按/etc/logrotate.conf
logrotate 配置文件:
主文件:/etc/logrotate.conf (决定每个日志文件如何轮转)
子文件夹:/etc/logrotate.d/*
# vim /etc/logrotate.conf
全局设置
weekly 轮转周期
rotate 保留4份
create 轮转后创建新文件
dateext 使用日期作为后缀
#compress 是否压缩
include /etc/logrotate.d 包含该目录下的子配置文件
对某日志文件设置轮转的方法
/var/log/wtmp{
monthly 一月轮转一次
minsize 1M 最小达到1M才轮转,monthly and minsize
create 0664 root utmp 最小达到1M才轮转,monthly and minsize
rotate 1 保留一份
}
/var/log/btmp {
missingok //丢失不提示
monthly //每月轮转一次
create 0600 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
}
# ls /etc/logrotate.d/*
/etc/logrotate.d/bootlog /etc/logrotate.d/messages /etc/logrotate.d/yum
/etc/logrotate.d/chrony /etc/logrotate.d/wpa_supplicant
logrotate.conf 才主要的配置文件,logrotate.d 是一个目录,该目录里的所有文件都会被主动的读入/etc/logrotate.conf中执行 。
如果 /etc/logrotate.d/ 里面的文件中没有设定一些细节,则会以/etc/logrotate.conf这个文件的设定来作为默认值。
# vim /etc/logrotate.d/syslog
# 删除 /var/log/messages(为了避免不同规则互相影响。)
vim /etc/logrotate.d/messages
/var/log/messages {
prerotate
chattr -a /var/log/messages #减去chattr
endscript
#notifempty
daily
create 0600 root root
missingok
rotate 5
postrotate
chattr +a /var/log/messages #增加chattr
endscript
}
#修改时间重启rsyslog即可进行轮转测试
轮转后原日志文件被改名,新日志文件是创建的应用程序根据inode找到日志文件进行书写,如果不重启,找寻的依旧是老的日志文件。
# vim /etc/logrotate.d/syslog
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}