/var/log/ 目录下,包括以下文件:/var/log/messages:包含系统的大部分消息和错误信息,包括内核消息、系统启动信息、系统服务启动和停止信息等。该文件通常是系统管理员进行故障排除和监控的主要来源。/var/log/secure:包含系统的身份验证和安全相关的日志信息,包括用户登录和注销信息、sudo 命令使用信息、SSH 连接信息等。该文件通常是系统管理员进行安全审计和监控的主要来源。/var/log/audit/audit.log:记录系统中的安全审计信息。该文件通常由 auditd 守护进程生成和维护,可以帮助系统管理员监控系统中的安全事件和活动。/var/log/dnf.log:记录系统中使用 DNF 包管理器进行软件包安装、更新和卸载等操作的详细信息。/var/log/boot.log:包含系统启动期间的日志信息,包括启动脚本的输出信息、服务启动和停止信息等。该文件通常是系统管理员进行启动故障排除和监控的主要来源。/var/log/lastlog:记录系统中所有用户最后一次登录的信息。/var/log/wtmp:记录系统中所有用户的登录和注销信息,包括用户名、登录时间、注销时间、登录来源、登录 IP 地址等。journalctl 命令查看系统日志。journalctl
<service-name> 替换为您需要查看的服务名称:journalctl -u <service-name>
journalctl --since "2024-01-01 00:00:00" --until "2024-01-02 00:00:00"
journalctl -k
/run/log/journal/ 下。如果需要记录所有的启动日志,可以手动创建 /var/log/journal 目录,创建后 journald 服务会把启动日志存储到这里。mkdir -p /var/log/journal/reboot
journalctl --list-boots
IDX 列为启动序号,负数表示历史启动记录,0 表示当前启动:IDX BOOT ID FIRST ENTRY LAST ENTRY-1 506feea161494cff925010ea7599ab5d Fri 2023-05-26 15:57:28 CST Fri 2023-05-26 16:00:10 CST0 59f4624ce2d94299be2afd80d3650c1a Fri 2023-05-26 16:00:18 CST Fri 2023-05-26 16:03:20 CST
journalctl 命令管理系统日志,包括清除日志和导出日志等操作。journalctl --vacuum-time=1s
journalctl --vacuum-time=1s --since "2024-01-01 00:00:00" --until "2024-01-02 00:00:00"
log.txt 的文件中:journalctl > log.txt
<service-name> 替换为您需要导出的服务名称:journalctl -u <service-name> > service-log.txt
service-log.txt 文件中。dnf 进行安装。执行以下命令更新软件包索引并安装 rsyslog:dnf install rsyslog #安装rsyslog组件dnf update rsyslog #更新rsyslog组件
/etc/rsyslog.conf。在该文件中可以定义日志消息的来源、格式和目的地,例如配置 rsyslog 从特定的 Unix 套接字读取日志、从 journald 读取日志或者将日志消息发送到远程服务器。vim /etc/rsyslog.conf来修改:# 加载模块module(load="imuxsock") # 提供 Unix 套接字支持module(load="imklog") # 提供内核日志支持# 提供 UDP syslog 接收module(load="imudp")input(type="imudp" port="514")# 提供 TCP syslog 接收module(load="imtcp")input(type="imtcp" port="514")# 指定日志文件的位置auth,authpriv.* /var/log/auth.log*.*;auth,authpriv.none -/var/log/syslogdaemon.* -/var/log/daemon.logkern.* -/var/log/kern.log
systemctl restart rsyslog
cp /etc/rsyslog.conf /etc/rsyslog.conf.bak),以便在配置异常时快速恢复。重启 rsyslog 服务会短暂中断日志采集,请确认对业务无影响后再执行。systemctl 命令可以管理 rsyslog 服务,包括启动、停止和重启服务。systemctl start rsyslogsystemctl stop rsyslogsystemctl restart rsyslog
systemctl enable rsyslog
systemctl status rsyslog
vim /etc/rsyslog.conf 文件,可将本机所有日志消息通过 rsyslog 转发到其他服务器。在配置文件中添加以下内容:*.* @@192.168.1.1:514
*.* 表示所有设施和所有优先级的日志消息,@@ 表示使用 TCP 连接,192.168.1.11:514 是远程服务器的 IP 地址和端口。其中端口需与远程服务器 rsyslog 配置中监听的端口保持一致。修改配置文件后,请重启 rsyslog 服务使更改生效。systemctl restart rsyslog
vim /etc/rsyslog.conf 文件,加载特定模块并打开特定端口,接收来自其他服务器的日志消息。在配置文件中添加以下内容:# 提供 UDP syslog 接收module(load="imudp")input(type="imudp" port="514")# 提供 TCP syslog 接收module(load="imtcp")input(type="imtcp" port="514")
systemctl restart rsyslog
imjournal 模块,rsyslog 可直接从 systemd journal 获取日志数据,替代传统的 Unix 域套接字(如 /dev/log)输入方式。该机制使 rsyslog 能够直接访问 journal 的原生结构化元数据(如 _PID、_COMM、SYSTEMD_UNIT 等),从而实现对系统日志的高效采集与结构化处理。vim /etc/rsyslog.conf 中,添加以下配置加载 imjournal 模块(在 TencentOS Server 中,通常已默认配置):module(load="imjournal" StateFile="imjournal.state")
systemd-journald 的 ForwardToSyslog=yes 选项,可将 Journal 日志实时转发至 rsyslog。启用该功能后,journald 会通过 Unix 域套接字(通常为 /run/systemd/journal/syslog)将日志消息推送给 rsyslog,使其能够以传统 syslog 协议格式接收并处理系统日志,从而实现与现有 syslog 基础设施的兼容及集中式日志管理。vim /etc/systemd/journald.conf 中,添加或修改以下配置启用 ForwardToSyslog 选项(默认选项为 no):ForwardToSyslog=yes
systemctl restart systemd-journald
imjournal 模块和 journald 的 ForwardToSyslog 选项,确保所有的日志消息都能正确地被 rsyslog 捕获。vim /etc/rsyslog.conf 文件,将本机所有 journal 日志消息通过 rsyslog 转发到其他服务器。在配置文件中添加以下内容(以192.168.1.1 为例):*.* @@192.168.1.1:514
rsyslogd -N1 进行配置文件预校验,若执行后无报错输出(仅返回校验完成提示),则代表配置文件语法合规;若存在语法错误,命令会精准返回错误行号与异常类型,可直接定位修正。/etc/systemd/journald.conf 后,需执行 systemctl restart systemd-journald 重启服务以应用新策略。--vacuum-size 参数按容量阈值清理(如保留最近 500MB),或通过 --vacuum-time 参数按时间窗口清理(如仅保留最近两周数据),快速缓解存储压力。/etc/systemd/journald.conf 配置文件,配置 SystemMaxUse 以限制日志集的最大磁盘占用上限,同时配置SystemKeepFree 以确保文件系统始终保留指定的最小空闲空间。/etc/systemd/journald.conf 后,需执行 systemctl restart systemd-journald 重启服务以应用新策略。dnf install logrotate
/etc/logrotate.conf 和 /etc/logrotate.d/ 目录下,可以通过编辑这些文件来配置日志转储的规则。/etc/logrotate.conf 配置内容如下:weeklyrotate 4createdateextinclude /etc/logrotate.d
参数 | 说明 |
weekly | 日志转储的时间为每周 |
rotate 4 | 最多存在 4 个备份文件 |
create | 每次转储时都创建新的文件 |
dateext | 使用日期作为转储文件的前缀 |
include /etc/logrotate.d | 包含 /etc/logrotate.d 目录下其他的配置文件 |
daily:每天转储日志文件。weekly:每周转储日志文件。monthly:每月转储日志文件。rotate N:保留 N 个日志副本,N 是一个整数。include /etc/logrotate.d 指令会将该目录下的所有配置文件与主配置文件 /etc/logrotate.conf 合并执行。这意味着主配置文件中定义的全局规则适用于所有日志文件,而 /etc/logrotate.d/ 目录下的独立配置文件可以为特定服务或应用定义专属的转储规则。/etc/logrotate.d 目录下的配置文件:ls /etc/logrotate.d
btmp chrony dnf httpd iptraf-ng iscsiuiolog libvirtd libvirtd.qemu mariadb numad openstack-trove psacct rabbitmq-server wtmp
/var/log/myapp.log {rotate 7dailymissingoknotifemptycompressdelaycompresspostrotate/usr/bin/systemctl restart myapp.service > /dev/null 2>&1 || trueendscript}
/var/log/myapp.log 文件进行日志转储的规则,具体说明如下:rotate 7:保留 7 个旧的日志文件,超过 7 个则自动删除。daily:每天执行一次日志转储。missingok:如果日志文件不存在,则忽略错误。notifempty:如果日志文件为空,则不进行转储。compress:使用 gzip 压缩旧的日志文件。delaycompress:在下一次转储时压缩旧的日志文件。postrotate:在转储完成后执行的命令,例如重启服务等。endscript:postrotate 命令的结束标记。logrotate -f /etc/logrotate.conf
systemctl status logrotate.service
systemctl start logrotate.service
systemctl restart logrotate.service
/etc/logrotate.d/ 目录下,可以为指定的日志设置 logrotate 配置文件。rsyslog 的配置文件,执行以下命令:touch /etc/logrotate.d/rsyslog
/var/log/cron/var/log/maillog/var/log/messages/var/log/secure/var/log/spooler{dailyrotate 7create}
/var/log 目录下的这些日志文件,保留最近 7 天的日志副本。/etc/logrotate.conf 或 /etc/logrotate.d/ 目录下的配置文件中设置相应的转储周期和保留策略。文档反馈