购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2.2 系统日志备份

日志是重要的系统文件,记录和保存了系统中的重要事件。随着日志文件不断增多,如果不进行日志维护,系统硬盘就会存满,甚至宕机。日志维护的最主要工作是把旧的日志文件删除,对新生成的日志及时备份存储。在Linux系统中,默认安装logrotate程序进行日志轮替(也叫日志转储),logrotate是一个日志文件管理工具,用于分割日志文件,创建一个新的空日志文件来记录新日志,当旧日志文件超出保存的范围时就删除,起到“转储”作用。logrotate程序的配置可以通过修改Linux系统的logrotate.conf文件进行配置。

logrotate是基于cron定时任务运行的,logrotate.conf和logrotate.d都存储着logrotate的配置文件,logrotate.d目录里的所有文件被包含到logrotate.conf文件中执行。如logrotate.d的文件中没有进行定义和配置,则会以logrotate.conf文件作为配置参数执行。图3-37所示为定时任务实现日志轮询存储。

图3-37 定时任务实现日志轮询存储

通过修改logrotate.conf配置文件相关参数,可以对日志轮询存储方式进行修改和配置。默认情况下,logrotate切割的日志是按递增的数字进行命名的,如xxx.log-1。在配置文件中增加dateext参数,可以使切割后的日志文件以当前日期为结尾,如xxx.log-20131216。图3-38所示为修改切割后的日志命名。

图3-38 修改切割后的日志命名

随着日志文件的不断增多,如果不定时清理,系统硬盘就会存满。通过修改日志轮询次数,可以达到周期清理日志的效果,即在logrotate.conf配置文件中修改rotate参数,如图3-39所示。如果设定messages日志保留3个(即轮转3次),那么执行第3次时,则会将messages.3留存的日志删除,并由后面较新的日志取代。同理,留存日志可以设置为保留4个、5个等。

图3-39 设置日志轮询存储的次数

《中华人民共和国网络安全法》明确规定,网络系统日志的留存时间应不少于6个月。为了后续日志审计的需要,系统管理者需要定期对Linux系统的日志进行有效备份。根据备份日志的存储位置不同,可以分为本地日志备份和异地日志备份。

本地日志备份就是将Linux系统的日志存储在系统的本地,通过cron定时任务的方式,实现日志的周期备份。如下所示为执行本地日志备份操作的bash脚本文件,存放在var/backup目录下,命名为backup.sh,以90天为周期存储系统日志,保存的备份日志以“backup_+日期”方式进行命名,并将生成的日志存储在var/backup目录下。

增加日志的定时任务,在crontab文件中设置为每天的19时59分执行一次backup.sh程序进行日志备份。crontab定时任务的配置如图3-40所示。

图3-40 配置定时任务

通过tail命令可查看cron.log日志。在19时59分成功执行backup.sh文件,进行系统日志备份任务,定时任务执行日志备份效果如图3-41所示。

异地日志备份就是将日志备份到远程服务端进行存储,本地客户端通常使用syslog的方式将产生的日志文推送到远程服务端进行存储。异地日志备份的方式可以有效地减少由于本地主机发生故障导致日志丢失的问题。

图3-41 设置日志轮询存储的次数

如图3-42所示,开启imudp模块,并通过UDP协议的514端口接收客户端推送的日志文件。在rsyslog.conf配置文件中增加配置日志存储位置及命名方式,命令如下,设置日志存储在/var/log/backup/目录下,采用“年-月-日”命名方式进行存储。

图3-42 远程日志接收端rsyslog.conf配置

在修改完rsyslog.conf配置文件后,通过如下systemctl命令重启rsyslog服务,如图3-43所示,使之前的配置生效。

图3-43 重启rsyslog服务

本地日志发送端通过修改etc/rsyslog.d目录下的50-default.conf配置文件,如图3-44所示,将需要发送的日志以“*.* @日志接收端IP:端口”的格式进行配置,命令如下,将auth.log日志发送到远程日志存储服务器。

图3-44 本地日志发送端

在修改完配置文件后,通过如下systemctl命令重启rsyslog服务,使之前的配置生效,通过SSH协议登录本地系统触发auth.log日志,可以看到本地的auth.log日志同步到了远程日志接收端,且日志以当前日期为文件名进行保存,如图3-45所示。

图3-45 本地日志同步到远程的日志存储系统进行备份 vjfcyaWQRBzDQHZE9b1qLv0Fo8luUgOz1gBy/y+C1thDchyMW7ou3O6feOaryE2V

点击中间区域
呼出菜单
上一章
目录
下一章
×