- 首页 >
- 问答 >
-
智能运维 >
- Linux FetchLinux的日志记录功能如何设置
Linux FetchLinux的日志记录功能如何设置
小樊
32
2026-01-01 05:54:56
Linux 日志记录功能设置指南
一 核心组件与关键配置
- 系统日志由两大组件构成:内核与早期引导日志的systemd-journald,以及面向文本日志与网络转发的rsyslog。journald 默认将日志写入易失性的**/run/log/journal**,可通过修改**/etc/systemd/journald.conf的Storage=persistent将其持久化到/var/log/journal**;常用查看命令为journalctl(如:journalctl -u 服务名 -f 实时查看)。rsyslog 的配置文件通常为**/etc/rsyslog.conf与/etc/rsyslog.d/.conf**,常见日志路径包括**/var/log/messages**、/var/log/secure(安全事件,如 SSH)、以及部分发行版的**/var/log/syslog**;日志选择器语法为“facility.level action”,例如将警告及以上级别写入自定义文件:.warning /var/log/warning_Log;远程日志使用“@”表示UDP,“@@”表示TCP,如:. @192.0.2.10;日志级别从低到高依次为:debug、info、notice、warning、err、crit、alert、emerg(数值通常对应 0–7,数值越小输出越详细)。
二 快速配置步骤
- 持久化 journald 日志
- 编辑配置文件:sudo vim /etc/systemd/journald.conf,设置:Storage=persistent
- 创建目录并重启服务:sudo mkdir -p /var/log/journal && sudo systemctl restart systemd-journald
- 自定义本地日志文件
- 在 /etc/rsyslog.d/ 下新建 50-custom.conf,示例:
- 将 authpriv 的 warning 及以上记录到安全专用文件
authpriv.warning /var/log/auth-warn.log
- 将内核日志单独记录
kern.* /var/log/kernel.log
- 重启 rsyslog:sudo systemctl restart rsyslog
- 配置远程日志服务器(服务端)
- 在 /etc/rsyslog.conf 或 /etc/rsyslog.d/ 中启用接收:
- 模块加载(常见发行版默认已启用):module(load=“imudp”) 或 module(load=“imtcp”)
- 监听端口:input(type=“imudp” port=“514”) 或 input(type=“imtcp” port=“514”)
- 防火墙放行:sudo firewall-cmd --add-port=514/{udp,tcp} --permanent && sudo firewall-cmd --reload
- 重启 rsyslog:sudo systemctl restart rsyslog
- 配置远程日志客户端
- 在客户端将需要的 facility.level 转发到日志服务器,例如:
- 全部日志:. @@192.0.2.10:514
- 仅安全相关:authpriv.* @@192.0.2.10:514
- 重启 rsyslog:sudo systemctl restart rsyslog
- 日志轮转与保留
- 使用 logrotate 管理日志体积与保留期,编辑 /etc/logrotate.d/custom:
/var/log/auth-warn.log {
daily
rotate 30
compress
missingok
notifempty
create 0640 root root
}
- 测试与强制执行:sudo logrotate -d /etc/logrotate.d/custom(干跑),sudo logrotate -f /etc/logrotate.d/custom(强制执行)
三 验证与常用查询
- 本地与实时查看
- 查看系统日志:sudo tail -f /var/log/messages 或(若发行版使用)sudo tail -f /var/log/syslog
- 查看安全日志:sudo tail -f /var/log/secure
- 查看服务日志:sudo journalctl -u sshd.service -f
- 查看内核日志:dmesg -w
- 远程日志连通性测试
- 在客户端触发一条可识别日志(如执行:logger -p authpriv.warning “test remote log”),随后在服务器检查 /var/log/auth-warn.log 是否收到
- 使用 netstat/ss 确认 514 端口监听:ss -lunpt | grep 514 或 ss -luntp | grep 514
- 按时间与优先级筛选
- 例如:journalctl --since “2025-03-01 00:00:00” --until “2025-03-01 12:00:00” -p warning
- 例如:journalctl -u nginx.service -p err -b(本次启动的错误)
四 安全与维护建议
- 访问控制:限制对日志文件的访问权限(如 /var/log/secure 建议仅 root 可读),并审计对日志目录的修改
- 合理级别:生产环境建议默认记录到WARNING/ERROR,开发或排障阶段可临时提升到INFO/DEBUG,问题恢复后回落,避免日志洪泛
- 容量与保留:结合磁盘空间设置logrotate的轮转周期与保留份数,关键日志可单独配置更长的保留期与压缩
- 远程日志可靠性:优先使用**TCP(@@)**或配置可靠传输队列,避免因网络抖动导致日志丢失
- 变更管理:修改配置前先备份,变更后逐步验证,确保关键服务日志不受影响