温馨提示×

linux syslog是什么

小樊
39
2026-07-15 13:01:42
栏目: 智能运维

Linux syslog 是一种系统日志机制,用于收集、存储和转发系统及应用程序的日志信息。它是 Linux/Unix 系统中最传统、最核心的日志体系之一。


一、syslog 是什么?

syslog 有两层含义:

  1. 一种协议(Syslog Protocol)
    定义在 RFC 5424 / RFC 3164 中,用于在网络中传输日志消息。

  2. 一套实现(syslog 服务)
    Linux 系统中负责接收、处理、存储日志的后台服务,例如:

    • rsyslog(最常见)
    • syslog-ng
    • 早期的 syslogd

二、syslog 的作用

syslog 主要用于:

  • 记录 系统启动、关机、服务状态
  • 记录 内核、应用程序、网络、安全事件
  • 将日志 集中存储或转发到日志服务器
  • 方便 排查故障、审计和安全分析

三、syslog 的日志来源

日志来源通常分为:

来源 说明
kernel 内核日志
service 系统服务(sshd、cron、nginx 等)
application 应用程序
network 网络设备(交换机、路由器)

四、日志级别(Severity Level)

syslog 定义了 8 个日志级别(数字越小越严重):

级别 名称 含义
0 emerg 系统不可用
1 alert 必须立即处理
2 crit 严重错误
3 err 错误
4 warning 警告
5 notice 正常但重要的事件
6 info 一般信息
7 debug 调试信息

五、日志设施(Facility)

表示日志的“来源分类”:

Facility 说明
auth / authpriv 认证相关
cron 定时任务
daemon 系统守护进程
kern 内核
mail 邮件系统
syslog syslog 自身
local0–local7 自定义用途

六、常见 syslog 文件位置

在 Debian / Ubuntu / CentOS / RHEL 中:

/var/log/syslog        # Debian/Ubuntu 主日志
/var/log/messages      # CentOS/RHEL 主日志
/var/log/auth.log      # 认证日志(Ubuntu)
/var/log/kern.log      # 内核日志

七、syslog 的工作流程(以 rsyslog 为例)

  1. 程序调用 syslog() 或写入 /dev/log
  2. rsyslog 接收日志
  3. 根据 规则(facility + level)
  4. 将日志写入:
    • 本地文件
    • 远程 syslog 服务器
    • 数据库
    • 控制台

八、查看 syslog 示例

tail -f /var/log/syslog
journalctl -f

九、systemd 与 syslog 的关系

  • systemd 使用 journald 管理日志
  • journald 可:
    • 直接查看日志(journalctl
    • 转发给 rsyslog
  • 现代 Linux 通常是:
    systemd-journald → rsyslog → /var/log/*
    

十、一句话总结

Linux syslog 是系统和程序用来“写日记”的机制,用来记录发生了什么,方便你排查问题、监控系统和保证安全。

如果你愿意,我也可以:

  • rsyslog 配置详解
  • 对比 syslog vs journalctl
  • 演示 日志转发到远程服务器
  • 结合 实际排错案例 讲 syslog

0