1. 日志轮转自动化管理
使用logrotate工具定期分割、压缩和删除旧日志,防止/var/log目录占满磁盘空间。默认配置文件位于/etc/logrotate.conf,特定服务(如httpd、syslog)的配置可在/etc/logrotate.d/目录下找到。关键配置参数包括:daily(每天轮转)、rotate 7(保留7份旧日志)、compress(压缩旧日志)、missingok(日志丢失时不报错)、notifempty(日志为空时不轮转)、create 640 root adm(创建新日志时设置权限和所有者)。可通过sudo logrotate -f /etc/logrotate.conf手动测试配置,系统默认通过/etc/cron.daily/logrotate每日自动执行。
2. 日志查看与快速分析
systemd-journald收集日志,journalctl是核心查看工具。常用命令:journalctl -b(查看系统启动日志)、journalctl -f(实时监控日志)、journalctl -u sshd(查看指定服务日志)、journalctl --since "2025-09-01" --until "2025-09-30"(查看特定时间段日志)。grep "ERROR" /var/log/messages(查找错误信息)、awk '/ERROR/ {print $1, $2}' /var/log/syslog(提取错误行的时间戳和信息)、sed -E 's/([A-Za-z]{3}) ([0-9]{1,2})/\2-\1/' /var/log/messages(转换日期格式为MM-DD)。3. 日志存储与权限控制
/var/log目录,常见文件包括:/var/log/messages(系统通用日志)、/var/log/secure(安全认证日志)、/var/log/audit/audit.log(审计日志)、/var/log/boot.log(启动日志)、/var/log/cron(定时任务日志)。secure、audit.log)需限制访问权限,通常设置为640(属主root,属组adm),避免未授权修改。例如:sudo chown root:adm /var/log/secure && sudo chmod 640 /var/log/secure。4. 安全审计增强
启用auditd服务记录系统安全事件(如文件访问、用户登录、权限变更),日志保存在/var/log/audit/audit.log。通过auditctl命令添加监控规则,例如:sudo auditctl -w /etc/passwd -p wa -k passwd_changes(监控/etc/passwd文件的写入和属性变更,标签为passwd_changes)。审计日志可配合ausearch(搜索审计事件)和aureport(生成审计报告)工具分析,帮助快速定位安全问题。
5. 远程日志集中管理
通过rsyslog将本地日志发送到远程服务器,实现集中存储和分析。编辑/etc/rsyslog.conf或/etc/rsyslog.d/下的配置文件,添加以下内容(以UDP 514端口为例):*.* @remote_server_ip:514(UDP传输)、*.* @@remote_server_ip:514(TCP传输,更可靠)。远程服务器需开启rsyslog的UDP/TCP监听(修改/etc/rsyslog.conf中的module(load="imudp")和input(type="imudp" port="514")),并创建/etc/rsyslog.d/remote.conf配置文件接收远程日志。
6. 高级分析与可视化
对于大规模日志,使用ELK Stack(Elasticsearch+Logstash+Kibana)或Graylog进行集中分析。基本流程:Logstash收集并解析日志(如从rsyslog转发)、Elasticsearch存储和索引日志、Kibana可视化展示(如趋势图、搜索框、仪表盘)。例如,通过Kibana可快速统计某服务的错误日志频率、定位高频问题,提升故障排查效率。
7. 日志清理与维护
logrotate的maxage参数设置日志保留天数(如maxage 30保留30天),或使用journalctl --vacuum-time=1w命令清除1周前的journald日志。find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;命令删除30天前的.log文件。清理前需确认日志无保留价值,避免误删关键信息。