有網(wǎng)站源碼怎么搭建網(wǎng)站近期國(guó)際新聞
目錄
1 背景與問(wèn)題描述
1.1 為什么日志留存6個(gè)月很重要?
1.2 問(wèn)題分析
2 解決方案:調(diào)整日志留存至6個(gè)月
2.1 整體架構(gòu)與流程
3 詳細(xì)配置步驟
3.1 檢查當(dāng)前日志配置
3.2 修改 logrotate 配置
3.3 針對(duì)關(guān)鍵日志單獨(dú)配置
3.4 手動(dòng)觸發(fā)日志輪轉(zhuǎn)(測(cè)試)
3.5 驗(yàn)證配置
4 高級(jí)優(yōu)化(可選)
4.1 按日期分割日志(rsyslog)
4.2 監(jiān)控日志磁盤占用
5 關(guān)鍵概念解析
5.1 logrotate 核心參數(shù)
5.2 rsyslog vs. logrotate
6?總結(jié)
1 背景與問(wèn)題描述
在企業(yè)信息安全合規(guī)性檢查中,日志留存時(shí)間是一個(gè)重要的審計(jì)指標(biāo)。在實(shí)際生產(chǎn)運(yùn)營(yíng)中,安全掃描經(jīng)常會(huì)發(fā)現(xiàn)主機(jī)日志留存時(shí)間不符合企業(yè)要求的6個(gè)月留存標(biāo)準(zhǔn)。本文將詳細(xì)介紹如何在RedHat 6.9系統(tǒng)中配置日志留存策略,確保滿足合規(guī)要求。
1.1 為什么日志留存6個(gè)月很重要?
- 合規(guī)性要求(如等保2.0、GDPR、ISO 27001)通常要求日志存儲(chǔ)≥6個(gè)月
- 安全審計(jì):攻擊溯源、異常行為分析依賴長(zhǎng)期日志
- 故障排查:系統(tǒng)問(wèn)題可能需要回溯數(shù)月前的日志
1.2 問(wèn)題分析
- 默認(rèn)配置:RHEL 6.9默認(rèn)使用logrotate管理日志,保留4周(rotate 4)
- 存儲(chǔ)限制:日志未壓縮或按日期歸檔,占用磁盤空間較大
2 解決方案:調(diào)整日志留存至6個(gè)月
2.1 整體架構(gòu)與流程
- 以下是日志留存管理的核心流程:

- 日志生成:rsyslog 負(fù)責(zé)收集系統(tǒng)日志(如 /var/log/messages)
- 日志輪轉(zhuǎn):logrotate 根據(jù)配置(如 daily/weekly)觸發(fā)日志切割
- 壓縮存儲(chǔ):舊日志被壓縮(.gz)并保留指定份數(shù)
- 清理機(jī)制:超期日志(如超過(guò)180天)自動(dòng)刪除
3 詳細(xì)配置步驟
3.1 檢查當(dāng)前日志配置
# 查看 logrotate 默認(rèn)配置
cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly# keep 4 weeks worth of backlogs
rotate 4# create new (empty) log files after rotating old ones
create# use date as a suffix of the rotated file
dateext# uncomment this if you want your log files compressed
#compress# RPM packages drop log rotation information into this directory
include /etc/logrotate.d# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {monthlycreate 0664 root utmpminsize 1Mrotate 1
}/var/log/btmp {missingokmonthlycreate 0600 root utmprotate 1
}# system-specific logs may be also be configured here.# 查看 rsyslog 管理的日志文件
ls -l /var/log/messages*
3.2 修改 logrotate 配置
- 編輯全局配置文件 /etc/logrotate.conf:
vi /etc/logrotate.conf
- 關(guān)鍵參數(shù)調(diào)整:
weekly # 每周輪轉(zhuǎn)一次(可選 daily)
rotate 26 # 保留26個(gè)日志文件(26周≈6個(gè)月)
compress # 啟用壓縮
dateext # 使用日期后綴(如 messages-20240612.gz)
missingok # 日志不存在時(shí)不報(bào)錯(cuò)
notifempty # 空日志不輪轉(zhuǎn)
create 0640 root root # 新日志文件權(quán)限
3.3 針對(duì)關(guān)鍵日志單獨(dú)配置
- 某些日志(secure、cron)需單獨(dú)設(shè)置,編輯 /etc/logrotate.d/syslog:
vi /etc/logrotate.d/syslog
- 示例配置:
/var/log/messages /var/log/secure /var/log/cron {daily # 每天輪轉(zhuǎn)(更頻繁)rotate 180 # 保留180天(6個(gè)月)compressdateextsharedscriptspostrotate/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || trueendscript
}
3.4 手動(dòng)觸發(fā)日志輪轉(zhuǎn)(測(cè)試)
# 調(diào)試模式(不實(shí)際執(zhí)行)
logrotate -d /etc/logrotate.conf
# 強(qiáng)制執(zhí)行輪轉(zhuǎn)
logrotate -f /etc/logrotate.conf
3.5 驗(yàn)證配置
- 檢查日志是否按預(yù)期保留:
ls -lh /var/log/messages*
4 高級(jí)優(yōu)化(可選)
4.1 按日期分割日志(rsyslog)
- 修改 /etc/rsyslog.conf,添加:
$template DailyLogs,"/var/log/%$YEAR%-%$MONTH%-%$DAY%.log"
*.* ?DailyLogs
- 重啟服務(wù):
service rsyslog restart
4.2 監(jiān)控日志磁盤占用
- 設(shè)置定時(shí)任務(wù)清理舊日志:
# 刪除超過(guò)180天的日志
find /var/log -name "*.gz" -mtime +180 -exec rm -f {} \;
5 關(guān)鍵概念解析
5.1 logrotate 核心參數(shù)
參數(shù) | 作用 | 示例值 |
rotate | 保留的舊日志份數(shù) | rotate 26 |
daily | 輪轉(zhuǎn)頻率(daily/weekly/monthly) | daily |
compress | 啟用gzip壓縮 | compress |
dateext | 使用日期后綴命名 | dateext |
missingok | 日志不存在時(shí)不報(bào)錯(cuò) | missingok |
5.2 rsyslog vs. logrotate
- rsyslog:負(fù)責(zé)日志的收集、過(guò)濾、存儲(chǔ)
- logrotate:負(fù)責(zé)日志的切割、壓縮、刪除
6?總結(jié)
通過(guò)調(diào)整logrotate配置,我們成功將主機(jī)的日志留存時(shí)間從 4周延長(zhǎng)至6個(gè)月。