Linux系统各类主要日志轮转配置
Linux系统及相关服务日志留存配置
系统日志
/var/log/syslog
记录系统级别的通用信息和错误信息,包括启动、关机、设备驱动加载等。
vim /etc/logrotate.d/rsyslog
/var/log/syslog
{
rotate 7 # 保存
daily # 每天轮转日志
missingok
notifempty
delaycompress # 延迟压缩直到下一次轮转
compress # 压缩旧日志
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
/var/log/messages
vim /etc/logrotate.d/rsyslog
{
rotate 52
weekly
missingok # 如果日志文件不存在则不报错
notifempty # 如果日志文件为空则不进行轮转
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
/var/log/auth.log
记录与身份验证和授权相关的事件的日志文件。包含用户登录尝试、SSH链接、sudo操作等信息。
vim /etc/logrotate.d/rsyslog
/var/log/auth.log
{
rotate 365
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
/var/log/dpkg.log
记录通过dpkg命令进行的所有软件包管理活动,包括安装、升级、删除和清除软件包等操作
vim /etc/logrotate.d/dpkg
/var/log/dpkg.log {
monthly
rotate 12
compress
delaycompress
missingok
notifempty
create 644 root root
}
/var/log/apt
# 记录了APT命令行界面下的交互式输出,即当用户运行APT命令时,在终端显示的信息也会被记录下来
/var/log/apt/term.log {
rotate 12
monthly
compress
missingok
notifemp
ty
}
# 记录了所有通过APT进行的软件包管理操作,包括安装、升级、移除等。
/var/log/apt/history.log {
rotate 12
monthly
compress
missingok
notifempty
}
其它日志轮转配置
ls /etc/logrotate.d/
配置调试与生效
调试:
logrotate -d /etc/logrotate.d/rsyslog
强制生效(否则会在下一次日志轮转生效):
logrotate -f /etc/logrotate.d/rsyslog
服务日志
MySQL数据库服务日志
binary logs
MySQL 的二进制日志(binlog)主要有以下几个作用:
数据恢复:通过使用 MySQL 提供的工具 mysqlbinlog,可以将 binlog 文件解析成 SQL 语句,然后重新执行这些语句来恢复数据库到某个时间点的状态。
主从复制:在主从复制架构中,主服务器会把所有的数据变更操作记录到 binlog 中,从服务器读取这些 binlog 并在本地重放这些操作以保持与主服务器的数据同步。
审计:由于 binlog 记录了所有对数据库的修改操作,因此它也可以用于审计目的,了解哪些操作被执行以及何时被执行。
增量备份:结合全量备份和 binlog 日志,可以实现增量备份策略,即只备份自上次备份以来发生变化的数据。
高可用性和灾难恢复:利用 binlog 可以实现数据库的高可用性解决方案,比如在发生故障时进行快速恢复或切换到备用数据库实例。
查看binary log文件
show binary logs
查看和配置binlog过期时间
show variables like 'expire_logs_days';
注:expire_logs_days在mysql8.0被废弃,使用秒级别配置变量来设置binlog的过期时间。
默认binlog_expire_logs_seconds为2592000,即binlog保存30天
show variables like 'binlog_expire_logs_seconds'
设置过期时间
set global binlog_expire_logs_seconds=17280000;
max_binlog_size
单位是字节,默认为1GB
set global max_binlog_size=1073741824;