CentOS Stream 8日志管理指南
journalctl是Systemd的日志管理工具,用于集中查看systemd管理的日志(包括内核、服务及应用日志)。常用命令:
journalctl(默认显示最近的100条);journalctl -u 服务名(如journalctl -u httpd查看Apache日志);journalctl -f(类似tail -f,实时显示新增日志);journalctl --since "1 hour ago"(过去1小时)、journalctl --until "2025-11-01"(截至指定日期);journalctl -k(仅显示内核相关日志);journalctl -b(系统本次启动的日志)。CentOS Stream 8仍保留传统/var/log目录,常见日志文件及用途:
/var/log/messages:系统通用日志(如内核、服务启动信息);/var/log/secure:安全相关日志(如登录、认证失败);/var/log/audit/audit.log:审计日志(记录系统调用、文件访问等);cat /var/log/messages(直接查看)、less /var/log/messages(分页查看)、grep 'error' /var/log/messages(过滤关键字)。防止日志文件过大占用磁盘空间,使用logrotate工具自动轮换、压缩和删除旧日志。
/etc/logrotate.conf(全局设置);/etc/logrotate.d/目录下创建文件(如/etc/logrotate.d/httpd),示例配置:/var/log/httpd/*.log {
daily # 每天轮换
rotate 7 # 保留7个旧日志
compress # 压缩旧日志(如.gz格式)
missingok # 日志不存在时不报错
notifempty # 日志为空时不轮换
sharedscripts # 所有日志轮换完成后执行脚本
postrotate
systemctl reload httpd # 重新加载Apache(避免日志中断)
endscript
}
logrotate -vf /etc/logrotate.conf(强制立即轮换并显示详细信息)。默认情况下,journald(Systemd日志守护进程)将日志存储在/run/log/journal/(临时目录,重启后删除)。若需永久保存:
vi /etc/systemd/journald.conf;Storage=persistent(将日志存储到/var/log/journal/,持久化);systemctl restart systemd-journald(使配置生效)。auditd用于监控系统安全事件(如文件修改、用户登录、权限变更),生成详细的审计日志。
dnf install audit -y(安装)、systemctl enable --now auditd(开机自启);/etc/audit/audit.rules,示例:-w /etc/passwd -p wa -k passwd_changes # 监控/etc/passwd文件的写/属性变更,标记为passwd_changes
ausearch -k passwd_changes(按标记查找)、aureport -i(生成审计报告)。用于大规模日志的收集、存储、分析和可视化,适合企业级场景。
dnf install elasticsearch logstash kibana -y;/etc/logstash/conf.d/logstash.conf,定义输入(如从文件读取)、过滤(如解析日志格式)和输出(发送到Elasticsearch);/etc/elasticsearch/elasticsearch.yml(设置集群名、节点名);/etc/kibana/kibana.yml(设置Elasticsearch地址),启动后访问http://IP:5601创建仪表板。*.* @remote_ip:514发送UDP日志);