CentOS Syslog日志文件存储位置解析
一 核心目录与默认文件
- 绝大多数系统与应用日志集中在**/var/log/**目录。常见默认文件与作用如下(不同版本或安装组件可能略有差异):
- /var/log/messages:系统常规信息(非内核、非认证类)。
- /var/log/secure:认证与安全相关(如SSH登录、PAM 等)。
- /var/log/maillog:邮件子系统日志。
- /var/log/cron:计划任务(crond/at)日志。
- /var/log/boot.log:系统启动过程相关日志。
- /var/log/dmesg:内核启动与驱动加载信息(亦可用命令 dmesg 查看)。
- 其他常见:如 /var/log/yum.log(YUM 包管理)、/var/log/audit/audit.log(审计日志,若安装 auditd)。
二 配置与规则如何决定存放位置
- 传统 Syslog 与 rsyslog 使用“设施(Facility).级别(Priority) → 动作(Action)”规则写入文件,典型规则示例(位于**/etc/rsyslog.conf或/etc/rsyslog.d/*.conf**):
- *.info;mail.none;authpriv.none;cron.none /var/log/messages
- authpriv. /var/log/secure*
- mail. -/var/log/maillog*(行首“-”表示异步写入,提升性能)
- cron. /var/log/cron*
- local7. /var/log/boot.log*
- 含义要点:
- Facility 如:authpriv、cron、mail、kern、local0–local7;级别如:debug、info、notice、warning、err、crit、alert、emerg。
- 动作可为文件路径、终端、远程主机等;同一规则可用“;”并列多个 facility,或用“none”排除某类日志。
三 与 systemd-journald 的关系与二进制日志
- systemd-journald与rsyslog并行工作:journald 负责采集内核与服务的结构化日志,默认运行时日志位于**/run/log/journal**(重启丢失),持久化日志位于**/var/log/journal**(需创建目录并启用)。
- 关键配置:/etc/systemd/journald.conf,如参数Storage=(persistent/volatile/auto)控制持久化,ForwardToSyslog=yes表示将日志转发给传统 syslog(rsyslog)。
- 说明:journald 日志为二进制格式,可用journalctl查询;文本文件型日志仍主要由 rsyslog 按规则写入**/var/log/**下的文件。
四 自定义路径与远程日志示例
- 自定义日志文件路径
- 编辑**/etc/rsyslog.conf**添加规则,例如将所有日志写入自定义文件:
- ** . /var/log/timinglee**
- 或按设施分离(排除认证类):
- ** .;authpriv.none /var/log/timinglee**
- 使配置生效:
- ** systemctl restart rsyslog**
- 生成测试日志验证:
- ** logger “test message”**
- ** tail -f /var/log/timinglee**
- 远程日志(UDP 示例)
- 接收端(服务器)启用 UDP 514:
- 在**/etc/rsyslog.conf**加载模块并监听端口:
- ** module(load=“imudp”)**
- ** input(type=“imudp” port=“514”)**
- 重启服务并检查端口监听。
- 发送端配置(客户端)将日志发往服务器:
- ** . @192.0.2.10:514**(UDP)
- 重启 rsyslog 后使用 logger 测试。
五 日志轮转与维护要点
- 系统通过logrotate对**/var/log/下的文本日志进行按大小/时间的轮转与压缩,典型配置位于/etc/logrotate.conf与/etc/logrotate.d/**(如 syslog)。
- 建议:
- 保持默认轮转策略或按合规要求调整保留天数与压缩方式。
- 对高写入量日志可结合 rsyslog 的异步写入(行首“-”)与队列机制,降低 I/O 抖动。
- 若启用 journald 持久化,确保**/var/log/journal**所在分区具备足够空间与正确权限。